【发布时间】:2017-09-25 01:38:36
【问题描述】:
我正在尝试比较 2 个字符串列表的相似性,并将它们呈现在 pandas 数据框中以供检查;所以我使用 1 个列表作为索引,另一个作为列列表。然后我想计算它们的“Levenshtein 相似度”(一个比较两个词之间相似度的函数)。
我试图通过使用应用映射来实现这一点,它将进入每个单元格,并将单元格索引与单元格列进行比较。但我怎么能这样做呢?或者也许会有一些更简单的方法?
things = ['car', 'bike', 'sidewalk', 'eatery']
action = ['walking', 'caring', 'biking', 'eating']
matrix = pd.DataFrame(index = things, columns = action)
def lev(x):
x = Levenshtein.distance(x.index, x.column)
matrix.applymap(lev)
到目前为止,我使用了以下(下),但我发现它笨拙且缓慢
matrix = pd.DataFrame(data = [action for i in things], index = things, columns = action)
for i, values in matrix.iterrows():
for j, value in enumerate(values):
matrix.ix[i,j] = Levenshtein.distance(i, value)
【问题讨论】: