使用主题建模查找特定主题

数据挖掘 文本挖掘 信息检索 主题模型
2022-03-06 20:38:32

我正在寻找一种按特定主题自动分类文本的方法,我没有标记数据。这是实现这一目标的可能/通常方法吗?如果没有,什么会更好?

使用 Mallet 进行主题建模

我注意到mallet 找到了有趣的主题,但这些主题仅与我想要识别的主题部分匹配。所以想法是遍历所有有趣的 k 并搜索以最高百分比满足要求的主题。

  1. 用肘部查找几个(良好的连贯性得分)k 个主题(=k 的好数量列表)
  2. 查看高频术语并(手动)将这些术语映射到所需的主题(=每个搜索主题的单词列表)
  3. 为所有好的 k 建模主题并搜索与单词列表的良好匹配

例子

我想对关于“环境污染”主题的文本进行分类/识别

  1. [17, 15, 20, 33, 41, 42, 55, 120] k => 具有良好的连贯性得分
  2. [污垢,污染,排放,污染] => 高频,这些词会与主题匹配
  3. 用 k=33 找到与这些关键字匹配的主题。

这可用于对看不见的文本进行分类(稍后用于标记文本以进行监督学习

主题“环境污染”

[('pollution', 0.09756215849203013), ('dirt', 0.09028743250670891), ('emission', 0.05491609816030263), ('contamination', 0.02589802450774354), ('sea', 0.02088654660674448), ('ocean', 0.017281515729574187), ( '气候', 0.014694946490348864), ('危机', 0.013676484852403893), ('废物', 0.011380904652591419), ('烟雾', 0.009812797051311068)])

1个回答

您可以使用 LDA(潜在狄利克雷分配)作为输入数据,它只需要不同的文本集合。作为输出,它为每个文档生成主要主题(例如:Document1:0.3% Topic1、0.2% Topic5、0.2% Topic8、0.2% Topic12、0.1% Topic3),并为每个主题生成不同的单词以及它们对该主题的贡献量. 然后您可以浏览主题的单词并手动决定如何命名每个主题的标签。