python - 在Python中比较表中的文本

标签 python string nlp compare nltk

我想比较 python 列表中的文本。 例如

Url         | text
            |
www.xyz.com | " hello bha njik **bhavd bhavd** bjavd manhbd kdkndsik wkjdk"
            | 
www.abc.com | "bhavye jsbsdv sjbs jcsbjd adjbsd jdfhjdb jdshbjf jdsbjf"
            |
www.lokj.com| "bsjgad adhuad jadshjasd kdashda kdajikd kdfsj **bhavd bhavd** "

现在我想将第一个文本与其他行进行比较,以了解文本中有多少单词相似。 并逐渐进入第二行和以下行,依此类推......

我应该使用什么方法以及我应该使用什么数据结构?

最佳答案

对于 python3

正如评论中详细说明的,我们生成每个可能的对,创建集合以确保单词的唯一性,并且我们简单地计算每对的唯一常见单词的数量。如果您的文本列表结构有点不同,这可能需要进行一些调整

import itertools

my_list = ["a text a", "an other text b", "a last text c and so on"]

def simil(text_a, text_b):
    # returns the number of common unique words betwene two texts 
    return len(set(text_a.split()).intersection(set(text_b.split())))

results = []
# for each unique combination of texts
for pair in itertools.combinations(my_list, r=2):
    results.append(simil(*pair))

print(result)

旁注:根据您想要执行的操作,您可能需要查看诸如 TFIDF ( A simple tutorial ) 等文本/文档相似性算法,或许多其他算法...

关于python - 在Python中比较表中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44799034/

相关文章:

python - 值错误 : Could not interpret input 'index' when using index with seaborn lineplot

python - 如何清除日志文件并重新写入?

c# - 在 For 循环 C# 中将 int 附加到字符串或文本框名称的末尾

c# - 字符串到 boolean 的内联转换

python - 如何使用 TfIdfVectorizer 查找重要单词?

python - 绘制带有 NP block 的扁平 NLTK 解析树

python - 从 "YYYYMMDD"格式的字符串计算第二天

C# - 计算字符串列表中周围字符的总和

python - PyTorch RNN 使用 `batch_first=False` 时效率更高?

python - 检查用户输入的文件名的可用性