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

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條評論
主站蜘蛛池模板: 99国内视频 | 全黄冷激性性视频 | 免费永久国产在线视频 | 亚洲精品久久久久久小说 | 中文字幕日韩欧美 | 国产黄mmd在线观看免费 | 热99精品在线 | 亚洲第一永久色 | 欧美日韩一区二区亚洲 | 精品欧美在线 | 久久精品中文字幕首页 | 国产99久久 | 色偷偷成人网免费视频男人的天堂 | 激情五月宗合网 | 九九视频在线观看视频 | 中国日韩欧美中文日韩欧美色 | 色综合久久伊人 | 亚洲精品一区二区三区在线看 | 一级淫片免费视频 | 国产在线精品网址你懂的 | 国产一级精品视频 | 欧美精品综合一区二区三区 | 思思久久99热这里只有精品66 | 亚洲欧洲国产精品你懂的 | 一级毛片aaa片免费观看 | 天天色综网 | 免费区欧美一级毛片精品 | 国产精品视频全国免费观看 | 高清一级毛片一本到免费观看 | 亚洲999 | 日日摸夜夜添夜夜添久久 | 国产精品久久久久久久久齐齐 | 久久狠狠第一麻豆婷婷天天 | 日本老太做爰xx | 四虎影视在线永久免费观看 | 亚洲欧美中文日韩综合 | 亚洲在线中文 | 91久娇草| 久草网在线 | 国产精品成人在线播放 | 久久福利在线 |