python pynlpir中科院分词的使用
中科院漢語分詞系統是一個非常好用的分詞工具,和結巴分詞類似,但是比結巴分詞功能更加強大,而且更加個性化。
中科院分詞的使用步驟如下:
1、需要下載【pynlpir】庫
2、【open()】函數介紹:
open()函數的原型如下:
pynlpir.open(data_dir=pynlpir.nlpir.PACKAGE_DIR, encoding=pynlpir.ENCODING, encoding_errors=pynlpir.ENCODING_ERRORS, license_code=None)
參數說明如下:
data_dir:表示分詞數據目錄對應的絕對路徑,默認值為pynlpir.nlpir.PACKAGE_DIR。
encoding:表示針對中文的編碼格式,默認為utf_8,也可以為gbk、big5。
encoding_errors:表示所需的編碼錯誤處理方案,默認為strict,也可以為ignore、replace。
license_code:表示使用中科院分詞的許可證編碼,僅商業用戶需要
import pynlpir #導入pynlpir庫pynlpir.open() #初始化pynlpir分詞庫 content = "真正的程序員的程序不會在第一次就正確運行,但是他們愿意守著機器進行若干個小時的調試改錯。" #獲取語句中的關鍵字 key_words = pynlpir.get_key_words(content, weighted=False) for word in key_words:print (word) pynlpir.close() #關閉pynlpir,釋放內存3、【segment()】函數介紹:
中科院分詞提供了segment()函數進行分詞,并返回分詞后的列表。函數原型如下:
【pynlpir.segment(s, pos_tagging=True, pos_names='parent', pos_english=True)】
參數說明如下:
s:需要分詞的中文,必須是Unicode編碼或者UTF-8編碼的字符串。
pos_tagging:表示是否包含部分的詞性標注,值為False時表示只做分詞,而不顯示詞性(形容詞、名詞等)。
pos_names:參數在pos_tagging為True時才生效,只能是parent、child和all三個值,默認是parent,表示獲取該詞性的最頂級詞性,child表示獲取該詞性的最具體的信息,all表示獲取該詞性相關的所有詞性信息。
pos_english:表示詞性標注結果是否以中文的形式顯示,為False表示以中文的形式顯示
import pynlpir #導入pynlpir庫 pynlpir.open() #初始化pynlpir分詞庫 content = "真正的程序員的程序不會在第一次就正確運行,但是他們愿意守著機器進行若干個小時的調試改錯。" #不輸出詞性 words = pynlpir.segment(content,pos_tagging=False) for word in words:print (word,"/") print ("\n****輸出詞性****") #獲取分詞處理后每個詞語以及其最頂級的詞性,并以中文輸出詞性 words = pynlpir.segment(content,pos_tagging=True, pos_names='parent', pos_english=False) for word in words:print ("詞:", word[0],"詞性:", word[1]) pynlpir.close() #關閉pynlpir,釋放內存4、【get_key_words()】函數介紹:
函數原型:【pynlpir.get_key_words(s ,max_words=50, weighted=False)】
參數說明如下:
s:需要分詞的中文,必須是Unicode編碼或者UTF-8編碼的字符串。
max_words:表示最多能夠查找的關鍵字,默認為50。
weighted:表示是否返回關鍵字的權重,默認不返回
import pynlpir #導入pynlpir庫 pynlpir.open() #初始化pynlpir分詞庫 content = "真正的程序員的程序不會在第一次就正確運行,但是他們愿意守著機器進行若干個小時的調試改錯。" #不輸出權重 words = pynlpir.get_key_words(content,weighted=False) for word in words:print (word) print ("\n****關鍵字帶權重****") words = pynlpir.get_key_words(content,max_words=50,weighted=True) for word in words:print ("關鍵字:",word[0],"權重:",word[1]) pynlpir.close() #關閉pynlpir,釋放內存5、實際使用:
在實際使用中,往往需要針對某一段文字統計其中關鍵字出現的次數。
’通過對次數的統計可以知道哪些關鍵字經常出現。
使用中科院分詞進行關鍵字統計的步驟如下: 定義一個字典對象,用來保存關鍵字和其出現的次數。初始化該列表數據,關鍵字出現的次數設置為初始值0。
使用get_key_words()函數獲取關鍵字的列表數據。
使用segment()函數對該段文字進行分詞處理,從而得到返回的分詞列表數據。 循環遍歷分詞列表數據,判斷其中的元素是否屬于關鍵字,如果屬于關鍵字則將字典對象中對應關鍵字出現的次數加1
import pynlpir #導入pynlpir庫 pynlpir.open() #初始化pynlpir分詞庫 content = "真正的程序員的程序不會在第一次就正確運行,但是他們愿意守著機器進行若干個小時的調試改錯。" wordDict = {} #定義字典對象,保存關鍵字及出現的次數 key_words = pynlpir.get_key_words(content, weighted=False) #獲取關鍵字 for word in key_words:wordDict[word] = 0 words = pynlpir.segment(content, pos_tagging=False, pos_english=False) for word in words:if key_words.count(word) > 0:wordDict[word] = wordDict[word] + 1 #關鍵字次數加1 for item in wordDict:print (item,"出現次數為:",wordDict[item]) #輸出關鍵字及出現的次數 pynlpir.close() #關閉pynlpir,釋放內存愿本文對你的文章分析能有一個非常有效的幫助。
總結
以上是生活随笔為你收集整理的python pynlpir中科院分词的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python pynlpir NLPIR
- 下一篇: python jieba库用法