【问题标题】:Using Bert and cosine similarity fo identify similar documents使用 Bert 和余弦相似度识别相似文档
【发布时间】:2020-07-09 17:54:46
【问题描述】:

我们有一个新闻网站,我们必须在其中将新闻与特定用户进行匹配。

我们只能使用用户文本信息来匹配,例如用户的兴趣或关于他们的简要描述。

我正在考虑将用户文本信息和新闻文本作为文档进行威胁,并找到文档相似性。

我希望这样,如果在我的个人资料中我写了这样的句子:我喜欢去年在芝加哥的总统演讲,并且有新闻谈论:特朗普是要去伊利诺伊州演讲 我可以来一场比赛(这个例子纯属随意)。

我首先尝试使用 TF-IDF 嵌入我的文档,然后我尝试了一个 kmeans 来查看是否有一些有意义的东西,但我不太喜欢结果。

我认为问题源于 TF-IDF 给我的嵌入效果不佳。

因此,我正在考虑使用 BERT 嵌入来检索我的文档的嵌入,然后使用余弦相似度来检查两个文档(关于用户个人资料和新闻的文档)的相似度。

这是一种有意义的方法吗? BERT可以用来检索句子的嵌入,但是有没有办法嵌入整个文档呢?

你有什么建议?

谢谢

【问题讨论】:

    标签: nlp document cosine-similarity bert-language-model


    【解决方案1】:

    BERT 是在成对的句子上训练的,因此它不太可能泛化更长的文本。此外,BERT 需要文本长度的二次内存,使用太长的文本可能会导致内存问题。在大多数实现中,它不接受超过 512 个子词的序列。

    让经过预训练的 Transformer 有效地处理长文本是一个活跃的研究领域,您可以查看一篇名为 DocBERT 的论文,了解人们正在尝试什么。但是,需要一些时间才能找到一个打包好的工作解决方案。

    文档嵌入还有其他方法,例如Gensim实现了doc2vec。不过,我还是会坚持使用 TF-IDF。

    TF-IDF 通常对数据预处理非常敏感。您当然需要删除停用词,在许多语言中,进行词形还原也是值得的。鉴于您的文本的特定领域,您还可以尝试通过新闻报道中经常出现的词来扩展停用词的标准列表。您可以通过检测命名实体并将其保持在一起来获得进一步的改进。

    【讨论】:

      猜你喜欢
      • 2014-02-25
      • 2019-03-14
      • 2020-08-12
      • 2015-05-31
      • 2018-02-19
      • 2011-01-01
      • 2014-02-25
      • 2018-06-30
      相关资源
      最近更新 更多