一個(gè)Python里最好的分詞庫!
中文分詞,通俗來說,就是將一句(段)話按一定的規(guī)則(算法)拆分成詞語、成語、單個(gè)文字。最好的Python中文分詞組件
“結(jié)巴”中文分詞:做最好的Python中文分詞組件
?
jieba的使用方法
Step1. 安裝jieba
pip?install?jieba
Step2. 調(diào)用jieba進(jìn)行分詞
import?jieba
test_content?=?'迅雷不及掩耳盜鈴兒響叮當(dāng)仁不讓世界充滿愛之勢'
cut_res?=?jieba.cut(test_content,?cut_all=True)
print(list(cut_res))
運(yùn)行結(jié)果:
['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',?
'兒',?'響叮當(dāng)',?'叮當(dāng)',?'當(dāng)仁不讓',?'不讓',?'世界',?'充滿',?'愛',
?'之',?'勢']
jieba分詞的四種模式
jieba分詞支持四種分詞模式:
1.精確模式
cut_res?=?jieba.cut(test_content,?cut_all=False)
print('[精確模式]:',?list(cut_res))
cut_res?=?jieba.cut(test_content,?cut_all=False,?HMM=False)
print('[精確模式]:',?list(cut_res))
[精確模式]:?['迅雷不及',?'掩耳盜鈴',?'兒響',?'叮',?'當(dāng)仁不讓',?
'世界',?'充滿',?'愛之勢']
[精確模式]:?['迅雷不及',?'掩耳盜鈴',?'兒',?'響',?'叮',?'當(dāng)仁不讓',
?'世界',?'充滿',?'愛',?'之',?'勢']
2.全模式
cut_res?=?jieba.cut(test_content,?cut_all=True)
print('[全模式]:',?list(cut_res))
[全模式]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',?
'兒',?'響叮當(dāng)',?'叮當(dāng)',?'當(dāng)仁不讓',?'不讓',?'世界',?'充滿',?'愛',?'之',?'勢']
3.搜索引擎模式
cut_res?=?jieba.cut_for_search(test_content)
print('[搜索引擎模式]:',?list(cut_res))
[搜索引擎模式]:?['迅雷',?'不及',?'迅雷不及',?'掩耳',?'掩耳盜鈴',?'兒響',?
'叮',?'不讓',?'當(dāng)仁不讓',?'世界',?'充滿',?'愛之勢']
4.paddle模式
5.小結(jié)
自定義分詞詞典
1.添加自定義詞語到詞典中
jieba.add_word('鈴兒響叮當(dāng)')
jieba.add_word('讓世界充滿愛')
jieba.add_word('迅雷不及掩耳之勢')
lcut_res?=?jieba.lcut(test_content,?cut_all=True,?HMM=False)
print('[添加自定義詞語]:',?lcut_res)
[添加自定義詞語]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',
?'鈴兒響叮當(dāng)',?'響叮當(dāng)',?'叮當(dāng)',?'當(dāng)仁不讓',?'不讓',?'讓世界充滿愛',?'世界',?
?'充滿',?'愛',?'之',?'勢']
2.添加指定的文件作為分詞詞典
迅雷不及掩耳之勢?3?a
掩耳盜鈴?3?a
鈴兒響叮當(dāng)?3?a
當(dāng)仁不讓?3?a
讓世界充滿愛?3?n

jieba.load_userdict('mydict.txt')
lcut_res?=?jieba.lcut(test_content,?cut_all=True,?HMM=False)
print('[使用自定義詞典]:',?lcut_res)
[使用自定義詞典]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',?
'鈴兒響叮當(dāng)',?'響叮當(dāng)',?'叮當(dāng)',?'當(dāng)仁不讓',?'不讓',?'讓世界充滿愛',?'世界',?
'充滿',?'愛',?'之',?'勢']
3.從詞典中刪除詞語
jieba.del_word('不及')
jieba.del_word('不讓')
jieba.del_word('之')
lcut_res?=?jieba.lcut(test_content,?cut_all=True,?HMM=False)
print('[刪除詞語]:',?lcut_res)
[刪除詞語]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'掩耳',?'掩耳盜鈴',?'兒',?
'響叮當(dāng)',?'叮當(dāng)',?'當(dāng)仁不讓',?'世界',?'充滿',?'愛',?'之',?'勢']
4.調(diào)整詞語的詞頻
lcut_res?=?jieba.lcut(test_content,?cut_all=False,?HMM=False)
print('[設(shè)置前]:',?lcut_res)
jieba.suggest_freq('讓世界充滿愛',?True)
lcut_res?=?jieba.lcut(test_content,?cut_all=False,?HMM=False)
print('[設(shè)置后]:',?lcut_res)
[設(shè)置前]:?['迅雷不及',?'掩耳盜鈴',?'兒',?'響',?'叮',?'當(dāng)仁不讓',?'世界',?'充滿',?'愛',?'之',?'勢']
[設(shè)置后]:?['迅雷不及',?'掩耳盜鈴',?'兒',?'響叮當(dāng)',?'仁',?'不',?'讓世界充滿愛',?'之',?'勢']
關(guān)鍵詞提取
1.基于TF-IDF算法的關(guān)鍵詞提取
from?jieba?import?analyse
key_word?=?analyse.extract_tags(test_content,?topK=3)
print('[key_word]:',?list(key_word))
key_word?=?analyse.extract_tags(test_content,?topK=3,?withWeight=True)
print('[key_word]:',?list(key_word))
[key_word]:?['迅雷不及',?'兒響',?'愛之勢']
[key_word]:?[('迅雷不及',?1.7078239289857142),?('兒響',?1.7078239289857142),?('愛之勢',?1.7078239289857142)]
2.基于TextRank算法的關(guān)鍵詞提取
key_word?=?analyse.textrank(test_content,?topK=3)
print('[key_word]:',?list(key_word))
allow?=?['ns',?'n',?'vn',?'v',?'a',?'m',?'c']
key_word?=?analyse.textrank(test_content,?topK=3,?allowPOS=allow)
print('[key_word]:',?list(key_word))
[key_word]:?['兒響',?'世界']
Prefix?dict?has?been?built?successfully.
[key_word]:?['充滿',?'兒響',?'世界']
詞性標(biāo)注
from?jieba?import?posseg
pos_word?=?posseg.lcut(test_content)
print(pos_word)
[pair('迅雷不及',?'i'),?pair('掩耳盜鈴',?'i'),?pair('兒響',?'n'),
?pair('叮',?'v'),?pair('當(dāng)仁不讓',?'i'),?pair('世界',?'n'),?
?pair('充滿',?'a'),?pair('愛',?'v'),?pair('之',?'u'),?pair('勢',?'ng')]
| 標(biāo)簽 | 含義 | 標(biāo)簽 | 含義 | 標(biāo)簽 | 含義 | 標(biāo)簽 | 含義 |
|---|---|---|---|---|---|---|---|
| n | 普通名詞 | f | 方位名詞 | s | 處所名詞 | t | 時(shí)間 |
| nr | 人名 | ns | 地名 | nt | 機(jī)構(gòu)名 | nw | 作品名 |
| nz | 其他專名 | v | 普通動(dòng)詞 | vd | 動(dòng)副詞 | vn | 名動(dòng)詞 |
| a | 形容詞 | ad | 副形詞 | an | 名形詞 | d | 副詞 |
| m | 數(shù)量詞 | q | 量詞 | r | 代詞 | p | 介詞 |
| c | 連詞 | u | 助詞 | xc | 其他虛詞 | w | 標(biāo)點(diǎn)符號(hào) |
| PER | 人名 | LOC | 地名 | ORG | 機(jī)構(gòu)名 | TIME | 時(shí)間 |
返回詞語在原文的起止位置
res?=?jieba.tokenize(test_content)
for?r?in?res:
????if?len(r[0])?>?3:
????????print('word:{}\t?start:{}\t?end:{}'.format(*r))
????elif?len(r[0])?>?1:
????????print('word:{}\t\t?start:{}\t?end:{}'.format(*r))
????else:
????????print('word:{}\t\t\t?start:{}\t?end:{}'.format(*r))
word:迅雷不及??start:0?? end:4
word:掩耳盜鈴??start:4?? end:8
word:兒響??? start:8?? end:10
word:叮???? start:10??end:11
word:當(dāng)仁不讓??start:11??end:15
word:世界??? start:15??end:17
word:充滿??? start:17??end:19
word:愛之勢??? start:19??end:22
參考文檔:https://github.com/fxsjy/jieba
推薦閱讀:
入門:?最全的零基礎(chǔ)學(xué)Python的問題? |?零基礎(chǔ)學(xué)了8個(gè)月的Python??|?實(shí)戰(zhàn)項(xiàng)目?|學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評(píng),電影《后來的我們》?|?38年NBA最佳球員分析?|? ?從萬眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個(gè)海量小姐姐素描圖?|碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會(huì)做詩的機(jī)器人?|?給圖片上色?|?預(yù)測收入?|?碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水印!?|?一鍵把html網(wǎng)頁保存為pdf!|??再見PDF提取收費(fèi)!?|?用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r(jià)機(jī)票提示器!?|60行代碼做了一個(gè)語音壁紙切換器天天看小姐姐!|
年度爆款文案
點(diǎn)閱讀原文,看B站我的視頻!

