C#中文分词算法:ChineseAnalyzer
C#中文分词算法:ChineseAnalyzer 。
using Lucene.Net;
using Lucene.Net.Analysis;
using Lucene.China;
----------
使用方法举例:
private void button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Remove(0, sb.Length);
string t1 = "";
int i = 0;
Analyzer analyzer = new Lucene.China.ChineseAnalyzer();
StringReader sr = new StringReader(richTextBox1.Text);
TokenStream stream = analyzer.TokenStream(null, sr);
long begin = System.DateTime.Now.Ticks;
Token t = stream.Next();
while (t != null)
{
t1 = t.ToString(); //显示格式: (关键词,0,2) ,需要处理
t1 = t1.Replace("(","");
char[] separator = { ',' };
t1 = t1.Split(separator)[0];
sb.Append(i+":"+ t1 + "\r\n");
t = stream.Next();
i++;
}
richTextBox2.Text = sb.ToString();
long end = System.DateTime.Now.Ticks; //100毫微秒
int time = (int)((end - begin) / 10000); //ms
}
中文分词算法:ChineseAnalyzer.rar
首先需要引用 2个dll库文件 Lucene.Net.dll + Lucene.China.dll ,会打包在本文结束处,使用VS2008调试通过:
using Lucene.Net;
using Lucene.Net.Analysis;
using Lucene.China;
----------
使用方法举例:
private void button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Remove(0, sb.Length);
string t1 = "";
int i = 0;
Analyzer analyzer = new Lucene.China.ChineseAnalyzer();
StringReader sr = new StringReader(richTextBox1.Text);
TokenStream stream = analyzer.TokenStream(null, sr);
long begin = System.DateTime.Now.Ticks;
Token t = stream.Next();
while (t != null)
{
t1 = t.ToString(); //显示格式: (关键词,0,2) ,需要处理
t1 = t1.Replace("(","");
char[] separator = { ',' };
t1 = t1.Split(separator)[0];
sb.Append(i+":"+ t1 + "\r\n");
t = stream.Next();
i++;
}
richTextBox2.Text = sb.ToString();
long end = System.DateTime.Now.Ticks; //100毫微秒
int time = (int)((end - begin) / 10000); //ms
richTextBox2.Text += "耗时" + (time) + "ms \r\n=================================\r\n";
}
截图如下:
下载地址:
中文分词算法:ChineseAnalyzer.rar