自然語言處理基礎技術之分詞實戰
阿新 • • 發佈:2018-11-30
宣告:轉載請註明出處,謝謝:https://blog.csdn.net/m0_37306360/article/details/84453008
更多學習筆記關注:
公眾號:StudyForAI
知乎專欄:https://www.zhihu.com/people/yuquanle/columns
昨天總結了一下分詞概念以及一些現有的python開源工具,今天就來一波實戰,順便說一下jupyter真是好用~~
-----------------------------------------分割線--------------------------------------------
jieba分詞
安裝:pip install jieba
國內源安裝更快:pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
匯入jieba包
import jieba
全模式分詞
wordseg_all = jieba.cut("我愛自然語言處理技術!", cut_all=True)
print("全模式: " + " ".join(wordseg_all))
Building prefix dict from the default dictionary ... Dumping model to file cache C:\Users\yuquanle\AppData\Local\Temp\jieba.cache Loading model cost 0.968 seconds. Prefix dict has been built succesfully. 全模式: 我 愛 自然 自然語言 語言 處理 技術
精確模式分詞
wordseg = jieba.cut("我愛自然語言處理技術!", cut_all=False)
print("精確模式: " + " ".join(wordseg))
精確模式: 我 愛 自然語言 處理 技術 !
搜尋引擎模式
wordseg_search = jieba.cut_for_search("我愛自然語言處理技術!")
print("搜尋引擎模式:" + " ".join(wordseg_search))
搜尋引擎模式:我 愛 自然 語言 自然語言 處理 技術 !
SnowNLP分詞
安裝:pip install snownlp
國內源安裝:pip install snownlp -i https://pypi.tuna.tsinghua.edu.cn/simple
匯入snownlp包
from snownlp import SnowNLP
model = SnowNLP(u'我愛自然語言處理技術!')
print(model.words)
['我', '愛', '自然', '語言', '處理', '技術', '!']
THULAC分詞
安裝:pip install thulac
國內源安裝:pip install thulac -i https://pypi.tuna.tsinghua.edu.cn/simple
匯入thulac包
import thulac
預設模式:分詞的同時進行詞性標註
thulac_model = thulac.thulac()
wordseg = thulac_model.cut("我愛自然語言處理技術!")
print(wordseg)
Model loaded succeed
[['我', 'r'], ['愛', 'v'], ['自然', 'n'], ['語言', 'n'], ['處理', 'v'], ['技術', 'n'], ['!', 'w']]
只進行分詞
seg_only_model = thulac.thulac(seg_only=True)
wordseg_only = seg_only_model.cut("我愛自然語言處理技術!")
print(wordseg_only)
Model loaded succeed
[['我', ''], ['愛', ''], ['自然', ''], ['語言', ''], ['處理', ''], ['技術', ''], ['!', '']]
NLPIR分詞
安裝:pip install pynlpir
國內源安裝:pip install pynlpir -i https://pypi.tuna.tsinghua.edu.cn/simple
匯入pynlpir包
如果發現載入報錯,則需要更換license:https://github.com/NLPIR-team/NLPIR/tree/master/License/
真是開源的不徹底~~~
import pynlpir
開啟分詞器
pynlpir.open()
分詞:這個工具會同時進行詞性標註
s = "我愛自然語言處理技術!"
word_seg = pynlpir.segment(s)
print(word_seg)
[('我', 'pronoun'), ('愛', 'verb'), ('自然', 'adjective'), ('語言', 'noun'), ('處理', 'verb'), ('技術', 'noun'), ('!', 'punctuation mark')]
Stanford CoreNLP分詞
安裝:pip install stanfordcorenlp
國內源安裝:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple
匯入stanfordcorenlp包
from stanfordcorenlp import StanfordCoreNLP
先下載模型,然後匯入
下載地址:
nlp_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh')
分詞
s = '我愛自然語言處理技術!'
word_seg = nlp_model.word_tokenize(s)
print(word_seg)
['我愛', '自然', '語言', '處理', '技術', '!']
Hanlp分詞
安裝:pip install pyhanlp
國內源安裝:pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simple
匯入pyhanlp包
from pyhanlp import *
s = '我愛自然語言處理技術!'
word_seg = HanLP.segment(s)
for term in word_seg:
print(term.word)
我
愛
自然語言處理
技術
!
另外,程式碼我已經上傳github:https://github.com/yuquanle/StudyForNLP/blob/master/NLPbasic/WordSegmentation.ipynb