本文是一个使用sklearn中的TruncatedSVD进行文本主题分析的简要demo。通过主题分析,我们可以得到一个语料中的关键主题,即各个词语在主题中的重要程度,各个文章在各个主题上的倾向程度。并且可以根据它们,得到主题对应的关键词以及代表性文本。我前面写的一篇数据分析 一文看评论里的中超风云 就用到了主题分析的一种:
下面介绍的形式是LSI(潜在语义分析),主题模型中较早也较为简单的一种,在sklearn库中以TruncatedSVD的形式实现,使用非常方便,现在进入代码:
In [1]:
from sklearn.decomposition import TruncatedSVD # namely LSA/LSI(即潜在语义分析)
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
使用TF-IDF对文本进行预处理,将文本化为向量的表示形式
TfidfVectorizer的基本用法以及对中文的处理可以见我之前的一篇博文 sklearn: TfidfVectorizer 中文处理及一些使用参数
In [2]:
# ♪ Until the Day ♪ by JJ Lin 林俊杰
docs = ["In the middle of the night",