gpt4 book ai didi

Python:通过字典比较两个同义词

转载 作者:行者123 更新时间:2023-11-28 19:37:42 27 4
gpt4 key购买 nike

我有一个同义词字典:

synonym = {"this": ["this", "same"],
"all": ["all", "any", "*"],
"alluptolastyear": ["alluptolastyear", "uptolastyear"],
"dekadbefore": ["dekadbefore", "lastdekad", "formerdekad", "precedingdekad"],
"dekadafter": ["dekadafter", "nextdekad", "followingdekad"],
"yearbefore": ["yearbefore", "lastyear", "formeryear"],
"monthbefore": ["monthbefore", "lastmonth", "precedingmonth"]}

每个数组存储同义词,通过键引用。我从一个 XML 文件中读取了两个字符串,并尝试比较它们。

例如:

  • "this""same" 是等价的(同义词)
  • '"lastyear"' 和 '"formeryear"' 相等(同义词)
  • "all""nextdekad" 不同
  • 当然,每个键值都在其对应的数组中找到,因此每个键都是其数组字符串的同义词。

有人可以帮助我使用同义词字典对这些字符串进行 pythonic 比较吗?

最佳答案

试试这个:

def are_sinonims(a, b):
return a in synonym.get(b,[]) or b in synonym.get(a,[]) or any(a in synonym[k] and b in synonym[k] for k in synonym)

此外,我们可以将 a in synonym[k] and b in synonym[k] for k in synonym 重写为 a in words 和 b in words for words in synonym。 values() 这样:

def are_sinonims(a, b):
return a in synonym.get(b,[]) \
or b in synonym.get(a,[]) \
or any(a in words and b in words for words in synonym.values())

关于Python:通过字典比较两个同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854904/

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