Python機器學(xué)習(xí)NLP自然語言處理基本操作精確分詞
概述
從今天開始我們將開啟一段自然語言處理 (NLP) 的旅程. 自然語言處理可以讓來處理, 理解, 以及運用人類的語言, 實現(xiàn)機器語言和人類語言之間的溝通橋梁.
分詞器 jieba
jieba 算法基于前綴詞典實現(xiàn)高效的詞圖掃描, 生成句子中漢字所有可能成詞的情況所構(gòu)成的有向無環(huán)圖. 通過動態(tài)規(guī)劃查找最大概率路徑, 找出基于詞頻的最大切分組合. 對于未登錄詞采用了基于漢字成詞能力的 HMM 模型, 使用 Viterbi 算法.
安裝
pip install jieba
查看是否安裝成功:
import jieba print(jieba.__version__)
輸出結(jié)果:
0.42.1
精確分詞
精確分詞: 精確模式試圖將句子最精確地切開, 精確分詞也是默認(rèn)分詞.
格式:
jieba.cut(content, cut_all=False)
參數(shù):
- content: 需要分詞的內(nèi)容
- cut_all: 如果為 True 則為全模式, False 為精確模式
例子:
import jieba # 定義文本 content = "自然語言處理是人工智能和語言學(xué)領(lǐng)域的分支學(xué)科。此領(lǐng)域探討如何處理及運用自然語言;自然語言處理包括多方面和步驟,基本有認(rèn)知、理解、生成等部分。" # 精確分詞 seg = jieba.cut(content, cut_all=False) # 調(diào)試輸出 print([word for word in seg])
輸出結(jié)果:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache Loading model cost 0.984 seconds. Prefix dict has been built successfully. ['自然語言', '處理', '是', '人工智能', '和', '語言學(xué)', '領(lǐng)域', '的', '分支', '學(xué)科', '。', '此', '領(lǐng)域', '探討', '如何', '處理', '及', '運用', '自然語言', ';', '自然語言', '處理', '包括', '多方面', '和', '步驟', ',', '基本', '有', '認(rèn)知', '、', '理解', '、', '生成', '等', '部分', '。']
全模式
全模式分詞: 全模式會把句子中所有可能是詞語的都掃出來. 速度非??? 但不能解決歧義問題.
例子:
C:\Users\Windows\Anaconda3\pythonw.exe "C:/Users/Windows/Desktop/project/NLP 基礎(chǔ)/結(jié)巴.py" Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache ['自然', '自然語言', '語言', '處理', '是', '人工', '人工智能', '智能', '和', '語言', '語言學(xué)', '領(lǐng)域', '的', '分支', '學(xué)科', '。', '此', '領(lǐng)域', '探討', '如何', '何處', '處理', '及', '運用', '自然', '自然語言', '語言', ';', '自然', '自然語言', '語言', '處理', '包括', '多方', '多方面', '方面', '和', '步驟', ',', '基本', '有', '認(rèn)知', '、', '理解', '、', '生成', '等', '部分', '。'] Loading model cost 0.999 seconds. Prefix dict has been built successfully.
輸出結(jié)果:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache ['自然', '自然語言', '語言', '處理', '是', '人工', '人工智能', '智能', '和', '語言', '語言學(xué)', '領(lǐng)域', '的', '分支', '學(xué)科', '。', '此', '領(lǐng)域', '探討', '如何', '何處', '處理', '及', '運用', '自然', '自然語言', '語言', ';', '自然', '自然語言', '語言', '處理', '包括', '多方', '多方面', '方面', '和', '步驟', ',', '基本', '有', '認(rèn)知', '、', '理解', '、', '生成', '等', '部分', '。'] Loading model cost 0.999 seconds. Prefix dict has been built successfully.
搜索引擎模式
搜索引擎模式: 在精確模式的基礎(chǔ)上, 對長詞再次切分. 提高召回率, 適合用于搜索引擎分詞.
例子:
import jieba # 定義文本 content = "自然語言處理是人工智能和語言學(xué)領(lǐng)域的分支學(xué)科。此領(lǐng)域探討如何處理及運用自然語言;自然語言處理包括多方面和步驟,基本有認(rèn)知、理解、生成等部分。" # 搜索引擎模式 seg = jieba.cut_for_search(content) # 調(diào)試輸出 print([word for word in seg])
輸出結(jié)果:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache [('自然語言', 'l'), ('處理', 'v'), ('是', 'v'), ('人工智能', 'n'), ('和', 'c'), ('語言學(xué)', 'n'), ('領(lǐng)域', 'n'), ('的', 'uj'), ('分支', 'n'), ('學(xué)科', 'n'), ('。', 'x'), ('此', 'zg'), ('領(lǐng)域', 'n'), ('探討', 'v'), ('如何', 'r'), ('處理', 'v'), ('及', 'c'), ('運用', 'vn'), ('自然語言', 'l'), (';', 'x'), ('自然語言', 'l'), ('處理', 'v'), ('包括', 'v'), ('多方面', 'm'), ('和', 'c'), ('步驟', 'n'), (',', 'x'), ('基本', 'n'), ('有', 'v'), ('認(rèn)知', 'v'), ('、', 'x'), ('理解', 'v'), ('、', 'x'), ('生成', 'v'), ('等', 'u'), ('部分', 'n'), ('。', 'x')] Loading model cost 1.500 seconds. Prefix dict has been built successfully.
獲取詞性
通過 jieba.posseg 模式實現(xiàn)詞性標(biāo)注.
import jieba.posseg as psg # 定義文本 content = "自然語言處理是人工智能和語言學(xué)領(lǐng)域的分支學(xué)科。此領(lǐng)域探討如何處理及運用自然語言;自然語言處理包括多方面和步驟,基本有認(rèn)知、理解、生成等部分。" # 分詞 seg = psg.lcut(content) # 獲取詞性 part_of_speech = [(x.word, x.flag) for x in seg] # 調(diào)試輸出 print(part_of_speech)
輸出結(jié)果:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache [('自然語言', 'l'), ('處理', 'v'), ('是', 'v'), ('人工智能', 'n'), ('和', 'c'), ('語言學(xué)', 'n'), ('領(lǐng)域', 'n'), ('的', 'uj'), ('分支', 'n'), ('學(xué)科', 'n'), ('。', 'x'), ('此', 'zg'), ('領(lǐng)域', 'n'), ('探討', 'v'), ('如何', 'r'), ('處理', 'v'), ('及', 'c'), ('運用', 'vn'), ('自然語言', 'l'), (';', 'x'), ('自然語言', 'l'), ('處理', 'v'), ('包括', 'v'), ('多方面', 'm'), ('和', 'c'), ('步驟', 'n'), (',', 'x'), ('基本', 'n'), ('有', 'v'), ('認(rèn)知', 'v'), ('、', 'x'), ('理解', 'v'), ('、', 'x'), ('生成', 'v'), ('等', 'u'), ('部分', 'n'), ('。', 'x')] Loading model cost 1.500 seconds. Prefix dict has been built successfully.
以上就是Python機器學(xué)習(xí)NLP自然語言處理基本操作之精確分詞的詳細(xì)內(nèi)容,更多關(guān)于Python機器學(xué)習(xí)NLP自然語言處理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Pandas之to_sql()插入數(shù)據(jù)到mysql中所遇到的問題及解決
這篇文章主要介紹了Pandas之to_sql()插入數(shù)據(jù)到mysql中所遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Python之DataFrame輸出為csv\txt\xlsx文件問題
這篇文章主要介紹了Python之DataFrame輸出為csv\txt\xlsx文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08python使用matplotlib繪圖時圖例顯示問題的解決
matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地進(jìn)行制圖。下面這篇文章主要給大家介紹了在python使用matplotlib繪圖時圖例顯示問題的解決方法,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04