如何在python中高效地跨数百万条记录进行文本搜索和相似性计算
我有两个表,每个表包含200万条记录。其中一个具有项目名称和其他项目描述以及其他属性。我必须将表1中的每个项目与表2中的每个描述进行匹配,以找到最大的相似性匹配。所以基本上,对于200万项中的每一项,我必须扫描另一个表以找到最佳匹配项。这就需要200万*200万次计算!如何在python中高效地完成这项工作?就目前情况而言,需要数年时间来计算 现在我采用的方法是正则表达式搜索,将每个项目名称拆分为列表中的单词,然后检查单词是否包含在描述中。如果是,则将匹配计数增加1,并使用该值计算相似度 因此,我的问题是:如何在python中高效地跨数百万条记录进行文本搜索和相似性计算,python,performance,full-text-search,similarity,processing-efficiency,Python,Performance,Full Text Search,Similarity,Processing Efficiency,我有两个表,每个表包含200万条记录。其中一个具有项目名称和其他项目描述以及其他属性。我必须将表1中的每个项目与表2中的每个描述进行匹配,以找到最大的相似性匹配。所以基本上,对于200万项中的每一项,我必须扫描另一个表以找到最佳匹配项。这就需要200万*200万次计算!如何在python中高效地完成这项工作?就目前情况而言,需要数年时间来计算 现在我采用的方法是正则表达式搜索,将每个项目名称拆分为列表中的单词,然后检查单词是否包含在描述中。如果是,则将匹配计数增加1,并使用该值计算相似度 因此,
您也可以使用NLTK
from nltk import *
reference = 'DET NN VB DET JJ NN NN IN DET NN'.split()
test = 'DET VB VB DET NN NN NN IN DET NN'.split()
print(accuracy(reference, test))
print edit_distance("rain", "shine")
您也可以使用NLTK
from nltk import *
reference = 'DET NN VB DET JJ NN NN IN DET NN'.split()
test = 'DET VB VB DET NN NN NN IN DET NN'.split()
print(accuracy(reference, test))
print edit_distance("rain", "shine")
技术上什么是表?我从mongodb获取数据并将其放入python dataframe。技术上什么是表?我从mongodb获取数据并将其放入python dataframe。我尝试了这个。但正如我所说,另一端有描述,它并没有给我很好的相似性。我试过这个。但正如我所说,另一端有描述,它并没有给我很好的相似性。精度函数要求引用和测试长度相同。我没有相同长度的测试字符串。精度函数要求引用和测试的长度相同。我没有相同长度的测试字符串
from nltk import *
reference = 'DET NN VB DET JJ NN NN IN DET NN'.split()
test = 'DET VB VB DET NN NN NN IN DET NN'.split()
print(accuracy(reference, test))
print edit_distance("rain", "shine")