【问题标题】:Removal of Stop Words and Stemming/Lemmatization for BERTopic去除 BERTopic 的停用词和词干/词形还原
【发布时间】:2021-06-25 08:20:21
【问题描述】:

对于主题建模,我正在尝试 BERTopic:Link

我在这里有点困惑,我正在我的自定义数据集上尝试 BERTopic。
由于 BERT 的训练方式使其具有文本/文档的语义含义, 在将文档传递到 BERTopic 之前,我是否应该删除停用词和词干/词形还原? 因为我担心这些停用词是否会作为突出的术语进入我的主题,而它们不是

请提出建议和建议!

【问题讨论】:

    标签: python nlp bert-language-model topic-modeling


    【解决方案1】:

    没有。

    BERTopic 使用基于“真实和干净”文本的转换器,而不是基于没有停用词、引理或标记的文本。在计算结束时,停用词已成为噪音(非信息性)并且都在 topic_id = -1 中。

    出于同样的原因,您不应该对文本进行标记化(内部完成)或词形还原(有些主观)。那会搞乱你的话题

    不进行词形还原的一个缺点是主题的关键字有很多冗余,例如(topn = 10)“酒店,酒店”,“度假村,度假村”等。它也不处理像“纽约”这样的二元组”或“巴拉克奥巴马”优雅

    你不能拥有一切;-)

    安德烈亚斯

    PS:你当然可以删除 HTML 标签;它们也不在您的参考语料库中

    【讨论】:

      【解决方案2】:

      了解是否需要这样做的一个好方法是检查您提供的链接提供的示例/教程:这里是Topic Modeling。如您所见,它在调用模型之前似乎没有做任何预处理。

      模型的作者似乎不需要或预先确定它。

      但是,删除停用词可以加快整个过程,并且它们通常不包含有关主题的重要信息(按其性质)。正如您可以在这些链接中阅读的那样,有时会预先确定不要将它们删除用于某些任务,例如情绪分析:

      Why is removing stopwords not always a good idea ?

      DataStack discussion over stopwords

      对于 Lemmatization 或 Stemmatization,link 为您提供了有关主题建模任务主题的良好见解,说明应该实施它以改进结果。

      总之,BERTTopic 不需要 Lemming/stemming 或删除停用词即可工作,但可以实施以提高处理时间和结果。 最后,始终取决于您的需求和资源。尝试这两种解决方案并根据您的需要比较结果始终是了解这些工具优缺点的好方法。

      【讨论】:

      • 非常感谢您的指导。我在没有删除停用词的情况下试了一下,我确实看到我的结果中很少有停用词,而删除停用词会得到更好的结果(几乎相同,只是没有停用词)
      猜你喜欢
      • 2014-11-02
      • 2021-09-11
      • 2021-10-09
      • 2020-12-17
      • 2018-10-13
      • 2012-09-24
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多