为 BERTopic 删除停用词和 Stemming/Lemmatization

Removal of Stop Words and Stemming/Lemmatization for BERTopic

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

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

请多多指教!

了解是否需要这样做的一个好方法是检查您提供的 link 给出的 examples/tutorials:这是 Topic Modeling。如您所见,它似乎在调用模型之前没有做任何预处理。

看来模型的作者不需要或预先考虑它。

但是,删除停用词可以使整个过程更快,而且它们通常不包含有关该主题的重要信息(就其性质而言)。有时预先考虑不要为某些任务删除它们,例如情绪分析,您可以在这些 links 中阅读:

Why is removing stopwords not always a good idea ?

DataStack discussion over stopwords

至于词形还原或词干化,这 link 为您提供了关于主题建模任务的主题的很好的见解,说应该实施它以改善结果。

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

没有

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

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

不进行词形还原的一个缺点是主题的关键字有很多冗余,例如 (topn=10) "hotel, hotels", "resort, resorts" 等。它也不处理像 "纽约”或优雅的“巴拉克奥巴马”

你不能拥有一切 ;-)

安德烈亚斯

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