python - 将字符串列表转换为数值向量以计算汉明距离
问题描述
我有一个独特单词的列表。我必须计算两个字符串列表之间的汉明距离。假设字符串列表是:
a = ['a' , 'b', 'c' ]
b = ['b' , 'a', 'd' ]
并让唯一单词列表为:
u = ['a', 'b', 'c', 'd', 'e']
我需要从中创建两个列表a
,b
它们的长度与u
. 假设列表是va
和vb
。va
和的每个元素vb
要么是0
要么1
。1
如果相应的元素u
存在于a
or中b
,则将是0
。例如,
va = [1, 1, 1, 0, 0]
vb = [1, 1, 0, 1, 0]
然后,我将计算va
和vb
使用 sklearn 的成对距离度量之间的汉明距离。从和计算va
和的最有效方法是什么?vb
a
b
u
解决方案
尝试这个:
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]
推荐阅读
- python - 元组不能传递给pycharm中的函数
- python - 使用每列中的所有字符串数据旋转熊猫数据框
- mongodb - 将 IsA 关系转换为 NoSQL
- javascript - Wix上的教会在线平台倒数计时器
- web - 在 Nike.com 中获取新产品的 API 端点
- python-3.x - Pandas 在每个 groupby 组的第一个非 NaN 值之后选择行
- ruby - 容器启动后在 docker 中运行多个命令
- javascript - HTML&JS 如果选择了我的值,打开 textarea
- python - SymPy 中的 LaTeX 输出
- python - PyMC3:多元正态下的回归