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

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

簡介git

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

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

# 安裝命令數據結構

$ pip install pyhanlp函數

# 更新到最新代碼包和數據包工具

$ hanlp update學習

分詞與詞性標註優化

示例spa

 

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適用於信息檢索的分詞器。

 

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

相關文章
相關標籤/搜索