更新時間:2021-11-04 來源:黑馬程序員 瀏覽量:
隨著漢語言的廣泛應(yīng)用,中文信息處理成了一個重要的研究課題,常見于搜索引擎:信息檢索、中外文自動翻譯、數(shù)據(jù)挖掘技術(shù)、自然語言處理等領(lǐng)域。在處理的過程中,中文分詞是最基礎(chǔ)的一環(huán)。
中文分司是指將個漢字序列切分成一個一個單獨(dú)的話,是一個學(xué)生”經(jīng)分詞中文語句或語段拆成若干漢語詞匯。例如,用戶輸人的語句“我是一個學(xué)生,經(jīng)分詞系統(tǒng)處理之后,該語句被分成“我”是”“一個”“學(xué)生”四個漢語詞匯。
在英文本中,每個單詞之間以空格作為自然分界符,而中文只有句子和段落能夠
通過明顯的分界符來簡單劃分,詞并沒有有二個形式上的分界符,雖然英文也同樣存在短語的劃分問題,但是在詞這層上,中文要比英文復(fù)雜得多、困難得多。jieba是國內(nèi)使用人數(shù)最多的中文分詞工具,可以采用如下方式進(jìn)行安裝:
>>> pip install jieba
安裝完之后,通過import語句將其引入:
import jieba
jieba模塊支持以下3種分詞模式。
(1)精確模式,試圖將句子最精準(zhǔn)地切開。
(2)全模式,將句子中所有可以成詞的詞語都掃描出來,速度非常快。
(3)搜索引擎模式,在精確模式的基礎(chǔ)上對長詞再次切分。
jieba模塊中提供了一系列分詞函數(shù),常用的是jieba.cut()函數(shù),該函數(shù)需要接收如下3個參數(shù)。
(1)sentence,需要分詞的字符串。
(2)cut_all,控制是否采用全模式。若設(shè)為True,代表按照全模式進(jìn)行分詞;若設(shè)為False,代表按照精確模式進(jìn)行分詞。
(3)HMM,控制是否使用HMM(Hidden Markov Model,隱馬爾可夫模型)。
若要采用搜索引擎模式對中文進(jìn)行分詞,需要使用cut_for_search()函數(shù),該函數(shù)中需要接收兩個參數(shù):sentence和HMM。
下面分別采用以上3種模式對中文進(jìn)行分詞操作,代碼如下:
#02_word_segmentation.py seg_list = jieba.cut("我來到北京清華大學(xué) ",cut_all-True) print("[全模式]: "+"/".join(seglist)) #全模式 seg_list = jieba.cut("我來到北京清華大學(xué)",cut_all=False) print("[精確模式]:"+"/".join(seg_list)) #精確模式 seg_list = jieba.cut_for_search("小明碩土畢業(yè)于中國科學(xué)院計(jì)算所, 后在日本京都大學(xué)深造") #搜索引擎模式 print("[搜索引擎模式] :" + ",".join(seg list))
程序輸出的結(jié)果如下:
[全模式]:我/來到/北京/清華/清華大學(xué)/華大/大學(xué) [精確模式]:我/來到/北京/清華大學(xué) [搜索引擎模式]: 小明,碩士,畢業(yè),于,中國,,科學(xué)院,中國科學(xué)院,計(jì)算, 計(jì)算所,后,在,日本,京都,大學(xué),日本京都大學(xué),深造