自然語言NLP必備(1),jieba工具 5 行代碼對整篇文章分詞

自然語言是什麼?下面來看看百度百科的介紹:

自然語言處理是計算機科學領域與人工智能領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。

自然語言有什麼作用?

廣泛的應用在機器(文字/語言/圖片)翻譯,情感分析、信息檢索等領域。

下面介紹中文分詞工具 jieba 的安裝和使用,旨在讓讀者快速入門 jieba,快速掌握中文分詞的方法。

1、安裝

pip install jieba

2、重要分詞函數

常規模式

jieba.cut(sentence, cut_all=False, HMM=True)

sentence: 需要分詞的字符串; 
cut_all: 參數用來控制是否採用全模式;
HMM: 參數用來控制是否適用HMM模型

搜索模式

jieba.cut_for_search(sentence, HMM=True)

 sentence:需要分詞的字符串;
 HMM: 是否使用 HMM 模型,適用於搜索引擎構建倒排索引的分詞,粒度比較細。

分詞器

jieba.Tokenizer(dictionary=DEFUALT_DICT)

新建自定義分詞器,可用於同時使用不同字典,jieba.dt為默認分詞器,所有全局分詞相關函數都是該分詞器的映射。

​返回的形式

◇jieba.cut 以及 jieba.cut_for_search 返回的結構都是可以得到的 generator (生成器), 
 可以使用 for 循環來獲取分詞後得到的每一個詞語或者使用
​jieb.lcut() 以及 jieba.lcut_for_search() 直接返回list

注意事項

◇待分詞的字符串可以是unicode或者UTF-8字符串,GBK字符串。
注意不建議直接輸入GBK字符串,可能無法預料的誤解碼成UTF-8,

3、三種分詞模式

jieba分詞支持三種分詞模式:
​
★精確模式, 試圖將句子最精確地切開,適合文本分析:
​
★全模式,把句子中所有的可以成詞的詞語都掃描出來,速度非常快,
 但是不能解決歧義;
​
★搜索引擎模式,在精確模式的基礎上,對長詞再詞切分,提高召回率,
 適合用於搜索引擎分詞。
​
 

4、具體實例

注意在展示分詞數據時,join 要表示成 '【區域1】' . join(【區域2】)的形式,其中區域 1 主要是自定義分詞符,而區域 2 是分詞後的數據

全模式分詞

import jieba
data = jieba.cut('人生苦短,我學python',cut_all=True) 
print('Out:' + '/'.join(data))

Out:人生/苦短///我/學/python

精確模式

import jieba
​data = jieba.cut('人生苦短,我學python',cut_all=False) 
print('Out:' + '/'.join(data))

Out:人生/苦短/,/我學/python

搜索引擎模式

import jieba
data = jieba.cut_for_search('人生苦短,我學python,讓我們一起學習python吧') 
print('Out:' + ','.join(data))

Out:人生,苦短,,,我學,python,,,讓,我們,一起,學習,python,吧

5、整篇文章進行分詞

5 行代碼實現任意中文文章分詞

下面將小編以往的文章保存成 mydata.txt 記事本文件,然後通過 jieba 模塊進行分詞(提示:也可以直接利用爬蟲模塊 requests 直接把網頁數據下載用於分詞)

python網絡爬蟲學習路線的最全總結,理清思路才能高效學好爬蟲

代碼如下:

''' 傳入中文文檔進行分詞 '''
import jieba
# 打開自己想要分詞的文本文件,打開模式為 'rb' 二進制讀取
fp = open('../data/mydata.txt','rb')
strData = fp.read()
data = jieba.cut(strData, cut_all=False)
print('/ '.join(data))

程序運行部分結果如下:

大家/ 都/ 知道/ ,/ 學習/ 一門/ 學科/ 的/ 時候/ 是/ 要/ 清楚/ 它/ 的/ 知識/ 框架/ 才能/ 清晰/ 的/ 學習/ 、/ 有/ 系統/ 的/ 學習/ ,/ 下面/ 來列/ 一列/ python/ 網絡/ 爬蟲/ 的/ 知識/ 框架/ 來/ 幫助/ 大家/ 能夠/ 有效/ 的/ 學習/ 和/ 掌握/ ,/ 避免/ 不必要/ 的/ 坑/ 。/ 
/ 
/ python/ 網絡/ 爬蟲/ 總的來說/ 有/ 五個/ 大/ 的/ 方面/ :/ 
/ 前端/ 知識/ —/ —/ 基礎/ 爬蟲/ —/ —/ 框架/ 爬蟲/ —/ —/ 分佈式/ 爬蟲/ —/ —/ 突破/ 反/ 爬蟲/ 
/ 
/ 1/ ./ 前端/ 知識/ :/ 
/ “/ 網絡/ 爬蟲/ ”/ 很/ 明顯/ 對象/ 是/ 網絡/ ,/ 也/ 就是/ 網頁/ 。/ 說/ 到/ 網頁/ ,/ 這裡/ 就/ 涉及/ 到/ 了/ 前端/ 的/ 知識/ 了/ ,/ 不過/ 大家/ 也/ 不要/ 慌/ ,/ 只要/ 懂點/ 必要/ 的/ HTML5/ 框架/ 、/ 網頁/ 的/ http/ 請求/ 、/ 還有/ JavaScript/ 、/ css3/ 的/ 知識/ 就/ 可以/ 了/ ,/ 以/ 這樣/ 的/ 水平/ 也/ 是/ 可以/ 學會/ 爬蟲/ 的/ 啦/ 。/ 當然/ ,/ 如果/ 要/ 非常/ 精通/ python/ 網絡/ 爬蟲/ 的話/ ,/ 深入/ 學習/ 前端/ 知識/ 是/ 必要/ 的/ 。/ 
自然語言NLP必備(1),jieba工具 5 行代碼對整篇文章分詞

明天將介紹如何提取關鍵詞,怎樣才知道那些詞語出現的頻率更高的問題

End--------------

喜歡的讀者朋友可以點贊和關注小編呀,更多精彩內容等著你.......

往期文章推薦如下:

機器學習必備知識(1),線性迴歸官方參數和用法介紹

機器學習必備知識(2),嶺迴歸模型參數和用法介紹

數據分析必備知識(2),Matplotlib繪圖必備知識大總結(上篇)

python必備知識(1),打包為exe文件封裝成可導入模塊

python列表操作,助你快速掌握列表常用的操作


分享到:


相關文章: