Jieba分詞簡介

2021-09-14 00:14:00 字數 4234 閱讀 6617

jieba分詞官網:

jieba提供了三種分詞模式:

精確模式,試圖將句子最精確地切開,適合文字分析;

全模式,把句子中所有的可以成詞的詞語都掃瞄出來, 速度非常快,但是不能解決歧義;

搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。

import jieba

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))

執行結果如下:

全模式: 用/刀尖/入水///用/顯微/顯微鏡/看/雪///就算/反覆/如此///還是/忍不住/不住/問一問///你/數/過天/天上/的/星星/嗎///它們/和/小鳥/一樣///總/在/我/胸口/跳傘//

精確模式: 用/刀尖/入/水/,/用/顯微鏡/看雪/,/就算/反覆/如此/,/還是/忍不住/問一問/,/你/數過/天上/的/星星/嗎/?/它們/和/小鳥/一樣/,/總在/我/胸口/跳傘/。

預設精確模式: 用/刀尖/入/水/,/用/顯微鏡/看雪/,/就算/反覆/如此/,/還是/忍不住/問一問/,/你/數過/天上/的/星星/嗎/?/它們/和/小鳥/一樣/,/總在/我/胸口/跳傘/。

搜尋引擎模式: 用/刀尖/入/水/,/用/顯微/顯微鏡/看雪/,/就算/反覆/如此/,/還是/不住/忍不住/問一問/,/你/數過/天上/的/星星/嗎/?/它們/和/小鳥/一樣/,/總在/我/胸口/跳傘/。

將「入水」加到自定義詞典user_dict.txt中,然後進行預設精確模式的分詞:

jieba.load_userdict('./user_dict.txt')
執行結果如下:

預設精確模式: 用/刀尖/入水/,/用/顯微鏡/看雪/,/就算/反覆/如此/,/還是/忍不住/問一問/,/你/數過/天上/的/星星/嗎/?/它們/和/小鳥/一樣/,/總在/我/胸口/跳傘/。
import jieba.posseg as psg

sent = '用刀尖入水,用顯微鏡看雪,就算反覆如此,還是忍不住問一問,你數過天上的星星嗎?它們和小鳥一樣,總在我胸口跳傘。'

seg_list = psg.cut(sent)

print(' '.join(['/'.format(w, t) for w, t in seg_list]))

執行結果如下:

用/p 刀尖/n 入/v 水/n ,/x 用/p 顯微鏡/nr 看/v 雪/n ,/x 就算/v 反覆/v 如此/c ,/x 還是/c 忍不住/v 問一問/l ,/x 你/r 數/m 過/ug 天上/s 的/uj 星星/nz 嗎/y ?/x 它們/r 和/c 小鳥/n 一樣/r ,/x 總/b 在/p 我/r 胸口/s 跳傘/v 。/x
參考資料:

高頻詞提取其實就是自然語言處理中的tf策略。其主要有以下干擾項:

下面採用jieba分詞,針對搜狗實驗室的新聞資料,進行高頻詞的提取。

首先,進行資料的讀取:

def get_content(path):

with open(path, 'r', encoding='gbk', errors='ignore') as f: # gbk編碼專門用來解決中文編碼

content = ''

for l in f:

content += l.strip()

return content

定義高頻詞統計的函式,其輸入是乙個詞的陣列:

def get_tf(words, topk=10):

tf_dic = {}

for w in words:

tf_dic[w] = tf_dic.get(w, 0) + 1 # get() 函式返回指定鍵的值,如果值不在字典中返回預設值。

return sorted(tf_dic.items(), key=lambda x: x[1], reverse=true)[:topk]

def stop_words(path):

with open(path) as f:

return [l.strip() for l in f]

最後,主函式如下,這裡僅列舉了求出高頻詞的前10個:

def main():

import glob

import random

import jieba

files = glob.glob('./data/news/c000013/*.txt')

corpus = [get_content(x) for x in files]

# sample_inx = random.randint(0, len(corpus))

sample_inx = 0

split_words = [x for x in jieba.cut(corpus[sample_inx]) if x not in stop_words('/./data/stop_words.utf8')]

print('樣本之一:' + corpus[sample_inx])

print('樣本分詞效果:' + '/'.join(split_words))

print('樣本的topk(10)詞:' + str(get_tf(split_words)))

結果如下:

樣本之一:藥物流產(專題 訪談 諮詢)具有一定的適應性,並非所有孕婦都可以毫無顧忌地做藥流,特別是多次做過**者,再進行藥流顯然是不合適的。已經進行過**的孕婦,子宮內膜曾經遭受過機械性刺激,其光滑度受到影響,常常導致發育不良,胎盤粘連等,這與手術操作不當發生子宮內膜表面上皮的重建困難,腺上皮不能再生,間質出現纖維化及玻璃樣改變或鈣化有關。多次**還有可能引起子宮內膜的感染,嚴重者使子宮內膜不再增殖而發生炎性萎縮。這些都是給再次採用藥物流產帶來極大的麻煩。做**次數越多,發生藥物不完全流產的比例也就越高,而不完全流產將對女性的健康造成很大的危害。在臨床中經常見到藥物流產不靈的現象。這些服藥者多半埋怨甚至懷疑藥物有問題,實際上這是與其自身的具體情況有直接聯絡。藥物流產有著嚴格的指徵,並非隨便可以服用的。禁忌症就包括經常進行**術者。要知道,藥物流產與人工流產一樣,也是迫不得已的方法,千萬不可將其當作避孕「常規」,更不能誤認為是完美無缺的補救措施。曾經做過**術的女性,進行藥流前最好多聽聽醫生的意見,對於醫生的否決務必要遵從,切勿自以為是,健康和安全是首位的。

樣本分詞效果:藥物/流產/專題/ /訪談/ /諮詢/具有/一定/適應性/孕婦/毫無顧忌/做/藥流/特別/多次/做過/**/進行/藥流/顯然/合適/已經/進行/**/孕婦/子宮/內膜/曾經/遭受/機械性/刺激/光滑度/影響/常常/導致/發育不良/胎盤/粘連/手術/操作/不當/發生/子宮/內膜/表面/上皮/重建/困難/腺/上皮/不能/再生/間質/出現/纖維化/玻璃/樣/改變/鈣化/多次/**/可能/引起/子宮/內膜/感染/嚴重者/子宮/內膜/不再/增殖/發生/炎性/萎縮/再次/採用/藥物/流產/帶來/極大/麻煩/做**/次數/越/發生/藥物/完全/流產/比例/越/高/完全/流產/女性/健康/造成/很大/危害/臨床/中/經常/見到/藥物/流產/不靈/現象/服藥者/多半/埋怨/懷疑/藥物/問題/實際上/這是/具體情況/直接/聯絡/藥物/流產/有著/嚴格/指徵/隨便/服用/禁忌症/包括/經常/進行/**/術者/知道/藥物/流產/人工流產/迫不得已/方法/千萬/不可/當作/避孕/常規/更/不能/誤認為/完美無缺/補救措施/曾經/做過/**/術/女性/進行/藥流前/最好/聽聽/醫生/意見/醫生/否決/務必/遵從/切勿/自以為是/健康/安全/首位

樣本的topk(10)詞:[('藥物', 7), ('流產', 7), ('**', 5), ('子宮', 4), ('進行', 4), ('內膜', 4), ('發生', 3), ('越', 2), (' ', 2), ('做過', 2)]

jieba(結巴)分詞種詞性簡介

jieba為自然語言語言中常用工具包,jieba具有對分詞的詞性進行標註的功能,詞性類別如下 ag 形語素形容詞性語素。形容詞 為 a,語素 前面置以a。a 形容詞取英語形容詞 adjective的第1個字母。ad 副形詞直接作狀語的形容詞。形容詞 a和副詞 d並在一起。an 名形詞具有名詞功能的形...

jieba 利用jieba分詞

目錄 三種分詞模式 新增自定義詞典進行分詞 jieba提供了三種分詞模式,分別是全模式,精確模式和搜尋引擎模式。全模式下會將所有可能的詞語都進行分詞,精確模式下會盡可能的將句子精確切開,搜尋引擎模式實在精確模式的基礎上,對長詞再進行劃分,提高分詞的召回率。使用cut和cut for search即可...

jieba分詞原理

關於jieba分詞的原理,在平時做文字方面的演算法時沒有仔細研究過,昨晚在網上看了一篇部落格,寫的很全面很詳細,其中有些深入的部分還並沒有完全看懂。jieba分詞系統介紹 涉及演算法 基於字首詞典實現詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用動態規劃查詢最大概率路徑,找...