gpt4 book ai didi

python - 检查嵌套字典中的两个内部键是否重复并仅检索最高值

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:19 24 4
gpt4 key购买 nike

我有一个嵌套字典,如下所示:

d = {'DET':{'this':0.5, 'the':0.4}, 'NOUN': {'cat':0.8, 'can':0.2}, 'VERB': {'can':0.6, 'fly':0.3}...}

给定一个标记列表,我想检查每个标记是否在字典中并检索其值和父键。如果存在歧义,我可以为每个 token 拥有多个父键(在我的示例中,“can”是一个名词,但也是一个动词),并且我只想获取我的 token 具有最高值的父键。

到目前为止我已经:

sent = ['the', 'cat', 'can', 'fly']
for k, v in d.items():
for token in sent:
if token in d[k]:
print token, k, v[token]

这为我提供了每个标记所有可能的标签和关联值,

cat NOUN 0.8
can NOUN 0.2
can VERB 0.6
fly VERB 0.3
the DET 0.4

但在“可以”的情况下,我只想得到

can VERB 0.6

最佳答案

我会做这样的事情:

sent = ['the', 'cat', 'can', 'fly']
found = {}
for k, v in d.items():
for token in sent:
if token in v:
if v[token] > found.get(token, {}).get('val', 0):
found[token] = {'type': k, 'val': v[token]}

现在发现看起来像:

{'can': {'type': 'VERB', 'val': 0.6},
'cat': {'type': 'NOUN', 'val': 0.8},
'fly': {'type': 'VERB', 'val': 0.3},
'the': {'type': 'DET', 'val': 0.4}}

关于python - 检查嵌套字典中的两个内部键是否重复并仅检索最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35564271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com