我有一个同义词词典:
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"]}
Run Code Online (Sandbox Code Playgroud)
每个数组都存储通过键引用的同义词.我从XML文件中读取了两个字符串,并尝试比较它们.
例如:
"this"并且"same"是相等的(同义词)"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)
Run Code Online (Sandbox Code Playgroud)
此外,我们可以重写部分a in synonym[k] and b in synonym[k] for k in synonym,以a in words and 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())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |