2

我正在使用 Gensim 的优秀库来计算使用 LSI 的语料库上的相似性查询。但是,我有一种明显的感觉,结果可能会更好,我正在尝试弄清楚我是否可以调整语料库本身以改善结果。

我对如何拆分文档有一定的控制权。我的原始数据有很多非常短的文档(文档中的平均长度是 12 个单词,但存在 1-2 个单词长的文档......),并且有几种逻辑方法可以将多个文档连接成一个。问题是我不知道这样做是否值得(如果值得,在多大程度上)。我找不到任何材料来解决这个问题,而只是关于语料库的大小和词汇量的大小。我认为这是因为归根结底,文档的大小受词汇量的限制。但我确信仍然有一些通用的指导方针可以帮助做出这个决定。

什么被认为是太短的文件?什么是太长了?(我假设后者是 的函数|V|,但前者很容易成为一个常数值。)

这个事情谁有经验?谁能指出我解决这个问题的任何论文/博客文章/研究的方向?非常感激!

编辑添加: 关于对文档进行分组的策略 - 每个文档都是两方之间发送的文本消息。潜在的分组基于此,我还可以考虑发送消息的时间。意思是,我可以将 A 和 B 之间在某个小时内或某天发送的所有消息分组,或者只是将两者之间的所有消息分组。我还可以决定组合在一起的消息的最小或最大数量,但这正是我的问题所在 - 我怎么知道理想的长度是多少?

4

2 回答 2

1

在应用 LDA 时,短文档确实是一个挑战,因为对于短文档(稀疏数据),单词共现统计的估计要差得多。正如您所提到的,缓解此问题的一种方法是通过某种启发式措施以某种方式将多个短文本聚合到一个较长的文档中。

针对这种情况的一个特别好的测试用例是 Twitter 数据的主题建模,因为它被定义限制为 140 个字符。在Twitter 主题建模的实证研究(Hong et al, 2010) 中,作者认为

在聚合的用户消息上训练标准主题模型会导致更快的训练过程和更好的质量。

但是,他们也提到不同的聚合方法会导致不同的结果:

通过使用不同的数据聚合策略学习的主题彼此之间存在很大差异。

我的建议:

  1. 如果您使用自己的启发式方法将短消息聚合成较长的文档,请确保尝试不同的聚合技术(可能是所有“有意义的”技术)

  2. 考虑使用更适合短消息的“无启发式”LDA 变体,例如, 使用分布式单词表示的短文本的无监督主题建模

于 2017-08-09T10:25:32.853 回答
1

在我看来,查看每个文档的字数似乎不是正确的方法。LSI/LSA 就是通过检测常见的共现来捕获文档的底层语义

您可能想阅读:

  1. LSI:概率分析
  2. 潜在语义分析(特别是第 3.2 节)

2的有效摘录:

LSI 的一个重要特征是它不对数据背后的特定生成模型做任何假设。语料库中术语的分布是“高斯”、泊松还是其他方式与这种技术的有效性无关,至少就其数学基础而言。因此,不能说使用 LSI 需要假设属性值是正态分布的。

我更担心的是,这些短文档是否共享相似的共同出现的术语,这将允许 LSI 形成一个适当的主题,将人类共享相同主题的所有文档分组。这很难通过用更频繁和通用的术语替换稀有术语来自动完成(可能使用 WordNet / 本体)。但这是一个很长的镜头,需要进一步研究。

关于启发式的更具体答案:
我最好的选择是将对话视为您的文件。因此,分组将在交换消息的时间接近度上进行。几分钟(四分之一?)我会聚在一起。虽然可能存在误报(很大程度上取决于数据集的实际内容)。与 NLP 中的任何超参数一样 - 你的里程会有所不同......所以值得做一些实验。

于 2017-08-08T16:17:07.540 回答