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

Lucene.net中文分詞探究

系統(tǒng) 1798 0

一、 中文分詞方式:

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

A. 單字分詞

單字分詞,顧名思義,就是按照中文一個(gè)字一個(gè)字地進(jìn)行分詞。如:我們是中國(guó)人,效果:我 \ \ \ \ 國(guó) \ 人。

B. 二分法

二分法,就是按兩個(gè)字進(jìn)行切分。如:我們是中國(guó)人,效果:我們 \ 們是 \ 是中 \ 中國(guó) \ 國(guó)人。

C. 詞庫(kù)分詞

詞庫(kù)分詞,就是按某種算法構(gòu)造詞然后去匹配已建好的詞庫(kù)集合,如果匹配到就切分出來(lái)成為詞語(yǔ)。通常詞庫(kù)分詞被認(rèn)為是最理想的中文分詞算法如:我們是中國(guó)人,通成效果為:我們 \ \ 中國(guó) \ 中國(guó)人。

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

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

?? 下面就來(lái)測(cè)試一下它們切詞的效果:

?? 測(cè)試目標(biāo):是否支持中文詞語(yǔ),英文單詞,郵件, IP 地址,標(biāo)點(diǎn)符號(hào),數(shù)字,數(shù)學(xué)表達(dá)式的切割。
?? 測(cè)試文字:“我們是中國(guó)人 ; 我們 是 人 ;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>

測(cè)試 StandardTokenizer 的分詞情況如下:

/ / / / 國(guó) / / / / / / we/ are/ chiness/ 172.16.34.172/ youpeizun@126.com/ 85/ 34/ 58/ 69/

測(cè)試 CJKTokenizer 的分詞情況如下:

我們 / 們是 / 是中 / 中國(guó) / 國(guó)人 / 我們 / / / we/ chiness/ 172/ 16/ 34/ 172/ youpe

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

測(cè)試 ChinessTokenizer 的分詞情況如下:

/ / / / 國(guó) / / / / / / we/ are/ chiness/ 172/ 16/ 34/ 172/ youp

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

測(cè)試 LowerCaseTokenizer 的分詞情況如下:

我們是中國(guó)人 / 我們 / / /we/are/chiness/youpeizun/com/

測(cè)試 WhitespaceTokenizer 的分詞情況如下:

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

34;58/69/

測(cè)試代碼:
一、 中文分詞方式:

中文分詞效果測(cè)試代碼
<!----> 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? = ? " 我們是中國(guó)人;?我們?是?人;we?are?chiness;?172.16.34.172;youpeizun@126.com;#$*;85*34;58?69 " ;
????????????Console.WriteLine(
" 測(cè)試文字: " + testText);
????????????Console.WriteLine(
" 測(cè)試StandardTokenizer的分詞情況如下: " );
????????????TestStandardTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試CJKTokenizer的分詞情況如下: " );
????????????TestCJKTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試ChinessTokenizer的分詞情況如下: " );
????????????TestChinessTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試LowerCaseTokenizer的分詞情況如下: " );
????????????TestLowerCaseTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試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. 單字分詞

單字分詞,顧名思義,就是按照中文一個(gè)字一個(gè)字地進(jìn)行分詞。如:我們是中國(guó)人,效果:我 \ \ \ \ 國(guó) \ 人。

B. 二分法

二分法,就是按兩個(gè)字進(jìn)行切分。如:我們是中國(guó)人,效果:我們 \ 們是 \ 是中 \ 中國(guó) \ 國(guó)人。

C. 詞庫(kù)分詞

詞庫(kù)分詞,就是按某種算法構(gòu)造詞然后去匹配已建好的詞庫(kù)集合,如果匹配到就切分出來(lái)成為詞語(yǔ)。通常詞庫(kù)分詞被認(rèn)為是最理想的中文分詞算法如:我們是中國(guó)人,通成效果為:我們 \ \ 中國(guó) \ 中國(guó)人。

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

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

?? 下面就來(lái)測(cè)試一下它們切詞的效果:

?? 測(cè)試目標(biāo):是否支持中文詞語(yǔ),英文單詞,郵件, IP 地址,標(biāo)點(diǎn)符號(hào),數(shù)字,數(shù)學(xué)表達(dá)式的切割。
?? 測(cè)試文字:“我們是中國(guó)人 ; 我們 是 人 ;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>

測(cè)試 StandardTokenizer 的分詞情況如下:

/ / / / 國(guó) / / / / / / we/ are/ chiness/ 172.16.34.172/ youpeizun@126.com/ 85/ 34/ 58/ 69/

測(cè)試 CJKTokenizer 的分詞情況如下:

我們 / 們是 / 是中 / 中國(guó) / 國(guó)人 / 我們 / / / we/ chiness/ 172/ 16/ 34/ 172/ youpe

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

測(cè)試 ChinessTokenizer 的分詞情況如下:

/ / / / 國(guó) / / / / / / we/ are/ chiness/ 172/ 16/ 34/ 172/ youp

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

測(cè)試 LowerCaseTokenizer 的分詞情況如下:

我們是中國(guó)人 / 我們 / / /we/are/chiness/youpeizun/com/

測(cè)試 WhitespaceTokenizer 的分詞情況如下:

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

34;58/69/

測(cè)試代碼:
測(cè)試代代碼下載

中文分詞效果測(cè)試代碼
<!----> 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? = ? " 我們是中國(guó)人;?我們?是?人;we?are?chiness;?172.16.34.172;youpeizun@126.com;#$*;85*34;58?69 " ;
????????????Console.WriteLine(
" 測(cè)試文字: " + testText);
????????????Console.WriteLine(
" 測(cè)試StandardTokenizer的分詞情況如下: " );
????????????TestStandardTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試CJKTokenizer的分詞情況如下: " );
????????????TestCJKTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試ChinessTokenizer的分詞情況如下: " );
????????????TestChinessTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試LowerCaseTokenizer的分詞情況如下: " );
????????????TestLowerCaseTokenizer(testText);
????????????Console.WriteLine(
" 測(cè)試WhitespaceTokenizer的分詞情況如下:

Lucene.net中文分詞探究


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产无毛 | 麻豆精品视频 在线视频 | 最新99国产成人精品视频免费 | 欧洲午夜视频 | 久久加久久 | 日韩国产欧美在线观看 | 狠狠躁夜夜躁人人爽天天3 狠狠躁夜夜躁人人爽天天miya | 黄色毛片在线播放 | 五月天婷婷视频 | 国产精品一区二区不卡 | 天天色综合5 | 色婷婷一区二区三区四区成人 | 九九51精品国产免费看 | 国产成人咱精品视频免费网站 | 午夜影院私人 | 久久免费高清视频 | 色综合色狠狠天天久久婷婷基地 | 国产成人精品曰本亚洲77美色 | 免费一看一级毛片全播放 | 四虎视屏 | 99国产精品一区二区 | 一级一毛片a级毛片欧美 | 国产欧美专区在线观看 | 久久最新免费视频 | 国产美女mm131爽爽爽免费 | 日本a在线 | 国产精品久久久久影视青草 | 福利影院在线 | 国产欧美精品一区二区三区–老狼 | 国产精品久久久久久免费播放 | 日韩综合在线 | 国产美女一级高清免费观看 | 国产精品视频全国免费观看 | 天天操夜夜噜 | 亚洲精品第一页中文字幕 | 午夜看毛片 | 漂亮女大学一级毛片 | 99视频在线观看免费视频 | 91精品国产露脸在线 | 国内久久久久影院精品 | 五月婷婷伊人网 |