【发布时间】:2016-12-14 23:55:45
【问题描述】:
我有一个字典,其中包含具有大量不同键和值的条目。
一些由空格分隔的多标记字符串,一些没有空格的单标记字符串。
有些是完全一致的,一个token的key,一个token的value:
"'Apl'": "'Apple'",
有些有单个令牌键和多个令牌值:
"'Blpepr'": "'Bell Pepper'",
有些有多个令牌键和单个令牌值:
"'Grn Bn'": "'Greenbean'",
还有一些有多个令牌键和多个令牌值(两边并不总是相同的数字!):
"'Swt Ptto'": "'Sweet Potato'",
我正在尝试创建一个字典,将键:值对尽可能接近地分配到它们的对应侧,这样至少我可以得到:
"'Apl'": "'Apple'",
"'Swt'": "'Sweet'",
"'Ptto'": "'Potato'",
我认为带有不匹配的标记数量的键和值是失败的原因,因为在没有空格的情况下很难确定标记的开始和结束位置。但至少对于以空格分隔的标记,我们知道标记的开始和结束位置,所以我希望结果与上述类似。
为了只检索那些带有空格的键,我对我的字典做了以下操作:
for key, value in dictionary1.items():
if " " in key and value:
print(key + ":" + value)
有什么想法吗?
【问题讨论】:
-
您可能非常轻松地参与了分配键值对的部分。为了训练您的系统自行识别接近度,您必须使用训练数据制作神经网络。简单但不太精确的方法(我认为你想要)是按顺序检查每个字符的出现次数,并将值映射到最大计数
-
我认为您应该考虑使用单词邻近算法。看看one answer implementation
标签: python dictionary key keyvaluepair