Lucene之分词

分词:

①  单字切分

把一段文字按照每个字去建立索引。

如切分“我爱中华”,就会切成“我”,“爱”,“中”,“华”。这种分词法效率低,但也能解决一些问题。

②  二分法

二分法就是把一段文字的每两个相邻的字算作一个词。

如果用来切分“我爱中华”,就会切成“我爱”,“爱中”,“中华”。这种分词效率低,但比单字切分好得多。

③  词典法

词典法就是建立一个词典文件,然后使用词典和文字段落进行匹配,从而得出分词结果,在这种分词当中,词典和匹配算法是关键。

做词典和维护词典都不难,统计。匹配算法不好办,有最大匹配和最小匹配,正向匹配和逆向匹配。

④  语义法

这个方法在理论上是存在的,但从实际上讲也只是个名词,看到任何一段文字,让计算机将其正确理解出来,这个想法不可能。

时间: 2024-11-08 19:34:40

Lucene之分词的相关文章

当前几个主要的Lucene中文分词器的比较

1. 基本介绍: paoding:Lucene中文分词"庖丁解牛" Paoding Analysis imdict :imdict智能词典所采用的智能中文分词程序 mmseg4j: 用 Chih-Hao Tsai 的 MMSeg 算法 实现的中文分词器 ik :采用了特有的"正向迭代最细粒度切分算法",多子处理器分析模式 2. 开发者及开发活跃度: paoding :qieqie.wang, google code 上最后一次代码提交:2008-06-12,svn

lucene+盘古分词

一般的网站都会有都会有搜索的功能,一般实现搜索主要有三种方案 第一种是最差的,也是最不推荐的,使用数据库的模糊查询例如select * form table where 字段 like XXX,这种查询的缺点很明显: (1)       无法查找几个关键词不连在一起的情况 (2)       全表扫描 效率低下 第二种:使用SqlServer的全文本检索功能 举例:select * form table where msg = ‘江苏南京’ 这是就可以写成select * form table

lucene中文分词——(四)

1.分析器的执行过程: 第一个 TokenFilter将大写字母变为小写,第二次分词去掉空格并换行,第三次去掉不要的 and或者标点符号 2.中文分词器介绍: (1)lucene自带的 (2)第三方的 3.查看标准分词器对中文的分词效果: 最终决定使用的是IKAnalyzer()分词器,支持中文扩展与停用. 1 // 查看标准分析器的分词效果 2 @Test 3 public void testTokenStream() throws Exception { 4 // 创建一个标准分析器对象 5

lucene自定义分词器

工作上,有需要对纯数字的字符串做分词,好像CJK二元分词器对这样的数字不会做分词,所以自己写了个分词器,分词器达到以下效果:对字符串1234567,分词后为:12 34 56 7 Analyzer: package org.apache.lucene.analysis.core; import java.io.Reader; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.ap

java+lucene中文分词,来看看百度究竟是怎么找到你想要的(十分重要,楼主幸苦之作)

我想只要是学过数据库的孩纸,不管是mysql,还是sqlsever,一提到查找,本能的想到的便是like关键字,其实去转盘网(分类模式)之前也是采用这种算法,但我可以告诉大家一个很不幸的事情,like匹配其实会浪费大量的有用资源,原因这里不说了请自己想一想,我们还是直接摆事实验证. 现在用去转盘网搜:hello 找个单词,如下: http://www.quzhuanpan.com/source/search.action?q=hello&currentPage=1 翻页你会发现只要是包含hell

(转)Lucene中文分词图解

本文记录Lucene+Paoding的使用方法图解: 一.下载Lucene(官网:http://archive.apache.org/dist/lucene/java/)本文中使用的是:2.9.4,下载后解压,Lucene所需要的基本jar文件如下列表: lucene-core-2.9.4.jar                   Lucene核心jar lucene-analyzers-2.9.4.jar            Lucene分词jar lucene-highlighter-2

lucene 分词的一些杂谈

找遍了网上所有的中文的分词工具,没有一个可以拿来用的,所以决定还是自己做一个分词的工具把,分词的核心功能: 1.分词基础算法(常见的有正向最大,逆向最大,最多分词,基于统计,基于理解即无词库分词等,当然一个好的搜索引擎必然是基于多种分词方式的) 2.是否支持强制一元分词:这个是商业的搜索引擎必备的. 3.同义词识别,简体中文和繁体中文的识别对应转换,中文和拼音的互转 4.支持中文分词的时候是否考虑好了英文的处理:难免会遇到英文文档,和中英混合的文档 5.特殊内容的处理: 邮箱处理.电话号码的处理

Lucene中文分词

package com.fxr.test2; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import net.paoding.analysis.analyzer.PaodingAnalyzer; import org.apache.lucene.an

Lucene查看分词结果

作者:xsi640 /** * 获取分词结果 * @param 输入的字符串 * @param 分词器 * @return 分词结果 */ public static List<String> getWords(String str,Analyzer analyzer){ List<String> result = new ArrayList<String>(); TokenStream stream = null; try { stream = analyzer.to

lucene中文分词搜索的核心代码

public static void search(String indexDir,String q)throws Exception{ Directory dir=FSDirectory.open(Paths.get(indexDir)); IndexReader reader=DirectoryReader.open(dir); IndexSearcher is=new IndexSearcher(reader); // Analyzer analyzer=new StandardAnaly