jieba基本使用过程
jieba分詞
- 0 引言
- 1 jieba庫安裝
- 2 jieba庫文件查看
- 3 基本使用
- 4 詞性標注
- 5 自定義詞典和加載自定義詞語
- 6 關鍵詞提取與位置查找
0 引言
今天起正式開始對于文本挖掘相關知識的學習,之前都是東學一點,西學一點,沒有一個體系,希望接下來可以好好把這方面的知識梳理一下,方便學以致用。今天梳理知識點就是jieba分詞,采用逐步梳理的方式進行
python環境使用的是miniconda里面的jupyter notebook
1 jieba庫安裝
關于jieba這個庫的介紹,就不多說了,主要就是和分詞聯系在一塊,所以叫多了就把結巴分詞當成一個詞語了,首先就是使用前安裝,為了安裝方便,可以直接在jupyter notebook里面進行,安裝代碼:!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba,安裝完成示意圖
2 jieba庫文件查看
安裝好之后,認識一下這個jieba庫,首先導入jieba,查看一下這個庫的文件位置
主要是為了查看jieba庫中的dict.txt文件夾,這個就是分詞的依據,關于文件中數據的介紹,第一個就是詞匯,第二個代表詞頻,第三個是詞性,每一行都是由三個數據組成
3 基本使用
比如最常用的一個示例,就是對“我喜歡上海東方明珠”進行分詞,分詞類型有三種,如下
- 全模式cut_all = True
- 精準模式cut_all = False
- 搜索引擎模式lcut_for_search
關于cut()/lcut()方法,直接先拿示例操作一下,看看結果輸出是什么,代碼如下。其中cut之后是一個生成器對象,如果要使用的話需要進行遍歷迭代,比如這里直接讓生成器中的數據全部輸出至列表中;而lcut就是直接將分詞后的內容以列表的形式返回。為了展示方便,后續都是使用lcut進行代碼操作
看一下三種模式下的分詞結果,搜索引擎模式是在精準模式上的細分
需要留意一下到底是在使用cut()方法還是在lcut()方法,兩者只有一個字符之差
4 詞性標注
在上面查看jieba文件夾時,除了很重要的dict.txt文件外還有一些文件夾,這些文件夾都是有著對應的功能,比如要進行詞性標注,就使用到了posseg文件夾,使用方式如下
其中第一個是詞匯,第二個就是詞性,再進行一個簡單的示例,可以發現存在著不同的詞性
不必要全部記作所有的詞性及其對應的標志字符,但是常用的一些詞性標志及其對應的字符還是要牢記于心的,整理如下
5 自定義詞典和加載自定義詞語
上面列舉的示例,貌似都沒有問題,符合正常的輸出,那么實際情況下,比如對于自己學校來說,對“‘上海海事大學是一個以航運、物流、海洋為特色的安全管理高校’”句子進行分詞,可以發現對于“上海海事大學”和“安全管理”兩個詞語沒有正確的切分開
是不是使用精準模式就不保留長長的一串的詞匯呢?那試一試基于精準模式下的搜索模式,輸出如何。結果表明,這兩種方式都沒有辦法滿足我的要求,測試全模式下的切分也沒有辦法滿足,這時候就出現問題了,需要對現在的這種狀況進行解決
解決問題的方式就回歸到最初提到的那個dict.txt文件上了,由于jieba是按照這個詞庫進行分詞的,如果默認的分詞不能滿足自己的需要,就需要我們手動進行指定相應的詞庫,比如在dict.txt文件夾下創建一個dict1.txt文件,用來放置我們要加載的詞語,如下
然后將詞庫加載到程序中,代碼如下:jieba.load_userdict(文件路徑+文件名),執行結果后可以發現,定義的第一個詞匯可以正常的進行分詞,但是第二個詞匯安全管理還是被當做了兩個詞
由于分詞是按照詞頻進行的,這時候就需要改一下自己加入的詞語的詞頻,更改的依據就是查看對應的詞匯的頻率,比如安全、管理這兩個詞匯的頻率,都是屬于高頻的詞匯
這里嘗試把安全管理詞匯的重要性提高,比如詞頻改為100試一下,結果可以完美輸出了,所以針對于自己專業的詞語,指定相應的字典進行分詞。
★★★注意:這種方式操作不會影響原來的分詞依據,也就是說這次程序加載的自定義字典只會在這次運行中有效,不會影響下次操作,除非修改的是自帶的dict.txt文件
如果是加載的詞語量比較少的情況下,可以不創建文件,直接通過代碼來操作。代碼指令:jieba.add_word(一個詞匯) Add a word to dictionary. 如果要添加多個詞可以遍歷循環一下。比如下面對于云計算操作,這里的添加和上面的一樣都是只對運行的本次程序有效,不影響下次執行
或者使用jieba.suggest_freq(詞匯,tune = True),注意里面的tune參數
6 關鍵詞提取與位置查找
關鍵詞提取需要用到jieba模塊下面的analyse文件夾,步驟如下,先指定好加載詞,然后使用jieba.analyse.extract_tags(demo,5)進行關鍵詞提取,如果不指定參數會默認提取前20個,也可以人工指定
對關鍵詞的位置進行查找,可以使用jieba.tokenize(),里面有個mode參數,如果指定為search就是為搜索引擎模式,默認的就是精準匹配的方式
總結
以上是生活随笔為你收集整理的jieba基本使用过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 35岁前把下面十件事做好
- 下一篇: 砂 即懒且忙 只有随笔