跳到主要内容

机器学习与数据挖掘

文本挖掘与情感分析

对一段长文本自动分词、统计词频,尝试用 NMF 归纳主题,再用中英情感词典给每条文字打 0 到 1 的极性。

更新日期 2026-08-29 机器学习

这篇能回答什么

文本挖掘回答的是「这堆非结构化句子里反复出现哪些词、能不能收成几个主题、整体语气偏正向还是负向」。流程是:识别中英 → jieba 或空白分词并去停用词 → 词频 / 词云 → TF-IDF + NMF 抽主题 → 用内置正负词表给每条打分(0~1,0.5 为中性)。它不是大语言模型,也不会理解否定、讽刺或学科术语的褒贬。

适合:开放题、评论、摘要段落等单列长文本。教学示例使用文本与设计表的「papers」工作表,文本列是「摘要」:40 条句式高度重复的中文摘要,用来演示短文本、低多样性时主题与情感会停在占位结果。

什么时候不该用

不要把「关键词」列(分号分隔的标签)当成文章正文——那一列应交给文献计量与知识图谱做共现。只要类别人数,用频数分析。功能满意度的正反向计分用KANO。有效文本少于 10 条不能运行。

如何选择方法

先分清字段是正文、标签还是量表。摘要、评论走本过程;年份 + 作者 + 关键词走文献计量;李克特或推荐分走描述 / NPS。需要上下文否定(「一点也不好」)或领域情感时,词典法会失效,应改用带标注的分类模型,而不是指望本页的 0.50。

  • 文本挖掘与情感分析:正好 1 个文本列;词云、NMF 主题、词典极性。

  • 文献计量与知识图谱:年份、作者、关键词三列,画共现网络。

  • 频数分析:已经切好的类别,清点人数。

  • NPS:0–10 推荐分,不是自由文本语气。

输入、输出与限制

输入

文本列必须是一段可分词的句子或段落。空值删除后至少 10 条。语种按前 50 条抽样自动判为中文或英文。

  • 文本列:最少 1 个,最多 1 个。

输出

主题表列:主题编号、核心关联词汇簇。词云取词频最高的至多 100 词。情感:每条 0~1 分,>0.6 记积极、<0.4 记消极,其余中性;并给出综合均值与极性密度图。洞察会写语种与样本数。

产品限制

  • 词频与情感最多在 2000 条上计算(种子 42 抽样)。

  • NMF 使用 TF-IDF(min_df=2,最多 300 词),主题文档最多 800 条;默认尝试 3 个主题。

  • 去重后有效文档不足 10,或词汇表为空时,主题格显示「文本量不足,无法聚类」。

  • 情感是词表命中的加一平滑,不是 transformer 或方面级情感。

  • 这些规则来自 StatsX(jieba + sklearn NMF),不要用 SPSS Text Analytics 的语言资源或 IBM 情感模型对词表。

案例

研究问题。 一份教学用文献登记表在「papers」里存了年份、作者、关键词和摘要,希望先从摘要里看能否抽出多个研究主题,并判断语气是否偏宣传。

教学示例有效摘要 40 条,但只有 6 种高度重复的短句(均约 57 字),内容是「本研究探讨××在社会科学中的应用」循环三次。语种判为中文。NMF 无法形成多主题,主题 1 的词汇簇为「文本量不足,无法聚类」。综合情感 0.50,整体中性——摘要里几乎打不中「好 / 差 / 满意」这类评论词。下载后在 papers 表勾选「摘要」列即可复现。

下载教学示例表(文本与设计)

在 StatsX 中操作

  1. 步骤 1 · 上传表格

    打开工作台,将 Excel / CSV / JSON 拖入上传区。本案例使用文本与设计示例 xlsx,确认工作表为「papers」,不要误选 kano 或 conjoint。单文件不超过 20 MB。

  2. 步骤 2 · 查看画像与质量

    确认「摘要」为文本,平均长度很短、重复多。不要把「关键词」或「作者」当成文本列——分号标签应留给文献计量。

  3. 步骤 3 · 选择「文本挖掘与情感分析」

    在算法目录搜索「文本挖掘」或「情感」并点选。适合/可用标记仅供参考。

  4. 步骤 4 · 指定文本列并运行

    文本列只勾选「摘要」。点击运行分析。至少需要 10 条非空摘要。

  5. 步骤 5 · 阅读结果

    先看语种与有效条数,再看主题格是真实关键词还是「文本量不足,无法聚类」,最后读综合情感是否停在 0.50。词云反映的是「研究 / 探讨 / 社会科学」这类套话,不是领域发现。

StatsX 工作台上传文本与设计表
将教学示例表拖入工作台上传区。
列画像确认摘要为文本
列画像确认 papers 表中「摘要」为文本列。
在目录中选择文本挖掘与情感分析
在算法目录中选定「文本挖掘与情感分析」。
为文本挖掘指定摘要列
文本列勾选「摘要」后运行。

如何阅读输出

下表由同一份 papers 摘要在 StatsX 中运行文本挖掘得到。有效条数 40,语种 CN。去重后独特摘要只有 6 条,TF-IDF 要求词至少出现在 2 篇中,且独特文档还需大约 10 篇,两道门槛同时未过,于是 主题 1 写着「文本量不足,无法聚类」。这不是程序崩溃,而是教学样本多样性不够。

NMF 主题挖掘结果
主题编号核心关联词汇簇 (NMF 算法提取)
主题 1文本量不足,无法聚类

文本语言智能识别为: CN。基于无监督学习,系统自动将所有文本归纳为了 1 个潜在主旨域。

NMF 主题挖掘结果表
工作台中的主题表,应出现「文本量不足,无法聚类」。
主题关键词权重分布图
主题词权重图;本教学示例无法抽出多主题,图与占位表一致。
文本极性分数密度图
极性密度集中在 0.5 附近,与综合情感 0.50、整体中性一致。

【文本挖掘】语种=中文,样本数=40。

【情感指数】综合情感=0.50(0~1),整体中性。

解读顺序建议:有效条数与是否抽样 → 独特文档是否够 NMF → 主题格是词还是占位句 → 综合情感偏离 0.5 多少 → 词云是否只是套话。要把本过程写成「发现了三个研究主题」,必须换一批更长、更多样的摘要或评论;本页 40 条不能支撑这种表述。

理论与公式

中文用 jieba 切词(长度大于 1 且不在停用词表),英文按空白切并去短词。词项权重用 TF-IDF:词在文档内的频率乘以逆文档频率。NMF 把文档-词矩阵 V 近似分解为非负的 W、H,H 的每一行给出一个主题的词权重:

情感不用神经网络。设一条文本命中正面词 p 个、负面词 n 个(中英各有一张短词表),极性为加一平滑后的正面占比:

p=n=0 时 s=0.5。学术摘要很少出现「满意」「失望」,所以本例条条都是 0.5。Transformer 情感分类会看整句上下文,能处理「并不满意」,但本产品不调用这类模型。

注意事项

  • 短句、复制粘贴、模板摘要会让独特文档数塌缩,NMF 直接放弃。

  • 词典覆盖的是评论口吻(好、差、赞、坑),覆盖不了「结构方程」「因果推断」的学科立场。

  • 否定、双重否定、反语会判反;不要把 0.50 写成「用户情绪稳定」。

  • 超过 2000 条只分析抽样,论文应写 analyzed_size。

  • 词云的高频词包含「研究」「探讨」时,应视为语体而不是发现。

  • 「关键词」列有分号,应走文献计量,不要期望本过程还原共现网络。

常见问题

参考文献

  • Lee, D. D., Seung, H. S. Learning the parts of objects by non-negative matrix factorization[J]. Nature, 1999, 401: 788–791.

  • Blei, D. M., Ng, A. Y., Jordan, M. I. Latent Dirichlet allocation[J]. Journal of Machine Learning Research, 2003, 3: 993–1022.

  • 宗成庆. 统计自然语言处理[M]. 北京: 清华大学出版社.