iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
Software Development

來一場軟體開發學習之旅系列 第 18

Day 18:自動摘要與關鍵詞擷取的實作

  • 分享至 

  • xImage
  •  

隨著資訊量的爆炸成長,如何快速從海量文字中提取有用資訊,成為一個重要的課題。今天我們要探索兩個實用的 自然語言處理(NLP)技術:
自動摘要(Text Summarization)
關鍵詞擷取(Keyword Extraction)

這些方法能幫助我們快速理解文件的核心內容,並在學術研究、新聞媒體、商業分析等領域廣泛應用。
一、什麼是自動摘要?
自動摘要是讓電腦從長篇文章中 自動生成精簡版本,主要有兩種方法:
抽取式摘要(Extractive Summarization)
直接挑選文章中最重要的句子,組合成摘要。
優點:快速、可解釋。
缺點:句子可能不連貫。

生成式摘要(Abstractive Summarization)
模型學習語意後,用自己的語言重寫摘要。
優點:更接近人類撰寫的摘要。
缺點:需要大量資料與運算資源。

二、關鍵詞擷取
關鍵詞擷取的目標是從文章中找出 最能代表主題的詞彙。常見方法有:

TF-IDF (Term Frequency - Inverse Document Frequency)
計算詞語在單一文件中出現的頻率,並同時考量它在所有文件中的普遍程度。

TextRank
一種基於圖論的演算法,模仿Google PageRank來挑選重要詞語。

三、Python 實作:自動摘要與關鍵詞擷取
我們使用sumy進行摘要,並用sklearn的TfidfVectorizer提取關鍵詞。

#安裝需要的套件(請在終端機執行)
#pip install sumy scikit-learn nltk

from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.lex_rank import LexRankSummarizer
from sklearn.feature_extraction.text import TfidfVectorizer

#測試文本
text = """
人工智慧(AI)正在迅速改變我們的生活。從醫療診斷到金融投資,AI技術正不斷突破。
然而,它也帶來了隱私、安全與倫理的挑戰。未來,如何在技術發展與社會責任之間取得平衡,將是全球需要共同面對的重要課題。
"""

#--- 自動摘要 ---
parser = PlaintextParser.from_string(text, Tokenizer("english"))
summarizer = LexRankSummarizer()
summary = summarizer(parser.document, 2) # 取 2 句作摘要

print("自動摘要:")
for sentence in summary:
print("-", sentence)

#--- 關鍵詞擷取 ---
vectorizer = TfidfVectorizer(stop_words="english")
X = vectorizer.fit_transform([text])
keywords = vectorizer.get_feature_names_out()

print("\n 關鍵詞擷取:")
print(sorted(keywords, key=lambda w: X[0, vectorizer.vocabulary_[w]], reverse=True)[:5])

範例輸出:
自動摘要:

  • Artificial intelligence (AI) is rapidly changing our lives.
  • However, it also brings challenges of privacy, security, and ethics.
    關鍵詞擷取:
    ['ai', 'technology', 'privacy', 'security', 'ethics']

四、應用場景
新聞摘要:快速掌握新聞重點。
學術論文摘要:幫助研究者快速篩選相關文獻。
客服聊天分析:提取顧客常見問題關鍵詞,提升服務效率。

學習了自動摘要與關鍵詞擷取的基本原理與Python實作。
這些工具能幫助我們在面對龐大的文字資料時更快提取重點,提升效率。


上一篇
Day 17:探索自然語言處理(NLP)與文字資料分析
下一篇
Day 19:主題建模(Topic Modeling, LDA)的探索
系列文
來一場軟體開發學習之旅21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言