天天看點

中文自然語言處理--jieba基于 TextRank 算法進行中文文本中的關鍵詞提取

TextRank 是由 PageRank 改進而來,核心思想将文本中的詞看作圖中的節點,通過邊互相連接配接,不同的節點會有不同的權重,權重高的節點可以作為關鍵詞

# -*- coding:utf-8 -*-
import jieba.analyse

# 采用的語料來自于百度百科對人工智能的定義,擷取 Top5 關鍵字,用空格隔開列印
sentence = "人工智能(Artificial Intelligence),英文縮寫為AI。它是研究、開發用于模拟、延伸和擴充人的智能的理論、方法、技術及應用系統的一門新的技術科學。" \
           "人工智能是計算機科學的一個分支,它企圖了解智能的實質,并生産出一種新的能以人類智能相似的方式做出反應的智能機器,該領域的研究包括機器人、語言識别、圖像識别、自然語言處理和專家系統等。" \
           "人工智能從誕生以來,理論和技術日益成熟,應用領域也不斷擴大,可以設想,未來人工智能帶來的科技産品,将會是人類智慧的“容器”。" \
           "人工智能可以對人的意識、思維的資訊過程的模拟。人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能。" \
           "人工智能是一門極富挑戰性的科學,從事這項工作的人必須懂得計算機知識,心理學和哲學。人工智能是包括十分廣泛的科學,它由不同的領域組成,如機器學習,計算機視覺等等," \
           "總的說來,人工智能研究的一個主要目标是使機器能夠勝任一些通常需要人類智能才能完成的複雜工作。但不同的時代、不同的人對這種“複雜工作”的了解是不同的。" \
           "2017年12月,人工智能入選“2017年度中國媒體十大流行語”。"

# 基于 TextRank 算法進行關鍵詞提取
# TextRank 是由 PageRank 改進而來,核心思想是将文本中的詞看作圖中的節點,通過邊互相連接配接,
# 不同的節點會有不同的權重,權重高的節點可以作為關鍵詞
# jieba 已經實作了基于 TextRank 算法的關鍵詞抽取,通過指令 import jieba.analyse 引用
'''
    sentence:待提取的文本語料;
    topK:傳回 TF/IDF 權重最大的關鍵詞個數,預設值為 20;
    withWeight:是否需要傳回關鍵詞權重值,預設值為 False;
    allowPOS:僅包括指定詞性的詞,預設值為空,即不篩選。
'''
result = "  ".join(jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')))
print(result)
# 隻需要名詞和動詞
result = "  ".join(jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('n', 'v')))
print(result)

           

原文:

https://soyoger.blog.csdn.net/article/details/108729412