亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Lucene.net中文分詞探究

系統 1599 0

一、 中文分詞方式:

中文分詞幾種常用的方式:

A. 單字分詞

單字分詞,顧名思義,就是按照中文一個字一個字地進行分詞。如:我們是中國人,效果:我 \ \ \ \ \ 人。

B. 二分法

二分法,就是按兩個字進行切分。如:我們是中國人,效果:我們 \ 們是 \ 是中 \ 中國 \ 國人。

C. 詞庫分詞

詞庫分詞,就是按某種算法構造詞然后去匹配已建好的詞庫集合,如果匹配到就切分出來成為詞語。通常詞庫分詞被認為是最理想的中文分詞算法如:我們是中國人,通成效果為:我們 \ \ 中國 \ 中國人。

二、 Lucene.net 中五種中文分詞效果探究

Lucene.net 中有很多種分詞器,不同分詞器使用了不同的分詞算法,有不同的分詞效果,滿足不同的需求!在這里主要是看看其中五中分詞器用來對中文切詞的效果。五中分詞器分 別為: StandardTokenizer CJKTokenizer ChinessTokenizer LowerCaseTokenizer WhitespaceTokenizer;

?? 下面就來測試一下它們切詞的效果:

?? 測試目標:是否支持中文詞語,英文單詞,郵件, IP 地址,標點符號,數字,數學表達式的切割。
?? 測試文字:“我們是中國人 ; 我們 是 人 ;we are chiness; 172.16.34.172;youpeizun@126.com;#$*;85*34;58 <st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="69" numbertype="1" negative="False" unitname="”" w:st="on">69 </st1:chmetcnv>

測試 StandardTokenizer 的分詞情況如下:

/ / / / / / / / / / we/ are/ chiness/ 172.16.34.172/ youpeizun@126.com/ 85/ 34/ 58/ 69/

測試 CJKTokenizer 的分詞情況如下:

我們 / 們是 / 是中 / 中國 / 國人 / 我們 / / / we/ chiness/ 172/ 16/ 34/ 172/ youpe

izun/ 126/ com/ #/ 85/ 34/ 58/ 69/

測試 ChinessTokenizer 的分詞情況如下:

/ / / / / / / / / / we/ are/ chiness/ 172/ 16/ 34/ 172/ youp

eizun/ 126/ com/ 85/ 34/ 58/ 69/

測試 LowerCaseTokenizer 的分詞情況如下:

我們是中國人 / 我們 / / /we/are/chiness/youpeizun/com/

測試 WhitespaceTokenizer 的分詞情況如下:

我們是中國人 ;/ 我們 / / ;we/are/chiness;/172.16.34.172;youpeizun@126.com;#$*;85*

34;58/69/

測試代碼:
一、 中文分詞方式:

中文分詞效果測試代碼
<!----> using ?System;
using ?System.Collections.Generic;
using ?System.Text;
using ?Lucene.Net.Analysis.Standard;
using ?Lucene.Net.Analysis;
using ?Lucene.Net.Index;
using ?Lucene.Net.Documents;
using ?System.IO;
using ?Lucene.Net.Analysis.Cn;
using ?Lucene.Net.Analysis.CJK;
// date:11-02-2007
// home?page: http://www.cnblogs.com/xuanfeng
// author:peizunyou
namespace ?TokenizerTest
{
????
class ?TokenizerTest
????
{
????????
static ? void ?Main( string []?args)
????????
{
????????????
string ?testText? = ? " 我們是中國人;?我們?是?人;we?are?chiness;?172.16.34.172;youpeizun@126.com;#$*;85*34;58?69 " ;
????????????Console.WriteLine(
" 測試文字: " + testText);
????????????Console.WriteLine(
" 測試StandardTokenizer的分詞情況如下: " );
????????????TestStandardTokenizer(testText);
????????????Console.WriteLine(
" 測試CJKTokenizer的分詞情況如下: " );
????????????TestCJKTokenizer(testText);
????????????Console.WriteLine(
" 測試ChinessTokenizer的分詞情況如下: " );
????????????TestChinessTokenizer(testText);
????????????Console.WriteLine(
" 測試LowerCaseTokenizer的分詞情況如下: " );
????????????TestLowerCaseTokenizer(testText);
????????????Console.WriteLine(
" 測試WhitespaceTokenizer的分詞情況如下: " );
????????????TestWhitespaceTokenizer(testText);
????????????Console.Read();
????????}

????????
static ?? void ?TestStandardTokenizer( string ?text)
????????
{
????????????TextReader?tr?
= ? new ?StringReader(text);

????????????StandardTokenizer?st?
= ? new ?StandardTokenizer(tr);
?????????
????????????
while ?(st.Next()? != ? null )
????????????
{

????????????????Console.Write(st.token.ToString()
+ " /? " );
????????????}

????????????Console.WriteLine();
????????}

????????
static ? void ?TestCJKTokenizer( string ?text)
????????
{
????????????TextReader?tr?
= ? new ?StringReader(text);
????????????
int ?end? = ? 0 ;
????????????CJKAnalyzer?cjkA?
= ? new ?CJKAnalyzer();
????????????TokenStream?ts?
= ?cjkA.TokenStream(tr);
????????????
while (end < text.Length)
????????????
{
????????????????Lucene.Net.Analysis.Token?t?
= ?ts.Next();
????????????????end?
= ?t.EndOffset();
????????????????Console.Write(t.TermText()
+ " /? " );
????????????}

????????????Console.WriteLine();
????????}

????????
static ? void ?TestChinessTokenizer( string ?text)
????????
{
????????????TextReader?tr?
= ? new ?StringReader(text);
????????????ChineseTokenizer?ct?
= ? new ?ChineseTokenizer(tr);
????????????
int ?end? = ? 0 ;
????????????Lucene.Net.Analysis.Token?t;
????????????
while (end < text.Length)
????????????
{
????????????????t?
= ?ct.Next();
????????????????end?
= ?t.EndOffset();
????????????????Console.Write(t.TermText()
+ " /? " );
????????????}

????????????Console.WriteLine();
????????
????????}

????????
????????
static ? void ?TestLowerCaseTokenizer( string ?text)
????????
{
????????????TextReader?tr?
= ? new ?StringReader(text);
????????????SimpleAnalyzer?sA?
= ? new ?SimpleAnalyzer();
????????????
// SimpleAnalyzer使用了LowerCaseTokenizer分詞器
????????????TokenStream?ts? = ?sA.TokenStream(tr);
????????????Lucene.Net.Analysis.Token?t;
????????????
while ((t = ts.Next()) != null )
????????????
{
????????????????Console.Write(t.TermText()
+ " / " );
????????????}

????????????Console.WriteLine();
????????}

????????
static ? void ?TestWhitespaceTokenizer( string ?text)
????????
{
????????????TextReader?tr?
= ? new ?StringReader(text);
???
????????????WhitespaceAnalyzer?sA?
= ? new ?WhitespaceAnalyzer();
????????????TokenStream?ts?
= ?sA.TokenStream(tr);
????????????Lucene.Net.Analysis.Token?t;
????????????
while ?((t? = ?ts.Next())? != ? null )
????????????
{
????????????????Console.Write(t.TermText()?
+ ? " / " );
????????????}

????????????Console.WriteLine();
????????}

????}

}

?

中文分詞幾種常用的方式:

A. 單字分詞

單字分詞,顧名思義,就是按照中文一個字一個字地進行分詞。如:我們是中國人,效果:我 \ \ \ \ \ 人。

B. 二分法

二分法,就是按兩個字進行切分。如:我們是中國人,效果:我們 \ 們是 \ 是中 \ 中國 \ 國人。

C. 詞庫分詞

詞庫分詞,就是按某種算法構造詞然后去匹配已建好的詞庫集合,如果匹配到就切分出來成為詞語。通常詞庫分詞被認為是最理想的中文分詞算法如:我們是中國人,通成效果為:我們 \ \ 中國 \ 中國人。

二、 Lucene.net 中五種中文分詞效果探究

Lucene.net 中有很多種分詞器,不同分詞器使用了不同的分詞算法,有不同的分詞效果,滿足不同的需求!在這里主要是看看其中五中分詞器用來對中文切詞的效果。五中分詞器分 別為: StandardTokenizer CJKTokenizer ChinessTokenizer LowerCaseTokenizer WhitespaceTokenizer;

?? 下面就來測試一下它們切詞的效果:

?? 測試目標:是否支持中文詞語,英文單詞,郵件, IP 地址,標點符號,數字,數學表達式的切割。
?? 測試文字:“我們是中國人 ; 我們 是 人 ;we are chiness; 172.16.34.172;youpeizun@126.com;#$*;85*34;58 <st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="69" numbertype="1" negative="False" unitname="”" w:st="on">69 </st1:chmetcnv>

測試 StandardTokenizer 的分詞情況如下:

/ / / / / / / / / / we/ are/ chiness/ 172.16.34.172/ youpeizun@126.com/ 85/ 34/ 58/ 69/

測試 CJKTokenizer 的分詞情況如下:

我們 / 們是 / 是中 / 中國 / 國人 / 我們 / / / we/ chiness/ 172/ 16/ 34/ 172/ youpe

izun/ 126/ com/ #/ 85/ 34/ 58/ 69/

測試 ChinessTokenizer 的分詞情況如下:

/ / / / / / / / / / we/ are/ chiness/ 172/ 16/ 34/ 172/ youp

eizun/ 126/ com/ 85/ 34/ 58/ 69/

測試 LowerCaseTokenizer 的分詞情況如下:

我們是中國人 / 我們 / / /we/are/chiness/youpeizun/com/

測試 WhitespaceTokenizer 的分詞情況如下:

我們是中國人 ;/ 我們 / / ;we/are/chiness;/172.16.34.172;youpeizun@126.com;#$*;85*

34;58/69/

測試代碼:
測試代代碼下載

中文分詞效果測試代碼
<!----> using ?System;
using ?System.Collections.Generic;
using ?System.Text;
using ?Lucene.Net.Analysis.Standard;
using ?Lucene.Net.Analysis;
using ?Lucene.Net.Index;
using ?Lucene.Net.Documents;
using ?System.IO;
using ?Lucene.Net.Analysis.Cn;
using ?Lucene.Net.Analysis.CJK;
// date:11-02-2007
// home?page: http://www.cnblogs.com/xuanfeng
// author:peizunyou
namespace ?TokenizerTest
{
????
class ?TokenizerTest
????
{
????????
static ? void ?Main( string []?args)
????????
{
????????????
string ?testText? = ? " 我們是中國人;?我們?是?人;we?are?chiness;?172.16.34.172;youpeizun@126.com;#$*;85*34;58?69 " ;
????????????Console.WriteLine(
" 測試文字: " + testText);
????????????Console.WriteLine(
" 測試StandardTokenizer的分詞情況如下: " );
????????????TestStandardTokenizer(testText);
????????????Console.WriteLine(
" 測試CJKTokenizer的分詞情況如下: " );
????????????TestCJKTokenizer(testText);
????????????Console.WriteLine(
" 測試ChinessTokenizer的分詞情況如下: " );
????????????TestChinessTokenizer(testText);
????????????Console.WriteLine(
" 測試LowerCaseTokenizer的分詞情況如下: " );
????????????TestLowerCaseTokenizer(testText);
????????????Console.WriteLine(
" 測試WhitespaceTokenizer的分詞情況如下:

Lucene.net中文分詞探究


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 爱爱免费网址 | 元龙第三季免费观看 | 国产极品白嫩美女在线观看看 | 97国产| 久久久久国产一级毛片高清版 | 91夜夜操| 久久www免费人成高清 | 本地毛片| 欧美嫩草 | 欧美日日夜夜 | 老妇色 | 国产免费不卡视频 | 日本亚洲视频 | 超级97碰碰碰碰久久久久最新 | 日本高清在线一区二区三区 | 亚洲精品视频一区二区 | 久久国产精品久久 | 国产精品视频免费的 | 亚洲综色 | 国产在线精品一区免费香蕉 | 中文字幕免费在线播放 | 在线视频亚洲 | a毛片视频免费观看影院 | 国产第一页久久亚洲欧美国产 | 深夜在线观看 | 亚洲特级片 | 亚洲精品一区二区三区婷婷 | 伊人久久一本大道 | www伊人| 久久久久无码国产精品一区 | 成人欧美精品久久久久影院 | 色婷婷久久综合中文网站 | 亚洲爽爽 | 91中文字幕在线播放 | 图片专区亚洲 欧美 另类 | 亚洲第一区视频在线观看 | 久久综合综合 | 爱爱网网站免费观看 | 国产高清精品一区 | 久久久高清日本道免费观看 | 国产高清一级毛片在线不卡 |