首页 > 解决方案 > 将字符串列表转换为数值向量以计算汉明距离

问题描述

我有一个独特单词的列表。我必须计算两个字符串列表之间的汉明距离。假设字符串列表是:

a = ['a' , 'b', 'c' ]
b = ['b' , 'a', 'd' ]

并让唯一单词列表为:

u = ['a', 'b', 'c', 'd', 'e']

我需要从中创建两个列表ab它们的长度与u. 假设列表是vavbva和的每个元素vb要么是0要么11如果相应的元素u存在于aor中b,则将是0。例如,

va = [1, 1, 1, 0, 0]
vb = [1, 1, 0, 1, 0]

然后,我将计算vavb使用 sklearn 的成对距离度量之间的汉明距离。从和计算va和的最有效方法是什么?vbabu

标签: python

解决方案


尝试这个:

sa=set(a)
sb=set(b)    
va=list(map(lambda x: 1 if x in sa else 0, u))
vb=list(map(lambda x: 1 if x in sb else 0, u))

>>> print(va)
[1, 1, 1, 0, 0]
>>> print(vb)
[1, 1, 0, 1, 0]

推荐阅读