jieba,為中文分詞而生的Python庫
最好的Python中文分詞組件
“結巴”中文分詞:做最好的Python中文分詞組件
?
jieba的使用方法
Step1. 安裝jieba
pip?install?jieba
Step2. 調(diào)用jieba進行分詞
import?jieba
test_content?=?'迅雷不及掩耳盜鈴兒響叮當仁不讓世界充滿愛之勢'
cut_res?=?jieba.cut(test_content,?cut_all=True)
print(list(cut_res))
運行結果:
['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',?
'兒',?'響叮當',?'叮當',?'當仁不讓',?'不讓',?'世界',?'充滿',?'愛',
?'之',?'勢']
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))
[精確模式]:?['迅雷不及',?'掩耳盜鈴',?'兒響',?'叮',?'當仁不讓',?
'世界',?'充滿',?'愛之勢']
[精確模式]:?['迅雷不及',?'掩耳盜鈴',?'兒',?'響',?'叮',?'當仁不讓',
?'世界',?'充滿',?'愛',?'之',?'勢']
2.全模式
cut_res?=?jieba.cut(test_content,?cut_all=True)
print('[全模式]:',?list(cut_res))
[全模式]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',?
'兒',?'響叮當',?'叮當',?'當仁不讓',?'不讓',?'世界',?'充滿',?'愛',?'之',?'勢']
3.搜索引擎模式
cut_res?=?jieba.cut_for_search(test_content)
print('[搜索引擎模式]:',?list(cut_res))
[搜索引擎模式]:?['迅雷',?'不及',?'迅雷不及',?'掩耳',?'掩耳盜鈴',?'兒響',?
'叮',?'不讓',?'當仁不讓',?'世界',?'充滿',?'愛之勢']
4.paddle模式
5.小結
自定義分詞詞典
1.添加自定義詞語到詞典中
jieba.add_word('鈴兒響叮當')
jieba.add_word('讓世界充滿愛')
jieba.add_word('迅雷不及掩耳之勢')
lcut_res?=?jieba.lcut(test_content,?cut_all=True,?HMM=False)
print('[添加自定義詞語]:',?lcut_res)
[添加自定義詞語]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',
?'鈴兒響叮當',?'響叮當',?'叮當',?'當仁不讓',?'不讓',?'讓世界充滿愛',?'世界',?
?'充滿',?'愛',?'之',?'勢']
2.添加指定的文件作為分詞詞典
迅雷不及掩耳之勢?3?a
掩耳盜鈴?3?a
鈴兒響叮當?3?a
當仁不讓?3?a
讓世界充滿愛?3?n

jieba.load_userdict('mydict.txt')
lcut_res?=?jieba.lcut(test_content,?cut_all=True,?HMM=False)
print('[使用自定義詞典]:',?lcut_res)
[使用自定義詞典]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'不及',?'掩耳',?'掩耳盜鈴',?
'鈴兒響叮當',?'響叮當',?'叮當',?'當仁不讓',?'不讓',?'讓世界充滿愛',?'世界',?
'充滿',?'愛',?'之',?'勢']
3.從詞典中刪除詞語
jieba.del_word('不及')
jieba.del_word('不讓')
jieba.del_word('之')
lcut_res?=?jieba.lcut(test_content,?cut_all=True,?HMM=False)
print('[刪除詞語]:',?lcut_res)
[刪除詞語]:?['迅雷',?'迅雷不及',?'迅雷不及掩耳',?'掩耳',?'掩耳盜鈴',?'兒',?
'響叮當',?'叮當',?'當仁不讓',?'世界',?'充滿',?'愛',?'之',?'勢']
4.調(diào)整詞語的詞頻
lcut_res?=?jieba.lcut(test_content,?cut_all=False,?HMM=False)
print('[設置前]:',?lcut_res)
jieba.suggest_freq('讓世界充滿愛',?True)
lcut_res?=?jieba.lcut(test_content,?cut_all=False,?HMM=False)
print('[設置后]:',?lcut_res)
[設置前]:?['迅雷不及',?'掩耳盜鈴',?'兒',?'響',?'叮',?'當仁不讓',?'世界',?'充滿',?'愛',?'之',?'勢']
[設置后]:?['迅雷不及',?'掩耳盜鈴',?'兒',?'響叮當',?'仁',?'不',?'讓世界充滿愛',?'之',?'勢']
關鍵詞提取
1.基于TF-IDF算法的關鍵詞提取
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算法的關鍵詞提取
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]:?['充滿',?'兒響',?'世界']
詞性標注
from?jieba?import?posseg
pos_word?=?posseg.lcut(test_content)
print(pos_word)
[pair('迅雷不及',?'i'),?pair('掩耳盜鈴',?'i'),?pair('兒響',?'n'),
?pair('叮',?'v'),?pair('當仁不讓',?'i'),?pair('世界',?'n'),?
?pair('充滿',?'a'),?pair('愛',?'v'),?pair('之',?'u'),?pair('勢',?'ng')]
| 標簽 | 含義 | 標簽 | 含義 | 標簽 | 含義 | 標簽 | 含義 |
|---|---|---|---|---|---|---|---|
| n | 普通名詞 | f | 方位名詞 | s | 處所名詞 | t | 時間 |
| nr | 人名 | ns | 地名 | nt | 機構名 | nw | 作品名 |
| nz | 其他專名 | v | 普通動詞 | vd | 動副詞 | vn | 名動詞 |
| a | 形容詞 | ad | 副形詞 | an | 名形詞 | d | 副詞 |
| m | 數(shù)量詞 | q | 量詞 | r | 代詞 | p | 介詞 |
| c | 連詞 | u | 助詞 | xc | 其他虛詞 | w | 標點符號 |
| PER | 人名 | LOC | 地名 | ORG | 機構名 | TIME | 時間 |
返回詞語在原文的起止位置
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:當仁不讓??start:11??end:15
word:世界??? start:15??end:17
word:充滿??? start:17??end:19
word:愛之勢??? start:19??end:22
參考文檔:https://github.com/fxsjy/jieba
評論
圖片
表情
