1. 程式人生 > >jieba分詞器學習

jieba分詞器學習

如有侵權,一定刪除。

結巴分詞分為三種模式:精確模式(預設)、全模式和搜尋引擎模式。

精確模式:

import jieba
s = '武漢大學是一所還不錯的大學'
result = jieba.cut(s)
print(','.join(result))

輸出:

武漢大學,是,一所,還,不錯,的,大學 Prefix dict has been built succesfully.

精確模式分詞結果返回的是一個生成器。

全模式:

import jieba
s = '武漢大學是一所還不錯的大學'
cut = jieba.cut(s, cut_all=True)
print(','.join(cut))

結果:

武漢,武漢大學,大學,是,一所,還,不錯,的,大學 Prefix dict has been built succesfully.

搜尋引擎模式:

import jieba
s = '武漢大學是一所還不錯的大學'
cut = jieba.cut_for_search(s)
print(','.join(cut))

輸出:

武漢,大學,武漢大學,是,一所,還,不錯,的,大學 Loading model cost 0.877 seconds. Prefix dict has been built succesfully.

獲取詞性

import jieba.posseg as psg

s = '武漢大學是一所還不錯的大學'
print([(x.word, x.flag) for x in psg.cut(s)])

print([(x.word, x.flag) for x in psg.cut(s) if x.flag.startswith('n')])

輸出:

Loading model cost 1.399 seconds. Prefix dict has been built succesfully. [('武漢大學', 'nt'), ('是', 'v'), ('一所', 'm'), ('還', 'd'), ('不錯', 'a'), ('的', 'uj'), ('大學', 'n')] [('武漢大學', 'nt'), ('大學', 'n')]

獲取出現頻率Ton N的詞:

from collections import Counter
import jieba

# 開啟並行分詞模式,引數為併發執行的程序數
liangjian_text = open('./liangjian.TXT', 'rb').read()
print(len(liangjian_text))
liangjian_words = [x for x in jieba.cut(liangjian_text) if len(x) >= 2]
c = Counter(liangjian_words).most_common(20)
print(c)

輸出:

720186 Building prefix dict from the default dictionary ... Loading model from cache C:\Users\SEAVAN~1\AppData\Local\Temp\jieba.cache Loading model cost 0.860 seconds. Prefix dict has been built succesfully. [('\r\n', 2926), ('李雲龍', 1801), ('一個', 666), ('什麼', 528), ('自己', 503), ('他們', 466), ('沒有', 444), ('這個', 439), ('我們', 424), ('部隊', 395), ('不是', 375), ('你們', 364), ('這麼', 352), ('趙剛', 339), ('就是', 321), ('田雨', 313), ('起來', 286), ('咱們', 268), ('怎麼', 247), ('現在', 242)]

使用使用者字典提高分詞精確性:

import jieba
txt = u'歐陽建國是創新辦主任也是歡聚時代公司雲端計算方面的專家'
# 不使用使用者字典分詞結果
print(','.join(jieba.cut(txt)))
# 使用使用者字典分詞結果
jieba.load_userdict('user_dict.txt')
print(','.join(jieba.cut(txt)))

輸出:

歐陽,建國,是,創新,辦,主任,也,是,歡聚,時代,公司,雲,計算,方面,的,專家 Prefix dict has been built succesfully. 歐陽建國,是,創新辦,主任,也,是,歡聚時代,公司,雲端計算,方面,的,專家

注1:其中user_dict.txt的內容如下:

歐陽建國 5

創新辦 5 i

歡聚時代 5

雲端計算 5

注2

需要將user_dict.txt設定為utf-8編碼,再輸入字典文字。

使用者字典每行一個詞,格式為:

詞語 詞頻 詞性

其中詞頻是一個數字,詞性為自定義的詞性,要注意的是詞頻數字和空格都要是半形的。