列表中两个词之间的余弦相似度

用户P

我正在定义一个函数,该函数接收单词列表并返回列表中单词之间的信息(彼此之间具有非零余弦相似性)以及相关信息。

谁能帮我这个忙。我在想,如果我可以得到一个预先计算的word2vec矢量文件,那将非常有帮助,但互联网上没有。

博菲

您可以定义这两个功能

def word2vec(word):
    from collections import Counter
    from math import sqrt

    # count the characters in word
    cw = Counter(word)
    # precomputes a set of the different characters
    sw = set(cw)
    # precomputes the "length" of the word vector
    lw = sqrt(sum(c*c for c in cw.values()))

    # return a tuple
    return cw, sw, lw

def cosdis(v1, v2):
    # which characters are common to the two words?
    common = v1[1].intersection(v2[1])
    # by definition of cosine distance we have
    return sum(v1[0][ch]*v2[0][ch] for ch in common)/v1[2]/v2[2]

并在此示例中使用它们

>>> a = 'safasfeqefscwaeeafweeaeawaw'
>>> b = 'tsafdstrdfadsdfdswdfafdwaed'
>>> c = 'optykop;lvhopijresokpghwji7'
>>> 
>>> va = word2vec(a)
>>> vb = word2vec(b)
>>> vc = word2vec(c)
>>> 
>>> print cosdis(va,vb)
0.551843662321
>>> print cosdis(vb,vc)
0.113746579656
>>> print cosdis(vc,va)
0.153494378078

顺便说一句,word2vec您在标签中提到的是完全不同的业务,它要求我们中的一个人花费大量时间和精力进行研究,并猜测是什么,我不是那个人...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何计算两个张量之间的余弦相似度?

计算Keras中两个张量之间的余弦相似度

计算 lambda 层中两个张量向量之间的余弦相似度?

计算R中两个单词的余弦相似度?

如何编写一个返回两个文档之间余弦相似度的方法

Python:两个大型numpy数组之间的余弦相似度

如何计算两个向量的余弦相似度?

两个大文件的平行余弦相似度

合并两个 CountVectorizers 并计算余弦相似度

为什么gensim.word2vec中两个词袋之间的相似度以此方式计算?

如何计算PySpark中两个向量的余弦相似度?

如何计算JavaScript中两个列表的相似度

如何比较两个大文本之间的度量-余弦,Jaccard相似度,Sim_MinEdit(Sim_String)和Sim_Simple在Python中

计算两个相同形状矩阵的行之间的余弦相似度的最快方法是什么

Bigquery中的数组对之间的余弦相似度

查找两个字符串(名称)之间的余弦相似度

计算两个数组之间的余弦相似度的正确方法?

如何计算两个字符串向量之间的余弦相似度

最小化两个张量的余弦相似度并输出一个标量。火炬

有什么办法,以加快在Java中两个双阵列之间的余弦相似的这个计算?

我有两个公式计算“余弦相似度”,有什么区别?

如何调试这段代码计算两个unicode文件的余弦相似度?

Python:计算Pandas中两列之间的tf-idf余弦相似度时出现MemoryError

计算两个向量之间的相似度

仅获取两个相似度最高的列表

numpy ndarrays中匹配行之间的余弦相似度

匹配两个列表之间的相似元素

如何从词在Java中两个列表连接

提高两个列表中模糊匹配词的速度