一元分词:内置的StandardAnalyzer是将英文按照空格、标点符号等进行分词,将中文按照单个字进行分词,一个汉字算一个词。代码如下
Analyzer analyzer = new StandardAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
this.listBox1.Items.Add(token.TermText()); //将分词后的结果添加到listBox中
}
二元分词:lCJKAnalyzer 使用的是网上下载的此类。 代码与上面基本一致
Analyzer analyzer = new CJKAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
this.listBox1.Items.Add(token.TermText());
}
盘古分词:基于词库的分词算法,基于一个词库进行分词,可以提高分词的成功率
要使用盘古分词,首先要引用PanGu.dll 和PanGu.Lucene.Analyzer.dll
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家!"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)//next(),继续分词,如果没有更多的词,则返回null
{
this.listBox1.Items.Add(token.TermText());//得到分到的词。
}