C#语言环境下,哪一个中文分词组件最优秀

 我来答
SWEETSWISS
2017-02-12 · TA获得超过562个赞
知道小有建树答主
回答量:701
采纳率:0%
帮助的人:187万
展开全部
KTDictSeg 分词算法
我把组件名名为KTDictSeg,它是由KaiToo搜索开发的一款基于字典的简单中英文分词组件。
分词算法
谈到分词算法,目前有很多。比较常用的是正向最大匹配和反向最大匹配算法。但这两种算法对于一些存在多元歧异的句子缺乏较好的支持。以“长春市长春节致词”和“长春市长春药店”这个两个句子为例:
“长春市长春节致词”可以依次拆分为 长春、长春市、市长、长春、春节、致词 这几个词,按照正向最大匹配算法,分词结果是长春市/长/春节/致词,按照反向最大匹配算法,分词结果是长春/市长/春节/致词。
“长春市长春药店”可以依次拆分为长春、长春市、市长、长春、春药、春药店、药店 这几个词,按照正向最大匹配算法,分词结果是 长春市/长春/药店,按照反向最大匹配算法,分词结果是“长春/市长/春药店”。
可见无论是正向还是反向最大匹配,都存在产生歧异的情况。
KTDictSeg 的算法在正向匹配算法的基础上做了一些改进,用一句话描述就是找到句子中第一个未被匹配的字数最少的单词组合,如果多个组合未被匹配的字数都是最少则找到其中匹配的单词个数最少的组合。匹配顺序是从左至右。还是以上面两个句子为例:
“长春市长春节致词” 按正向最大匹配扫描顺序可以出现如下匹配的单词组合:
1) 长春/市长/春节/致词 匹配单词数4,未匹配字数0
2) 长春市/长春/致词 匹配单词数3,未匹配字数0
不难看出,第一中组合未匹配的字数最少,所以取组合1。

“长春市长春药店”按正向最大匹配扫描顺序可以出现如下匹配的单词组合:

1) 长春市/长春/药店 匹配单词数3,未匹配字数0
2) 长春市/春药店 匹配单词数2,未匹配字数1
3) 长春市/春药 匹配单词数2,未匹配字数2
4) 长春市/药店 匹配单词数2,未匹配字数2
5) 长春/市长/春药店 匹配单词数3,未匹配字数0
6) 长春/市长/春药 匹配单词数3,未匹配字数1
7) 长春/市长/药店 匹配单词数3,未匹配字数1
8) 长春/市长/药店 匹配单词数3,未匹配字数1
9) 长春/长春/药店 匹配单词数3,未匹配字数1

可见组合1和组合5 未匹配数最小,匹配单词数相等,但组合1匹配顺序靠前,所以取组合1。
源码下载 https://sourceforge.net/projects/ktdictseg/?source=typ_redirect
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式