【问题标题】:Jaccard vs. Cosine similarity for measuring distance between two words (fasttext)用于测量两个单词之间距离的 Jaccard 与余弦相似度(fasttext)
【发布时间】:2021-07-21 12:52:05
【问题描述】:

从我读到的内容来看,这两个距离测量似乎是 NLP 中最常见的。我目前正在使用余弦相似度(与 gensim.fasttext 距离测量一样)。有什么理由可以代替使用 Jaccard 吗?它甚至可以仅使用单个单词作为输入(我想使用 ngrams)吗?

ft = fasttext.load_model('cc.en.300.bin')
distance = scipy.spatial.distance.cosine(ft['word1'], ft['word2'])

【问题讨论】:

  • Jaccard 应用于项目集,因此不确定如何将其应用于 2 个词向量(每个词向量具有固定的 n 个维度)。您能否更具体地说明您正在考虑的内容 - 例如,显示应用于某些数据的计算的代码?
  • 当然,我已经添加了我现在使用的东西。要使用 Jaccard,我需要使用 n-gram(我使用的模型长度为 5)。我只是不确定这是否有意义,或者余弦距离是否最适合这种情况

标签: nlp distance trigonometry similarity fasttext


【解决方案1】:

我想我可以想象在 bag-of-ngrams 上的 Jaccard 相似性对某些东西有用。您可以尝试一些实验,看看它是否与某些特定单词对单词任务的良好性能相关。

也许:错字更正?或者,当使用普通的、非 Fasttext 的词向量集时,您可以尝试通过最接近 ngram-Jaccard 的现有词的加权平均值来合成 OOV 词的向量? (在这两种情况下:其他简单的比较,如编辑距离或共享子字符串计数,可能会做得更好。)

但是,我没有注意到使用 Jaccard-over-ngrams 代替全词向量与全词向量比较的项目,也没有注意到将其作为接口/示例的一部分提供的库。

你也只是非常模糊地描述了它的潜在用途,“我想是使用 ngrams”,没有代码演示这种计算,或者这种计算的结果被用于任何用途。

因此,潜在有用性似乎是一个研究猜想,您需要通过自己的实验来探索。

【讨论】:

    猜你喜欢
    • 2017-12-12
    • 2020-02-11
    • 1970-01-01
    • 2010-10-31
    • 2014-02-25
    • 2020-04-22
    • 2017-03-19
    • 2021-02-22
    • 2018-09-27
    相关资源
    最近更新 更多