自然語言處理 結巴分詞

2021-08-22 15:11:35 字數 2556 閱讀 7758

#jieba分詞的三種模式的對比

import jieba

text='在精確模式的基礎上對長詞再次劃分提高召回率'

text_list = jieba.cut(text,cut_all=true)

print('全模式:')

print('/'.join(text_list))

print('精確模式:')

text_list = jieba.cut(text,cut_all = false)

print('/'.join(text_list))

print('預設模式是精確模式:')

text_list = jieba.cut(text)

print('/'.join(text_list))

print('搜尋引擎模式:')

text_list = jieba.cut_for_search(text)

print('/'.join(text_list))

全模式:

在/精確/模式/的/基礎/上/對/長/詞/再次/劃分/提高/召回/率

精確模式:

在/精確/模式/的/基礎/上/對/長詞/再次/劃分/提高/召回/率

預設模式是精確模式:

在/精確/模式/的/基礎/上/對/長詞/再次/劃分/提高/召回/率

搜尋引擎模式:

在/精確/模式/的/基礎/上/對/長詞/再次/劃分/提高/召回/率

主要需要排除干擾項:

標點符號

停用詞

#資料讀取

defget_content

(path):

with open(path,'r',encoding='gbk',errors='ignore') as f:

content=''

for line in f:

line=line.strip()#去掉每句話開頭和結尾的空格

content+=line

return content

defstop_words

(path):

with open(path,'r',encoding='utf-8',errors='ignore') as f:

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

#定義乙個高頻詞函式

defget_tf

(words ,topk = 10):

tf_dic = {}

for w in words:

tf_dic[w] = tf_dic.get(w,0)+1

#遍歷words中的每乙個詞切片,以詞為鍵,出現的次數為值儲存在字典中

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

defmain

():import glob

import random

import jieba

#獲取到/data/news/c000013/路徑下的所有txt檔案的路徑

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

#讀取所有檔案的內容存在corpus的列表中

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

#獲取乙個0到corpus長度的整數隨機數

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

#使用jieba精確模式分詞,

#split_words = list(jieba.cut(corpus[sample_inx]))

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

main()

樣本之一:中藥注射劑是我國獨創的新劑型,具有生物利用度高,作用迅速等特點,能較好地發揮中藥**急病重症的作用。有人**,中藥注射劑將是我國製藥產業未來開拓國際市場獨具優勢的專案。……….

樣本分詞效果:中藥/注射劑/我國/獨創/新/劑型/具有/生物/利用/度高/作用/迅速/特點/發揮/中藥/**/急病/重症/作用/有人/**/中藥/注射劑/我國/製藥/產業/未來/開拓/國際/市場/獨具/優勢/專案………

樣本的topk(10)詞:[(『中藥』, 33), (『注射劑』, 26), (『不良反應』, 20), (『中』, 10), (『發生』, 8), (『減少』, 7), (『企業』, 7), (『藥品』, 7), (『研發』, 6), (『生產』, 6)]

自然語言處理 漢語分詞

nlpir ictclas 漢語分詞系統 pynlpir 是該漢語分詞系統的 python 封裝版 安裝步驟 pip install pynlpir pynlpir update 官方文件的漢語分詞示例 import pynlpir pynlpir.open str 歡迎科研人員 技術工程師 企事業...

自然語言處理 中文分詞原理

1.1中文分詞概述 中文分詞 將乙個漢字序列分成乙個乙個的單獨的詞。分詞 將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2中文分詞方法 一般有以下三類 基於詞典匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1.2.1 基於詞典 字串匹配 機械分詞法 匹配的分詞方法 按照一定的策略...

jieba分詞快速入門 自然語言處理

結巴 中文分詞 做最好的python中文分詞元件 jieba 支援繁體分詞 支援自定義詞典 示例 分詞 encoding utf 8 import jieba seg list jieba.cut 我來到北京清華大學 cut all true print full mode join seg lis...