我正在寻找提高字符串匹配(相似性)中TF-IDF加权方案准确性的方法。主要问题是TF-IDF对字符串的印刷错误很敏感,并且大多数大型数据集都有印刷错误。我意识到编辑距离的变体(基于字符的相似性度量标准--- levienshtein,仿射-gas,Jaro和Jaro-winkler)适用于计算存在印刷错误的字符串之间的相似度,但不适用于单词顺序混乱的情况。字符串。
因此,我想使用编辑距离校正功能来提高TF-IDF的准确性。
任何有关如何应对这一挑战的想法都将受到高度赞赏。
提前致谢。
我正在尝试使用 xlrd 从 XML 文件创建数据矩阵。下面是 XML 数据和我的尝试:

import xlrd
file_loc="C:\\Users\\xxxx\\Documents\\test1.xlsx"
wkb=xlrd.open_workbook(file_loc)
sheet=wkb.sheet_by_index(0)
_maxtrix=[]
for col in range (sheet.ncols):
for row in range (sheet.nrows):
_matrix.append(sheet.cell_value(row,col))
print _matrix
Run Code Online (Sandbox Code Playgroud)
我的输出:
[1.0, 2.0, 3.0, 4.0, 2.0, 3.0, 4.0, 5.0, 3.0, 4.0, 5.0, 6.0, 4.0, 5.0, 6.0, 7.0]
Run Code Online (Sandbox Code Playgroud)
期望的输出:
[[1,2,3,4],
[2,3,4,5],
[3,4,5,6],
[4,5,6,7]]
Run Code Online (Sandbox Code Playgroud)
关于如何获得所需的输出有什么想法吗?
我想知道是否有任何科学解释为什么像 CBOW 这样的 word2vec 模型在小数据上表现不佳。这是我测试过的;
data=[[context1], [context2], [context3]......[contextn]]
model=trained word2vec model
model.most_similar('word')
output=[word not in even in top-10]
Run Code Online (Sandbox Code Playgroud)
我用 10 倍的数据集重新训练了模型。
model.most_similar(word)
output=[word in the 10 most similar words]
Run Code Online (Sandbox Code Playgroud)
随着数据大小的增加,除了字数随着数据的增加而增加之外,还有什么科学的理由可以解释性能的提高吗?
我正在尝试将与查询项相关的项列表分组.下面是问题的一个例子和我的尝试:
>>> _list=[[1,2,3],[2,3,4]]
>>> querylist=[1,2,4]
>>> relvant=[]
>>> for x in querylist:
for y in _list:
if x in y:
relvant.append(y)
Run Code Online (Sandbox Code Playgroud)
我的输出:
>>> relvant
[[1, 2, 3], [1, 2, 3], [2, 3, 4], [2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)
期望的输出:
[[[1, 2, 3]], [[1, 2, 3], [2, 3, 4]],[[2, 3, 4]]]
Run Code Online (Sandbox Code Playgroud)
问题是在查询项的每个循环之后,我希望将相关列表分组,但我的尝试不是这种情况.
谢谢你的建议.