python - NLP - 查找相似/语音单词并计算段落中的分数

标签 python python-3.x nlp cosine-similarity

我正在开发一个简单的 NLP 项目,其中我们给出了一组单词,并从文本中查找相似/语音相似的单词。我找到了很多算法,但没有找到示例应用程序。

它还应该通过比较关键字和找到的单词来给出相似度分数。

谁能帮帮我吗?

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

    cw = Counter(word)
    sw = set(cw)
    lw = sqrt(sum(c*c for c in cw.values()))
    return cw, sw, lw

def cosdis(v1, v2):
    common = v1[1].intersection(v2[1])
    return sum(v1[0][ch]*v2[0][ch] for ch in common)/v1[2]/v2[2]

list_A = ['e-commerce', 'ecomme', 'e-commercy', 'ecomacy', 'E-Commerce']
list_B = ['E-Commerce']

for word in list_A:
    for key in list_B:
            res = cosdis(word2vec(word), word2vec(key))
            print(res)

此代码仅进行逐字比较。

谁能帮帮我吗?

最佳答案

我认为您指的是类似 API 的东西,它可以首先将单词转换为 IPA 符号(一种注音符号),然后比较 国际音标符号。

from collections import Counter
from math import sqrt
import eng_to_ipa as ipa

def word2vec(word):
    cw = Counter(word)
    sw = set(cw)
    lw = sqrt(sum(c*c for c in cw.values()))
    return cw, sw, lw

def cosdis(v1, v2):
    common = v1[1].intersection(v2[1])
    return sum(v1[0][ch]*v2[0][ch] for ch in common)/v1[2]/v2[2]

list_A = ['e-commerce', 'ecomme', 'e-commercy', 'ecomacy', 'E-Commerce']
list_B = ['E-Commerce']

IPA_list_a = []
IPA_list_b = []
for each in list_A:
    IPA_list_a.append(ipa.convert(each))
for each in list_B:
    IPA_list_b.append(ipa.convert(each))

for word in IPA_list_a:
    for key in IPA_list_b:
            res = cosdis(word2vec(word), word2vec(key))
            print(res)

看看这个:[https://github.com/mphilli/English-to-IPA][1]

>>> import eng_to_ipa as ipa
>>> ipa.convert("The quick brown fox jumped over the lazy dog.")
'ðə kwɪk braʊn fɑks ʤəmpt ˈoʊvər ðə ˈleɪzi dɔg.'

示例是从上面的 github 链接创建的。

关于python - NLP - 查找相似/语音单词并计算段落中的分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60427951/

相关文章:

将缩写词提取为其原始词的算法

python - Matlab 到 Python numpy 索引和乘法问题

python - 多处理队列存储列表列表

python-3.x - 如何构建一个与 autograd 兼容的 Pytorch 模块,可以像图像一样调整张量的大小?

mysql - 如何使用 python 与 MySQL 服务器上的其他客户端连接进行通信?

python - Spacy - 保存自定义管道

python - 如何构建用于分类的 LSTM 神经网络

python - metropolis hastings 或 MonteCarlo 方法相对于简单网格搜索的优势?

python - 遍历字典并获取键

python - numpy 数组列表到坐标点列表的转换