六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1404|回复: 0

Lucene中文分词 IKAnalyzer C#.Net版本 下载-it论坛转载

[复制链接]
 楼主| 发表于 2013-12-19 20:28:05 | 显示全部楼层 |阅读模式
Lucene中文分词 IKAnalyzer C#.Net版本 下载
源代码下载地址:http://cn.ziddu.com/download.php?uid=Z7GemJepa7Cb4palY7KWlJiiZK6enZk%3D3

根据IKAnalyzer Java版本移植到C#。采用了Powercollection类库。 it论坛

使用示例:
System.String testString = "据路透社报道,印度尼西亚社会事务部一官员星期二(29日)表示,日惹市附近当地时间27日晨5时53分发生的里氏6.2级地震已经造成至少5427人死亡,20000余人受伤,近20万人无家可归。"; it论坛


             //testString = teststr;
             for(int k=0;k<10;k++)
             testString += testString;

             IKAnalyzer ika = new IKAnalyzer();
             Console.WriteLine(testString.Length);
             try
             {
                 System.IO.TextReader r = new System.IO.StringReader(testString);
                 TokenStream ts = ika.TokenStream("TestField", r);
                 int m = 0;
                 long begin = System.DateTime.Now.Ticks;
                 for (Token t = ts.Next(); t != null; t = ts.Next())
                 {
                     m++;
                     // System.Console.Out.WriteLine(t.StartOffset() + " - " + t.EndOffset() + " = " + t.TermText());
                 }
                 int end = (int)((System.DateTime.Now.Ticks-begin)*1.0/100000);

                 System.Console.Out.WriteLine("\u8017\u65F6 : " + (end) + "ms"+" 分词个数:"+m+" 效率(词/秒):"+ ((int)(m*1.0f/(end)*1000)));
             }
             catch (System.IO.IOException e)
             {
                 Console.WriteLine(e.StackTrace);
             }

另:IKAnalyzer和庖丁分词性能对比版本:
    IKAnalyzer2.0.2
    paoding_analysis2.0.4alpha
测试环境:
Inter Core 1.8双核,1G内存,XP,Java1.6Se
结果:
对长度为96256中文分词:
      IKAnalyzer:203ms 55296 单词 272394 词/秒
         paoding:94ms 47104单词 501106词/秒
对长度为3008中文分词:
      IKAnalyzer: 31ms    1728单词      55741词/秒
          paoding:15ms 1472单词 98133词/秒

分词内容:
据路透社报道,印度尼西亚社会事务部一官员星期二(29日)表示,日惹市附近当地时间27日晨5时53分发生的里氏6.2级地震已经造成至少5427人死亡,20000余人受伤,近20万人无家可归。
分词效果:it论坛
IKAnalyzer:
1 - 4 = 路透社
1 - 2 = 路
4 - 6 = 报道
7 - 12 = 印度尼西亚
7 - 9 = 印度
10 - 12 = 西亚
12 - 14 = 社会
14 - 17 = 事务部
14 - 16 = 事务
17 - 18 = 一
18 - 20 = 官员
20 - 23 = 星期二
20 - 22 = 星期
22 - 23 = 二
24 - 27 = 29日
24 - 26 = 29
26 - 27 = 日
28 - 30 = 表示
31 - 34 = 日惹市
31 - 33 = 日惹
32 - 34 = 惹市
34 - 36 = 附近
36 - 40 = 当地时间
36 - 38 = 当地
38 - 40 = 时间
40 - 43 = 27日
40 - 42 = 27
43 - 44 = 晨
44 - 46 = 5时
44 - 45 = 5
46 - 49 = 53分
46 - 48 = 53
48 - 50 = 分发
49 - 51 = 发生
52 - 54 = 里氏
54 - 58 = 6.2级
54 - 57 = 6.2
58 - 60 = 地震
60 - 62 = 已经
62 - 64 = 造成
64 - 66 = 至少
66 - 71 = 5427人
66 - 70 = 5427
71 - 73 = 死亡
74 - 79 = 20000
79 - 81 = 余人
81 - 83 = 受伤
84 - 85 = 近
85 - 89 = 20万人
85 - 88 = 20万
85 - 87 = 20
87 - 89 = 万人
89 - 93 = 无家可归
92 - 93 = 归

paoding:
1 - 4 = 路透社
4 - 6 = 报道
7 - 9 = 印度
7 - 11 = 印度尼西
10 - 12 = 西亚
12 - 14 = 社会
14 - 16 = 事务
16 - 17 = 部
17 - 18 = 1
18 - 20 = 官员
20 - 22 = 星期
20 - 23 = 星期二
24 - 26 = 29
26 - 27 = 日
28 - 30 = 表示
31 - 33 = 日惹
33 - 34 = 市
34 - 36 = 附近
38 - 40 = 时间
36 - 40 = 当地时间
40 - 42 = 27
42 - 43 = 日
43 - 44 = 晨
44 - 45 = 5
45 - 46 = 时
46 - 48 = 53
48 - 49 = 分
49 - 51 = 发生
50 - 52 = 生的
52 - 54 = 里氏
54 - 57 = 6.2
57 - 58 = 级
58 - 60 = 地震
60 - 62 = 已经
62 - 64 = 造成
64 - 66 = 至少
66 - 70 = 5427
70 - 71 = 人
71 - 73 = 死亡
74 - 79 = 20000
79 - 81 = 余人
81 - 83 = 受伤
84 - 85 = 近
85 - 88 = 200000
88 - 89 = 人
89 - 93 = 无家可归

结论:
paoding和IK分词效果差不多,IK分词多些但速度差些。



该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表