首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

冤家路窄:QueryParser对汉语分词的要求

2012-10-29 
冤家路窄:QueryParser对中文分词的要求而这是CJKAnalyzer、ChineseAnalyzer以及StandardAnalyzer之类简单做

冤家路窄:QueryParser对中文分词的要求


而这是CJKAnalyzer、ChineseAnalyzer以及StandardAnalyzer之类简单做法的中文分词不会出现的。


那么现在应该如何解决这个问题:


“如果1个词能够被其他词语覆盖组成,那么它不应该再被建立索引”。只要满足这个条件QueryParser就很好用了,同时索引库更小,搜索精确度也不会有任何损失(应该说是提高了)。


这样的结果便是:
对"中华人民共和国"的分词结果应该是:"中华/华人/人民/共和/共和国"。虽然"中华人民共和国"在词典中存在。
对"北京精神文明建设"的分词结果是"北京/精神/文明/建设/",虽然"精神文明""精神文明建设"本身在词典也存在。


我已经修改paoding来支持上面的做法,但还没马上提交代码,还需要几天。
(这个修改不涉及CJKKnife的变更。而是1、通过加载字典,判断并把“中华人民共和国”之类的可由其他词语组合的词语从词典中去掉,从而使Knife不认识这些组合词  2、通过增强DefaultTokenCollector.java:由DefaultTokenCollector负责根据词语位置关系按照合理的顺序将CJKKnife分词的结果最终呈现给Lucene)


至于“‘精神文明建’这个词也应该能搜索出‘北京精神文明建设’结果”,则是不可能的。
1 楼 抛出异常的爱 2007-10-19   应当把条件也作为长句进行分词, 2 楼 johnnyhg 2007-10-19   抛出异常的爱 写道应当把条件也作为长句进行分词,楼上说的很对,要从根本上解决这个问题,要从对查询条件分词,而不是从TokenCollector入手(那样解决混乱得多也不能从根上解决问题)。
希望对qieqie能有所启发。 3 楼 transist 2007-10-19   建议提供2种策略,即最大匹配分词和匹配最多分词。

热点排行