jieba庫對中文文本進行切割 python


jieba是中文文本用於分詞的庫,有3種模式:精確模式、全模式(所有可能的分割)、搜索引擎模式(在精確模式基礎上再進行分割)

具體參考PYPI

 

 

# coding=utf-8
import  jieba

#txt = open(u"D:\data\ebook\紅樓夢.txt","r").read() #,encoding='utf-8'
txt = open("D:\\data\\ebook\\1.txt","r",encoding='utf-8').read()
words = jieba.lcut_for_search(txt)     # 使用搜索引擎模式對文本進行分詞
counts = {}     # 通過鍵值對的形式存儲詞語及其出現的次數

for word in words:
    print(word)
    if  len(word) == 1:    # 長度為1的詞語不計算在內
        continue
    else:
        counts[word] = counts.get(word, 0) + 1    # 遍歷所有詞語,每出現一次其對應的值加 1
        
items = list(counts.items())#將鍵值對轉換成列表
items.sort(key=lambda x: x[1], reverse=True)    # 根據詞語出現的次數進行從大到小排序

for i in range(5):
    word, count = items[i]
    print("{0:<5}{1:>5}".format(word, count))

  注:1.txt

  王西風在吃大棗,林黛玉在看書,寶玉發呆呢。。。。。
王西風吃完大棗后被寶玉叫住問:”大棗好不好吃?“,西風苦澀地說:”不好吃,澀得很,你想吃嗎?“
寶玉說,”不好吃的話我就不吃了,算了。“,接着他去黛玉那里看了看黛玉正在看的書,覺得都是寫傷感的東西,很不感興趣。

  得到的分詞結果,統計次數的前5個答案如下,可以看出,這個中文文本分割只是簡單分割,有一定的缺點:不能根據語義進行分割,文本的意思是大棗不好吃,它分割成了好吃,林黛玉和黛玉是一個人,它分割成了兩個分詞。

('西風', 3),
('大棗', 3),
('寶玉', 3),
('好吃', 2),
('林黛玉', 1)

參考

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM