Python 如何在与单词列表进行比较时计算字符串中存在的相似单词的数量?

Python 如何在与单词列表进行比较时计算字符串中存在的相似单词的数量?,python,algorithm,machine-learning,nlp,Python,Algorithm,Machine Learning,Nlp,假设我们有一个单词列表 L1={好、棒、坏、超级、玩具、山}和a string S=“这是一个好人写的很棒的台词。”。 当我们映射这两个词时,我们需要找到相似单词的数量。 在这种情况下,它是2(很好,很棒) 请帮助我如何用python解决这个问题。 PS:我试图根据列表和字符串中单词的相似性为机器学习子任务创建一个二进制响应变量, 我对自然语言处理还不熟悉,有什么函数可以轻松做到这一点吗 附言: 我尝试首先拆分字符串并将单个单词存储在一个列表中,然后迭代它并与原始单词列表进行比较,并在找到匹配项

假设我们有一个单词列表 L1={好、棒、坏、超级、玩具、山}和a string S=“这是一个好人写的很棒的台词。”。 当我们映射这两个词时,我们需要找到相似单词的数量。 在这种情况下,它是2(很好,很棒) 请帮助我如何用python解决这个问题。 PS:我试图根据列表和字符串中单词的相似性为机器学习子任务创建一个二进制响应变量, 我对自然语言处理还不熟悉,有什么函数可以轻松做到这一点吗

附言: 我尝试首先拆分字符串并将单个单词存储在一个列表中,然后迭代它并与原始单词列表进行比较,并在找到匹配项时增加计数器

在NLP中是否有任何直接函数可以执行此操作

for x in L1:
    if x in S:
        print(x)
        counter += 1
首先我们遍历L1中的每个单词,然后使用
in
操作符检查是否在S中找到这些单词。如果是,我们打印单词并将计数器递增1

注意:这只检查它是否在S中,而不管有多少实例

尝试以下操作:

from collections import Counter

words = set(['good', 'awesome', 'bad', 'super', 'toy', 'hill'])
latest = "this is an awesome line written by a good guy."
latest_counted = Counter(latest.strip().split())
common_words = words.intersection(latest_counted)
count_common = sum(latest_counted[wrd] for wrd in common_words)
print('There are %i words common (including duplicates).' % count_common)

同一单词的多次匹配将增加计数。

在我的项目中@depperm@AmireddyTharunreddy为了这个特殊的任务。你做过什么调查吗?你自己试过什么吗?@Mitch我试过先拆分字符串并存储在一个列表中,然后迭代它并与原始列表进行比较,找到匹配项后增加计数器。我的问题是如何降低复杂性,或者这些是完成任务的直接功能吗?如果你能给出一行解释,说明你在做什么以及为什么要做,这将对OP有所帮助。