天風齋 - 唐宗漢的網站
TaBE/Toke: 中文自然語言處理模組
這個有我所需要的東西~
把字詞分離. 而且字可以轉換成注音碼. 可以來做做很多怪事~ :p
以下轉載自 TaBE/Toke: 中文自然語言處理模組
libTaBE 函式庫是由 TaBE 計劃開發的中文句、詞、字、音處理模組。Lingua::ZH::TaBE 則是以物件導向方式,重新整理過的 Perl 界面。
libtabe 0.2.5 以上版本,方能安裝本模組。
使用範例如下:
use Lingua::ZH::TaBE; my $tabe = Lingua::ZH::TaBE->new; # 可以,輕易,解決,中文,的,斷詞,問題 print join(',', $tabe->split( "可以輕易解決中文的斷詞問題" )); # 取得句、段、詞、字、音、注音符號之間的關係 print $tabe->Chu("道可道,非常道。") # 句 ->chunks->[2] # 非常道 # 段 ->tsis->[0] # 非常 # 詞 ->zhis->[1] # 常 # 字 ->yins->[0] # ㄔㄤˊ # 音 ->zuyins->[0]; # ㄔ # 注音 除此之外,還有詞頻、複雜斷詞、Big5 碼判斷及轉換等功能,族繁不及備載。 :-) 另外,我還寫了 Lingua::ZH::Toke 這個模組,可以讓 Perl 5.6.1(最好是 5.8)以上的使用者,更方便地處理語句: use Lingua::ZH::Toke; # 若後面加上 'utf8' 即可處理萬國碼 # 建立 Lingua::ZH::Toke::Sentence「句子」物件(->Sentence 亦可) my $token = Lingua::ZH::Toke->new( '那人卻在/燈火闌珊處/益發意興闌珊' ); # 利用陣列解參照,輕易達成分段功能 print $token->[0] # 段 - 那人卻在 ->[2] # 詞 - 卻在 ->[0] # 字 - 卻 ->[0] # 音 - ㄑㄩㄝˋ ->[2]; # 注音 - ㄝ # 利用雜湊解參照,計算出現次數 print $token->{'那人卻在'}; # 1 - 出現一次片段 print $token->{'意興闌珊'}; # 1 - 出現一次單詞 print $token->{'發意興闌'}; # undef - 不是一個詞 print $token->{'珊'}; # 2 - 出現兩次字 print $token->{'ㄧˋ'}; # 2 - 出現兩次字音:益意 print $token->{'ㄨ'}; # 3 - 出現三次注音:那火處 # 逐項處理「段」物件 while (my $fragment = ) { # 逐項處理「詞」物件 while (my $phrase = ) { # ... } }
歡迎批評指教。