支援繁體分詞
支援自定義詞典
mit 授權協議
**對 python 2/3 均相容
試圖將句子最精確地切開,適合文字分析
import jiebadef main():
s = u'我在人民廣場吃著炸雞'
cut = jieba.cut(s)
print type(cut)
for word in cut:
print word
if __name__ == '__main__':
main()
輸出:#可見分詞結果是乙個生成器我在
人民廣場吃著
炸雞
把句子中所有的可以成詞的詞語都掃瞄出來, 速度非常快,但是不能解決歧義
import jiebadef main():
s = u'我在人民廣場吃著炸雞'
cut = jieba.cut(s, cut_all=true)
print type(cut)
for word in cut:
print word
if __name__ == '__main__':
main()
輸出:我在人民
人民廣場廣場吃
著炸雞
在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
import jiebadef main():
s = u'我在人民廣場吃著炸雞'
cut = jieba.cut_for_search(s)
print type(cut)
for word in cut:
print word
if __name__ == '__main__':
main()
輸出:我在人民
廣場人民廣場吃著
炸雞
import jieba.posseg as psgdef main():
s = u'我在人民廣場吃著炸雞'
cut = psg.cut(s)
print type(cut)
for word_op in cut:
print word_op.word, type(word_op.word), word_op.flag, type(word_op.flag)
if __name__ == '__main__':
main()
輸出:我 r 在 p 人民廣場 n 吃 v 著 uz 炸雞 n
可以根據詞性篩選:
import jieba.posseg as psgdef main():
s = u'我在人民廣場吃著炸雞'
cut = psg.cut(s)
print type(cut)
for word_op in cut:
if word_op.flag == 'n':
print word_op.word
if __name__ == '__main__':
main()
輸出:人民廣場
炸雞
在文字資料量非常大的時候,為了提高分詞效率,開啟並行分詞就很有必要了。jieba支援並行分詞,基於python自帶的multiprocessing模組,但要注意的是在windows環境下不支援。
用法:注意:並行分詞僅支援預設分詞器jieba.dt
和jieba.posseg.dt
。
import jieba.analyse
載入詞典
詞典示例:
雲計算 5李小福 2 nr
創新辦 3 i
easy_install 3 eng
好用 300
韓玉賞鑑 3 nz
八一雙鹿 3 nz
臺中凱特琳 nz
edu trust認證 2000
調整詞典
ag形語素
形容詞性語素。形容詞**為 a,語素**g前面置以a。
a形容詞
取英語形容詞 adjective的第1個字母。
ad副形詞
直接作狀語的形容詞。形容詞** a和副詞**d並在一起。
an名形詞
具有名詞功能的形容詞。形容詞** a和名詞**n並在一起。
b區別詞
取漢字「別」的聲母。c連詞
取英語連詞 conjunction的第1個字母。
dg副語素
副詞性語素。副詞**為 d,語素**g前面置以d。d副詞
取 adverb的第2個字母,因其第1個字母已用於形容詞。e嘆詞
取英語嘆詞 exclamation的第1個字母。
f方位詞
取漢字「方」g語素
絕大多數語素都能作為合成詞的「詞根」,取漢字「根」的聲母。
h前接成分
取英語 head的第1個字母。i成語
取英語成語 idiom的第1個字母。
j簡稱略語
取漢字「簡」的聲母。
k後接成分
l習用語
習用語尚未成為成語,有點「臨時性」,取「臨」的聲母。m數詞
取英語 numeral的第3個字母,n,u已有他用。
ng名語素
名詞性語素。名詞**為 n,語素**g前面置以n。n名詞
取英語名詞 noun的第1個字母。
nr人名
名詞** n和「人(ren)」的聲母並在一起。
ns地名
名詞** n和處所詞**s並在一起。
nt機構團體
「團」的聲母為 t,名詞**n和t並在一起。
nz其他專名
「專」的聲母的第 1個字母為z,名詞**n和z並在一起。
o擬聲詞
取英語擬聲詞 onomatopoeia的第1個字母。p介詞
取英語介詞 prepositional的第1個字母。q量詞
取英語 quantity的第1個字母。r代詞
取英語代詞 pronoun的第2個字母,因p已用於介詞。
s處所詞
取英語 space的第1個字母。
tg時語素
時間詞性語素。時間詞**為 t,在語素的**g前面置以t。
t時間詞
取英語 time的第1個字母。u助詞
取英語助詞 auxiliary
vg動語素
動詞性語素。動詞**為 v。在語素的**g前面置以v。v動詞
取英語動詞 verb的第乙個字母。
vd副動詞
直接作狀語的動詞。動詞和副詞的**並在一起。
vn名動詞
指具有名詞功能的動詞。動詞和名詞的**並在一起。
w標點符號
x非語素字
非語素字只是乙個符號,字母 x通常用於代表未知數、符號。
y語氣詞
取漢字「語」的聲母。
z狀態詞
取漢字「狀」的聲母的前乙個字母。
un未知詞
不可識別詞及使用者自定義詞組。取英文unkonwn首兩個字母。(非北大標準,csw分詞中定義)
中文分詞工具 Jieba
jieba分詞值基於規則和統計這兩類方法。其首先基於字首詞典進行詞圖掃瞄,字首詞典是指詞典中的詞按照字首的包含順序排列的,從而形成一種層級包含結構。這種字首詞典的好處便是可以快速構建包含全部可能分詞結果的有向無環圖,這個圖包含多條分詞路徑,無環是指節點間不構成閉環。然後基於標註語料,使用動態規劃演算...
python 中文jieba分詞
import os import jieba from collections import counter def words txt print jieba.cut txt lista jieba.cut txt 返回的結構都是乙個可迭代的 generator,可以使用 for 迴圈來獲得分詞後...
中文分詞jieba學習筆記
四 詞性標註 五 並行分詞 六 返回詞語在原文的起止位置 注意 hmm模型 隱馬爾可夫模型 可以識別新詞 jieba.load userdict filename filename為自定義詞典的路徑 在使用的時候,詞典的格式和jieba分詞器本身的分詞器中的詞典格式必須保持一致,乙個詞佔一行,每一行...