詞性標註、關鍵詞提取、添加自定義詞典完整代碼示例- 台部落
文章推薦指數: 80 %
jieba 是目前最好的Python 中文分詞組件,它主要有以下3 種特性: 支持3 種分詞模式:精確模式、全模式、搜索引擎模式支持繁體分詞支持自定義詞典1 ...
請輸入正確的登錄賬號或密碼
註冊
忘記密碼
首頁
python自然語言處理
正文
python--jieba分詞、詞性標註、關鍵詞提取、添加自定義詞典完整代碼示例
原創
loveysuxin
2020-06-2504:34
jieba 是目前最好的Python中文分詞組件,它主要有以下3種特性:
支持3種分詞模式:精確模式、全模式、搜索引擎模式
支持繁體分詞
支持自定義詞典
1分詞
可使用jieba.cut和jieba.cut_for_search方法進行分詞,兩者所返回的結構都是一個可迭代的generator,可使用for循環來獲得分詞後得到的每一個詞語(unicode),或者直接使用jieba.lcut以及jieba.lcut_for_search直接返回list。
其中:
jieba.cut和jieba.lcut接受3個參數:
需要分詞的字符串(unicode或UTF-8字符串、GBK字符串)
cut_all參數:是否使用全模式,默認值爲False
HMM參數:用來控制是否使用HMM模型,默認值爲True
jieba.cut_for_search和jieba.lcut_for_search接受2個參數:
需要分詞的字符串(unicode或UTF-8字符串、GBK字符串)
HMM參數:用來控制是否使用HMM模型,默認值爲True
#儘量不要使用GBK字符串,可能無法預料地錯誤解碼成UTF-8
Jieba提供了三種分詞模式:
精確模式,試圖將句子最精確地切開,適合文本分析;
全模式,把句子中所有的可以成詞的詞語都掃描出來,速度非常快,但是不能解決歧義;
搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜索引擎分詞。
示例代碼如下:
importjieba
sent="他來到北京大學讀書。
"
seg_list1=jieba.cut(sent,cut_all=True)
print('全模式:','/'.join(seg_list1))
seg_list2=jieba.cut(sent,cut_all=False)
print('精確模式:','/'.join(seg_list2))
seg_list3=jieba.cut(sent)
print('默認精確模式:','/'.join(seg_list3))
seg_list4=jieba.cut_for_search(sent)
print('搜索引擎模式:','/'.join(seg_list4))
運行結果:
全模式:他/來到/北京/北京大學/大學/讀書//
精確模式:他/來到/北京大學/讀書/。
默認精確模式:他/來到/北京大學/讀書/。
搜索引擎模式:他/來到/北京/大學/北京大學/讀書/。
2、添加用戶自定義詞典
開發者可以指定自定義詞典,以便包含jieba詞庫裏沒有的詞,詞典格式如下:
詞語詞頻(可省略)詞性(可省略)
例如:
創新辦3i
雲計算5
瑟琳娜nz
使用 jieba.load_userdict(file_name) 即可載入詞典。
file_name 爲文件類對象或自定義詞典的路徑
示例代碼如下:
importjieba
'''功能:添加用戶自定義詞典'''
sent="周大福是創新辦主任也是雲計算方面的專家"
seg_list=jieba.cut(sent,cut_all=False)
print('未添加用戶詞典:','/'.join(seg_list))
#加載用戶自定義詞典
jieba.load_userdict("userDic.txt")
seg_list=jieba.cut(sent,cut_all=False)
print('添加用戶詞典:','/'.join(seg_list))
運行結果:
未添加用戶詞典:周大福/是/創新/辦/主任/也/是/雲/計算/方面/的/專家
添加用戶詞典:周大福/是/創新辦/主任/也/是/雲計算/方面/的/專家
3、關鍵詞提取
jieba提供了兩種關鍵詞提取方法,分別基於TF-IDF算法和TextRank算法。
通過jieba.analyse.extract_tags方法可以基於TF-IDF算法進行關鍵詞提取,該方法共有4個參數:
sentence:爲待提取的文本
topK:爲返回幾個TF/IDF權重最大的關鍵詞,默認值爲20
withWeight:是否一併返回關鍵詞權重值,默認值爲False
allowPOS:僅包括指定詞性的詞,默認值爲空
通過jieba.analyse.textrank方法可以使用基於TextRank算法的關鍵詞提取,其與'jieba.analyse.extract_tags'有一樣的參數,但前者默認過濾詞性(allowPOS=('ns','n','vn','v'))。
代碼示例如下:
importjieba.analyseasanls#關鍵詞提取
'''功能:提取關鍵詞'''
sent=open("all.txt",'r',encoding='UTF-8').read()
#基於tf-idf提取關鍵詞
print("基於TF-IDF提取關鍵詞結果:")
forx,winanls.extract_tags(sent,topK=20,withWeight=True):
print('%s%s'%(x,w))
#基於textrank提取關鍵詞
print("基於textrank提取關鍵詞結果:")
forx,winanls.textrank(sent,withWeight=True):
print('%s%s'%(x,w))
運行結果:
基於TF-IDF提取關鍵詞結果:
故宮0.2926176361335443
北京故宮0.264979505
20190.22698925638417722
外朝0.1513261709227848
20180.1513261709227848
中心0.12202795792556963
古建築0.11424658644012657
大殿0.10322119571443038
紫禁城0.09920117016822785
永樂0.09911316359455696
統稱0.0955449146286076
宮殿0.09541328542329114
萬平方米0.0929427829007595
列爲0.09066487540987342
九千餘0.08797897248101266
世界0.08292777352348102
和內廷0.07779265657911393
720.0756630854613924
150.0756630854613924
14060.0756630854613924
基於textrank提取關鍵詞結果:
故宮1.0
中心0.9908920177809065
世界0.5734006593111067
大殿0.5521326736013975
北京故宮0.5316046737608524
英國0.4986608115801715
國家0.48905863236581826
修繕0.457942099649872
中國0.4571298768895292
列爲0.4563189310093983
建築0.4465371080385551
南京0.4374665601969024
外朝0.43039726183147553
統稱0.42592844268023056
工作0.38930993246593065
保護0.38300696880781676
保存0.37770077979626976
皇后0.3717748063436477
美國白宮0.37027900907588707
居住0.36903003334388784
4、詞性標註
importjieba.possegaspseg#詞性標註
sent="他在北京大學讀書"
words=pseg.cut(sent)
forword,flaginwords:
print("{0}{1}".format(word,flag))
運行結果:
他r
Prefixdicthasbeenbuiltsuccesfully.
在p
北京大學nt
讀書n
Python自然語言處理
發表評論
登录
所有評論
還沒有人評論,想成為第一個評論的人麼?請在上方評論欄輸入並且點擊發布.
相關文章
python生成詞雲--完整代碼示例
工作之餘,寫個python生成詞雲來玩玩~~~
運行環境:pycharm,需要引入wordcloud包,中文分詞需要用到jieba
隨便找了一篇介紹“故宮的文章”,以該文章爲例生成詞雲。
fromwordcloudimportWo
loveysuxin
2020-06-2504:34:46
01_百度智能雲圖像識別API調用
lsqzedu
2020-03-0222:28:20
02_ITBoy,你的年終總結缺張圖
lsqzedu
2020-03-0222:28:20
python--對文本分詞去停用詞提取關鍵詞並詞雲展示完整代碼示例
loveysuxin
2020-02-2023:45:20
python--統計詞頻Counter
loveysuxin
2020-02-2023:45:20
提取關鍵詞--tf-idf算法講解
loveysuxin
2020-02-2023:45:20
python生成詞雲--完整代碼示例
工作之餘,寫個python生成詞雲來玩玩~~~
運行環境:pycharm,需要引入wordcloud包,中文分詞需要用到jieba
隨便找了一篇介紹“故宮的文章”,以該文章爲例生成詞雲。
fromwordcloudimportWo
loveysuxin
2020-06-2504:34:46
困惑度(perplexity)的基本概念及比較多種模型下的計算(N-gram,主題模型/LDA,神經網絡/RNN)
發現網絡上流傳的關於困惑度(perplexity)大多數都是利用了N-gram或者主題模型的例子來闡述的。
但是現在這個年代來學習這個指標的人多半都是想研究神經網絡的,而兩者的對困惑度的計算方法又很不同,這就不能不讓人對“困惑度”感
blmoistawinde
2020-06-1713:21:03
01_百度智能雲圖像識別API調用
lsqzedu
2020-03-0222:28:20
02_ITBoy,你的年終總結缺張圖
lsqzedu
2020-03-0222:28:20
Python正則表達式清洗微博文本特殊符號(網址,@,表情符等)
blmoistawinde
2020-02-2502:44:41
用HarvestText自動識別實體及人物別名,用於實體鏈接分析
blmoistawinde
2020-02-2502:44:41
python--對文本分詞去停用詞提取關鍵詞並詞雲展示完整代碼示例
loveysuxin
2020-02-2023:45:20
python--統計詞頻Counter
loveysuxin
2020-02-2023:45:20
提取關鍵詞--tf-idf算法講解
loveysuxin
2020-02-2023:45:20
L
loveysuxin
24小時熱門文章
瀨043821#學生妹#模特#OL#清純#美腿#高挑#粉紅色奶頭#吞精#粉色嫩穴#奶泡#69#顏射#老漢推車
waerdesfdsfdsf
最新文章
18、python讀文件--read()、read(size)、readline()、readlines()
21、python面向對象編程---訪問權限(私有變量)
爬蟲下來的網頁中文亂碼解決
4、mybatis使用動態帶代理實現增刪改查CRUD
xshell---vi操作命令
最新評論文章
一些冷門卻很美的英文單詞,聽過3個以上算我輸
瀨043821#學生妹#模特#OL#清純#美腿#高挑#粉紅色奶頭#吞精#粉色嫩穴#奶泡#69#顏射#老漢推車
#小糖心賴XD12377或加9008688台中情趣試穿麻豆大奶騷貨皮白悶騷型床上很主動耐操配合度高
#高雄外約清純學生妹瀨043821小羽156cmB杯.21歲#鄉下女孩清秀單純嬌小玲瓏調皮可愛
台中東海學生妹校花兼職瀨043821嬌小可愛#甜心#軟萌蘿莉 小小少女一枚乖巧的寶貝#無刺青可愛喜歡撒嬌賣萌
台灣本土吃魚喝茶加小番茄賴fb852喝茶覓小姐羅莉學生咩高雄妹技?平价好喝碗電報:sm20290大台北嫖娼林口龜山淫淫正妹思春看照選妹頻
台北/板橋/學/生/賴fb852台中上/門/服/務/高雄小/模/高/檔/茶
台灣本土吃魚喝茶加小番茄賴fb852喝茶覓小姐羅莉學生咩高雄妹技?平价好喝碗電報:sm20290大台北嫖娼林口龜山淫淫正妹思春看照選妹頻道: t.me/linesm20290
台北/板橋/學/生/賴fb852台中上/門/服/務/高雄小/模/高/檔/茶
加賴ok5320抱著抽插嗎小隻馬69舌吻女上位插穴射出口爆
延伸文章資訊
- 1Jieba中文分词(一) ——分词与自定义字典 - 腾讯云
Jieba中文分词(一) ——分词与自定义字典 ... 初始化时,先加载词典文件dict.txt,遍历每一行,生成词语-词数的键值对和总词数,并将生成结果保存 ...
- 2jieba分詞、自定義詞典提取高頻詞、詞性標註及獲取詞的位置
支援自定義詞典. 演算法. 基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG); 採用了動態規劃查詢最大概率 ...
- 3Python - 知名Jieba 中文斷詞工具教學
所以,有時候你會發現你如果只打一個關鍵字,機器人還是回你同樣的話,通常就是這樣設計的。 而除了自定義詞典,也可以在程式碼中動態加入自定義的詞,來 ...
- 4Jieba 中文分詞-一- ——分詞與自定義字典 - 閱坊
Jieba 中文分詞-一- ——分詞與自定義字典. jieba 分詞特點. 支持四種分詞模式:. 精確模式試圖將句子最精確地切開,適合文本分析;.
- 5詞性標註、關鍵詞提取、添加自定義詞典完整代碼示例- 台部落
jieba 是目前最好的Python 中文分詞組件,它主要有以下3 種特性: 支持3 種分詞模式:精確模式、全模式、搜索引擎模式支持繁體分詞支持自定義詞典1 ...