python實現關鍵詞提取


簡單的關鍵詞提取的代碼 
文章內容關鍵詞的提取分為三大步: 
(1) 分詞 
(2) 去停用詞 
(3) 關鍵詞提取

分詞方法有很多,我這里就選擇常用的結巴jieba分詞;去停用詞,我用了一個停用詞表。具體代碼如下:

 1 import jieba
 2 import jieba.analyse
 3 
 4 #第一步:分詞,這里使用結巴分詞全模式
 5 text = '''新聞,也叫消息,是指報紙、電台、電視台、互聯網經常使用的記錄社會、傳播信息、反映時代的一種文體,\
 6 具有真實性、時效性、簡潔性、可讀性、准確性的特點。\
 7 新聞概念有廣義與狹義之分。\
 8 就其廣義而言,除了發表於報刊、廣播、電視上的評論與專文外的常用文本都屬於新聞之列,包括消息、通訊、特寫、速寫(有的將速寫納入特寫之列)等等。\
 9 狹義的新聞則專指消息,消息是用概括的敘述方式,比較簡明扼要的文字,迅速及時地報道國內外新近發生的、有價值的的事實。\
10 新聞也分公眾新聞和小道新聞等。每則新聞在結構上,一般包括標題、導語、主體、背景和結語五部分。\
11 前三者是主要部分,后二者是輔助部分。寫法上主要是敘述,有時兼有議論、描寫、評論等。
12 '''
13 fenci_text = jieba.cut(text)
14 #print("/ ".join(fenci_text))
15 
16 #第二步:去停用詞
17 #這里是有一個文件存放要改的文章,一個文件存放停用表,然后和停用表里的詞比較,一樣的就刪掉,最后把結果存放在一個文件中
18 stopwords = {}.fromkeys([ line.rstrip() for line in open('stopwords.txt') ])
19 final = ""
20 for word in fenci_text:
21     if word not in stopwords:
22         if (word != "" and word != "") :
23             final = final + " " + word
24 print(final)
25 
26 #第三步:提取關鍵詞
27 a=jieba.analyse.extract_tags(text, topK = 5, withWeight = True, allowPOS = ())
28 b=jieba.analyse.extract_tags(text, topK = 6,   allowPOS = ())
29 print(a)
30 print(b)
31 #text 為待提取的文本
32 # topK:返回幾個 TF/IDF 權重最大的關鍵詞,默認值為20。
33 # withWeight:是否一並返回關鍵詞權重值,默認值為False。
34 # allowPOS:僅包括指定詞性的詞,默認值為空,即不進行篩選。

     運行結果如下:

 新聞 也 叫 消息 是 指 報紙 、 電台 、 電視台 、 互聯網 經常 使用 的 記錄 社會 、 傳播 信息 、 反映 時代 的 一種 文體 具有 真實性 、 時效性 、 簡潔性 、 可讀性 、 准確性 的 特點 新聞 概念 有 廣義 與 狹義 之分 就 其 廣義 而言 除了 發表 於 報刊 、 廣播 、 電視 上 的 評論 與 專文 外 的 常用 文本 都 屬於 新聞 之 列 包括 消息 、 通訊 、 特寫 、 速寫 ( 有 的 將 速寫 納入 特寫 之 列 ) 等等 狹義 的 新聞 則 專指 消息 消息 是 用 概括 的 敘述 方式 比較 簡明扼要 的 文字 迅速 及時 地 報道 國內外 新近 發生 的 、 有 價值 的 的 事實 新聞 也 分 公眾 新聞 和 小道 新聞 等 每則 新聞 在結構上 一般 包括 標題 、 導語 、 主體 、 背景 和 結語 五 部分 前 三者 是 主要 部分 后 二者 是 輔助 部分 寫法 上 主要 是 敘述 有時 兼有 議論 、 描寫 、 評論 等 

[('新聞', 0.4804811569680808), ('速寫', 0.2121107125313131), ('消息', 0.20363211136040404), ('特寫', 0.20023623445272729), ('狹義', 0.16168734917858588)]
['新聞', '速寫', '消息', '特寫', '狹義', '廣義']

 


免責聲明!

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



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