最後更新:2026年10月15日
第7週 主題模型(Topic Modeling)
1. 回顧
主題模型在一大批文件中自動找出「經常一起出現的一組詞」,也就是主題。LDA 假設:每個主題是詞的機率分布,每篇文件是幾個主題的混合。模型事先不知道有哪些主題,主題的名字要由我們根據高頻詞來取。主題數 K 也由我們決定,沒有唯一正確的答案。詳見本週投影片。
2. 課堂/課後練習:《全唐詩》的主題
打開你的智能體(agent)環境,把下面的提示詞貼給它。
- 資料:qhchina-data/corpora/misc/全唐诗.json
- 工具:qhchina 的
LDAGibbsSampler(qhchina.analytics.topicmodels)
提示詞(Prompt)
請從 GitHub 下載《全唐詩》:
https://github.com/mcjkurz/qhchina-data/blob/main/corpora/misc/全唐诗.json
然後安裝 qhchina:
pip install qhchina
再用 qhchina.analytics.topicmodels.LDAGibbsSampler 訓練主題模型。
每一首詩算一篇文件,以「字」為單位(不分詞),並去掉標點符號。
用 qhchina 的 load_stopwords("zh_cl_sim") 去掉文言(簡體)停用詞。
先分別試 10 個和 20 個主題。
每個主題列出前 10 個字,並為每個主題舉 2 首最典型的詩。
看看結果:
- 哪些主題一看就懂?試著為它們取個名字。哪些主題看不懂?
- 10 個主題和 20 個主題有什麼不同?哪些主題在 20 個時被拆開了?
- 回到典型的詩,細讀幾首:主題的名字合適嗎?
接著可以讓智能體改變其他參數(例如 alpha、beta、iterations、stopwords),或換一個主題數,再比較結果。
延伸閱讀
- 蘇祺:〈主題模型〉,第十章,李飛躍、桑海(主編)《數字人文引論》。北京:中華書局,2026年
- Ted Underwood, “Topic Modeling Made Just Simple Enough” (2012)
- David M. Blei, “Probabilistic Topic Models” (2012)