标签:开源 个性化 ide 可见 搜索 这一 也有 创建索引 analyzer
相对于英文检索,中文检索有两个特别要考虑的问题:编码问题和中文分词问题。
一、编码问题
1. 为了解决中文编码问题,我们在网页结构化信息预处理的时候统一采用utf-8编码;
2. 在Lucene创建索引的时候,构造一个BufferedReader对象以utf-8编码读取文件,使用如下语句:
BufferedReader br = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
二、中文分词问题
1. 什么是中文分词?
中文分词 (Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。比如,“我爱计算机”可以分词为“我/爱/计/算/机”,也可以分词为“我/爱/计算机”.
2. 对于搜索引擎,中文分词为什么重要?
对于一个搜索引擎来说,中文分词问题非常重要,体现在以下两个方面:
由此可见,中文分词对于搜索引擎来说是至关重要的,中文分词的好坏直接决定着索引的性能和检索的准确率,直接影响着搜索引擎的用户体验。
3. 中文分词难在哪里?
我们知道,在英文的行文中,单词之间是以空格作为自然分界符的;而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,比如“我喜欢猕猴桃”可以被分词为“我/喜欢/猕猴桃”,也可以被分词为“我/喜欢/猕猴/桃”,但显然,前者更合理。由此可见,不同于英文分词的以空格无脑划分,中文分词存在歧义,那么中文分词更需要技巧,应该尽可能地与人类的思维相一致,这就对中文分词提出了很高的要求。
4. 如何解决中文分词问题?
事实上,现在已经有很多优秀的开源中文分词器比较好得解决了中文分词问题。比如Lucene本身就自带了SmartChineseAnalyzer分词器来处理中文分词问题,还有庖丁分词器,结巴分词器,IKAnalzer,盘古分词,中科院分词器等等,这些分词器各有优劣,大家可以参考不同中文分词器的比较。有了这些开源的成熟中文分词器,我们就可以在项目中直接应用啦,再深入了解一些,我们可以重载这些分词器,根据需求进行个性化定制,或许深入了解原理后,聪明的你也可以自己写个分词器哦~
在我们的项目简体中文版儿童搜索引擎中,我们使用了IKAnalyzer分词器,以后我们还会讲述这个分词器的具体使用~~
标签:开源 个性化 ide 可见 搜索 这一 也有 创建索引 analyzer
原文地址:http://www.cnblogs.com/itcsl/p/6819330.html