jieba是中文文字用於分詞的庫,有3種模式:精確模式、全模式(所有可能的分割)、搜尋引擎模式(在精確模式基礎上再進行分割)
具體參考pypi
#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("".format(word, count))
注:1.txt
王西風在吃大棗,林黛玉在看書,寶玉發呆呢。。。。。得到的分詞結果,統計次數的前5個答案如下,可以看出,這個中文文字分割只是簡單分割,有一定的缺點:不能根據語義進行分割,文字的意思是大棗不好吃,它分割成了好吃,林黛玉和黛玉是乙個人,它分割成了兩個分詞。王西風吃完大棗後被寶玉叫住問:」大棗好不好吃?「,西風苦澀地說:」不好吃,澀得很,你想吃嗎?「
寶玉說,」不好吃的話我就不吃了,算了。「,接著他去黛玉那裡看了看黛玉正在看的書,覺得都是寫傷感的東西,很不感興趣。
('西風', 3),
('大棗', 3),
('寶玉', 3),
('好吃', 2),
('林黛玉', 1)
參考
中文文字糾錯
u4e00 代表什麼意思 u9fa5 代表什麼意思?答 u4e00 u9fa5是用來判斷是不是中文的乙個條件,採用的是unicode編碼 參考website 2020 9 1 最全面,精華 中文糾錯 待看完中文文字拼寫檢查錯誤糾正方案整理 關聯pycorrector 小練習 簡化 import pa...
BufferedReader讀取中文文字亂碼
今天測試lucene構建索引時需要從文字中讀取資料,使用bufferreader獲取文字資料返回亂碼。如下 public static void main string args public static string filetostring file file bufferedreader.c...
中文文字分句
關於文字分句這點,說簡單也簡單,說複雜也複雜。一般的自然語言處理任務中對這點要求並不嚴格,一般按照句末標點切分即可。也有一些專門從事文字相關專案的行業,可能就會有較高的要求,想100 分句正確是要考慮許多語言本身語法的,這裡算是寫個中等水平的。以 背影 中的一段話為例 我心裡暗笑他的迂 他們只認得錢...