自然語言處理工具pyhanlp分詞與詞性標註

adnb34g發表於2019-05-18


Pyhanlp分詞與詞性標註的相關內容記得此前是有分享過的。可能時間太久記不太清楚了。以下文章是分享自“baiziyu”所寫(小部分內容有修改),供大家學習參考之用。

簡介

pyhanlp是HanLP的Python介面。因此後續所有關於pyhanlp的文章中也會寫成HanLP。HanLP是完全用Java自實現的自然語言處理工具包。特點是完全用Java實現不引入第三方工具包。完全開源。中文的開源工具能做到這麼完整的大概只有HanLP。包括了詞法分析、句法分析、分類、聚類、關鍵詞抽取等常見NLP應用任務。並且github上問題回答快,作者很是認真的解決大家提出的問題。雖然用Java實現,HanLP也提供了Python介面。

 

簡單的安裝過程,請先確保安裝了 anaconda3

# 安裝命令

$ pip install pyhanlp

# 更新到最新程式碼包和資料包

$ hanlp update

分詞與詞性標註

 

示例

 

In [1]: from pyhanlp import *

In [5]: print(HanLP.segment("你好,歡迎使用HanLP漢語處理包!接下來請從其他Demo中

   ...: 體驗HanLP豐富的功能~"))

[你好/vl, ,/w, 歡迎/v, 使用/v, HanLP/nx, 漢語/gi, 處理/vn, 包/v, !/w, 接下來/vl, 請/v, 從/p, 其他/rzv, Demo/nx, 中/f, 體驗/v, HanLP/nx, 豐富/a, 的/ude1, 功能/n, ~/nx]

In [11]: for word in word_li:

    ...:     print(word.word, word.nature)

    ...:     

你好 vl

w

歡迎 v

使用 v

HanLP nx

漢語 gi

處理 vn

v

w

接下來 vl

v

p

其他 rzv

Demo nx

f

體驗 v

HanLP nx

豐富 a

ude1

功能 n

~ nx

關於 HanLP.segment的說明。記憶體要求:120MB以上,標準資料包(35萬核心詞庫+預設使用者詞典)。HanLP對詞典的資料結構進行了長期的最佳化,哪怕HanLP的詞典上百兆也無需擔心。HanLP.segment是一個工廠函式,它是對StandardTokenizer的封裝。當前StandardTokenizer使用的是viterbi最短路分詞。viterbi分詞器是目前效率和效果的最佳平衡。該函式的詳細程式碼在 github.com/hankcs/HanLP/blob/master/src/main/java/com/hankcs/hanlp/seg/Viterbi/ViterbiSegment.java 。分詞大致功能有:首先生成詞網和詞圖即可以得到粗分詞網,經維特比演算法找最短路徑和人工干預分詞後即可得到粗分結果。之後根據配置可以進行數字識別,人名識別,譯名識別,地名識別,機構名識別,如果是索引分詞則進行全切分分詞,詞性標註。

 

HanLP的com.hankcs.hanlp.tokenizer包中封裝了很多開箱即用的分詞器,但是不是所有的分詞器都能在Python介面中直接使用。這些分詞器有BasicTokenizer這是NGram分詞器,不識別命名實體,不能使用使用者詞典。SpeedTokenizer這是最長匹配分詞器。NotionalTokenizer這是實詞分詞器。StandardTokenizer當前效率和效果最佳的分詞器。NLPTokenizer更精確的中文分詞器。IndexTokenizer適用於資訊檢索的分詞器。

 

後續 將要介紹的內容是文字的向量表示,這裡邊有一部分內容是跟特徵抽取重合的。好了,今天的內容就到這裡  



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2644831/,如需轉載,請註明出處,否則將追究法律責任。

相關文章