资 源 简 介
注意:如有使用需要请直接checkout source。
ki-analyzer是基于ik-analyzer修改而来的分词库。在我之前使用ik时,因为ik提供的分词效果不能满足我的需求,就在ik之上做了一层封装。这种封装既丑陋并且低效,而随着我的分词需求和ik提供的效果渐行渐远,就打算着手修改ik词库,便有了ki-analyzer。ki-analyzer当然不能适合所有人,就像ik-analyzer不能适合我一样,但如果你正在寻找一个开源的分词程序,可以看看ki-analyzer是否能适合你,以多一种选择。
ki-analyzer功能特点
对于汉字分词,ik除了支持基本词库匹配以外,还格外处理了可能存在的姓氏、后缀、量词的分析。如果可以将此理解为词性标注,那么它显然做的不够彻底,最为重要的名词、动词、形容词没有被标注出来,使得这种分析毫无实用价值。所以,ki-analyzer直接去掉了相关代码,将这些不可识别的汉字标注为TYPE_CJK_UNKNOWN。
ik只支持全中文的词库,这使得诸如"酷6"、"乐phone"等不能被分成一个词。而我觉得,词库应该支持的不单单是汉字组合,而可以是任意有效字符的组合,也就说,支持的是短语匹配,比如"酷6"、"c#"、".net"、"data mine"都应该可以被切割出来。在我的主题词提取场景中,这种短语粒度的切割就很有必要,否则我只能在分词之上检查每个词条,看是否有构成短语的情况。而就搜索应用来说,这种切割对于查询来说也会得到更好的效果。这也是ki-analyzer诞生的重要原由。
ik内置了一个基本词库,并支持通过配置文件和程序接口外挂词库。ki-analyzer对此更进一步,可以不使用程序提供的内置词库而外置基本词库。另外,分出的词条Lexeme多出一个属性表示该词条是不是来自扩展词库的。以我的应用场景举例,我除了有一个基本词库,还有一个扩展的IT领域词库,而在分词时,我是希望知道这个词条是来自哪个词库的,以便我做不同处理。
ik的