分詞工具ICTCLAS5.0使用心得


接觸自然語言處理有一年多了,最基本的一些自然是分詞,詞性標注,命名實體識別之類的知識,有些應用知道原理是一回事,自己動手做起來又是另外一回事了。最近又開始重操舊業:分詞。分詞最著名的自然就是中科院的分詞系統,這幾天接觸的ICTCLAS5.0(下載的文件夾名稱是:ICTCLAS50_Windows_32_JNI)覺得不錯,摸索下,記錄下心得和收獲。

<一>.使用

http://blog.csdn.net/wangxiafghj/article/details/8147926,我是按照這篇博客的教程操作的,基本沒什么問題,可以運行。

收獲:

1.TestMain.java文件中就是由兩個函數構成,字面理解,一個是處理段落的,一個是處理文本的。我覺得兩者沒什么大區別,主要的不同是處理段落的函數testICTCLAS_ParagraphProcess(sInput),輸入的段落在程序里修改,輸出的結果也是直接顯示在控制端。處理文本的函數testICTCLAS_FileProcess(),輸入是你指定路徑下的指定文件,輸出也是指定路徑下的指定文件。

2.參數的修改,我覺得我使用過程中涉及到的參數修改包括是否選擇標注詞性,詞性標記集的設置,以及文件的路徑。

是否標注詞性很容易,段落中將ICTCLAS_ParagraphProcess函數最后一個參數改為1即可(1 yes ,0 no);文本中將ICTCLAS_FileProcess函數的第三個參數改為1(1 yes ,0 no)。

程序中詞性標記集的設置只寫了一次,在函數testICTCLAS_ParagraphProcess(sInput)內部,

//設置詞性標注集(0 計算所二級標注集,1 計算所一級標注集,2 北大二級標注集,3 北大一級標注集)
testICTCLAS50.ICTCLAS_SetPOSmap(0);

我覺得這個語句在testICTCLAS_FileProcess()函數中應該再寫一次,假如使用者只使用文本形式的而把段落處理的注釋掉了,那詞性標記集的設置豈不是很麻煩,建議把這句添加到testICTCLAS_FileProcess()函數的相應位置。

文件路徑有四條語句需要修改:

//輸入文件名
            String Inputfilename = "e:/pos/test.txt";
            byte[] Inputfilenameb = Inputfilename.getBytes();//將文件名string類型轉為byte類型

            //分詞處理后輸出文件名
            String Outputfilename = "e:/pos/test_result.txt";
            byte[] Outputfilenameb = Outputfilename.getBytes();//將文件名string類型轉為byte類型

            //文件分詞(第一個參數為輸入文件的名,第二個參數為文件編碼類型,第三個參數為是否標記詞性集1 yes,0 no,第四個參數為輸出文件名)
            testICTCLAS50.ICTCLAS_FileProcess(Inputfilenameb, 0, 1, Outputfilenameb);

            int nCount = 0;
            String usrdir = "e:/pos/userdict.txt"; //用戶字典路徑
            byte[] usrdirb = usrdir.getBytes();//將string轉化為byte類型
            //第一個參數為用戶字典路徑,第二個參數為用戶字典的編碼類型(0:type unknown;1:ASCII碼;2:GB2312,GBK,GB10380;3:UTF-8;4:BIG5)
            nCount = testICTCLAS50.ICTCLAS_ImportUserDictFile(usrdirb, 0);//導入用戶字典,返回導入用戶詞語個數
            System.out.println("導入用戶詞個數" + nCount);
            nCount = 0;

            String Outputfilename1 = "e:/pos/testing_result.txt";
            byte[] Outputfilenameb1 = Outputfilename1.getBytes();//將文件名string類型轉為byte類型

 

按照自己的要求修改結束就可以運行出自己想要的結果了。

最后一個問題:每種詞性標記集中詞性代表的含義不太清楚,不廢話,繼續我的尋表之路。。。。

<二>.詞性標注集

程序中提及的詞性標注集有四種:0 計算所二級標注集,1 計算所一級標注集,2 北大二級標注集,3 北大一級標注集,但是每種標注集具體的詞表還是不清楚,找到了兩種標注集,中科院標注集和北大標注集。

中科院標記集

# 1. 名詞  (1個一類,7個二類,5個三類)

名詞分為以下子類:

n 名詞            nr 人名           nr1 漢語姓氏       nr2 漢語名字

nrj 日語人名       nrf 音譯人名       ns 地名           nsf 音譯地名

nt 機構團體名      nz 其它專名        nl 名詞性慣用語    ng 名詞性語素

nw 新詞

# 2. 時間詞(1個一類,1個二類)

t 時間詞                   tg 時間詞性語素

# 3. 處所詞(1個一類)

s 處所詞

# 4. 方位詞(1個一類)

f 方位詞

# 5. 動詞(1個一類,9個二類)

v 動詞            vd 副動詞         vn 名動詞         vshi 動詞“是”

vyou 動詞“有”     vf 趨向動詞        vx 形式動詞        vi 不及物動詞(內動詞)

vl 動詞性慣用語    vg 動詞性語素

# 6. 形容詞(1個一類,4個二類)

a 形容詞          ad 副形詞      an 名形詞    ag 形容詞性語素    al 形容詞性慣用語

# 7. 區別詞(1個一類,2個二類)

b 區別詞          bl 區別詞性慣用語

# 8. 狀態詞(1個一類)

z 狀態詞

# 9. 代詞(1個一類,4個二類,6個三類)

r 代詞            rr 人稱代詞                 rz 指示代詞        rzt 時間指示代詞  

rzs 處所指示代詞   rzv 謂詞性指示代詞          ry 疑問代詞        ryt 時間疑問代詞

rys 處所疑問代詞   ryv 謂詞性疑問代詞          rg 代詞性語素

# 10. 數詞(1個一類,1個二類)

m 數詞            mq 數量詞

# 11. 量詞(1個一類,2個二類)

q 量詞            qv 動量詞                  qt 時量詞

# 12. 副詞(1個一類)

d 副詞

# 13. 介詞(1個一類,2個二類)

p 介詞            pba 介詞“把”               pbei 介詞“被”

# 14. 連詞(1個一類,1個二類)

c 連詞            cc 並列連詞

# 15. 助詞(1個一類,15個二類)

u 助詞            uzhe 着           ule 了 嘍         uguo 過           ude1 的 底

ude2 地           ude3 得           usuo 所           udeng 等 等等 雲雲

uyy 一樣 一般 似的 般                udh 的話          uls 來講 來說 而言 說來

uzhi 之           ulian 連 (“連小學生都會”)

# 16. 嘆詞(1個一類)

e 嘆詞

# 17. 語氣詞(1個一類)

y 語氣詞(delete yg)

# 18. 擬聲詞(1個一類)

o 擬聲詞

# 19. 前綴(1個一類)

h 前綴

# 20. 后綴(1個一類)

k 后綴

# 21. 字符串(1個一類,2個二類)

x 字符串          xx 非語素字                xu 網址URL

# 22. 標點符號(1個一類,16個二類)

w 標點符號                

wkz 左括號,全角:( 〔  [  {  《 【  〖〈   半角:( [ { <

wky 右括號,全角:) 〕  ] } 》  】 〗 〉 半角: ) ] { >

wyz 左引號,全角:“ ‘ 『                      wyy 右引號,全角:” ’ 』

wj 句號,全角:。           ww 問號,全角:? 半角:?    wt 嘆號,全角:! 半角:!

wd 逗號,全角:, 半角:,    wf 分號,全角:; 半角: ;   wn 頓號,全角:、

wm 冒號,全角:: 半角: :   ws 省略號,全角:……  …

wp 破折號,全角:——   --   ——-   半角:---  ----

wb 百分號千分號,全角:% ‰   半角:%

wh 單位符號,全角:¥ $ £  °  ℃  半角:$

北大標記集

 

還增加了一類詞:un(未知詞),表示不可識別詞及用戶自定義詞組。取英文unknown前兩個字母,參考CSW分詞中的定義。

 

坑爹的是我分完的結果竟然都是un,腫么辦,哭死!!

今天發現un出現的原因是因為添加了詞典,只要是詞典中添加的詞,詞性標注均為un,再想辦法搞定這個大詞條詞性標注的問題吧。

找到的針對上一問題的解決方法了,就是在添加詞典的時候將詞典中詞條的詞性標記出來,這樣就不會顯示出來都是un了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM