2024-06-16 11:24:03 发布
网友
我有一个嵌套字典,结构如下:
rules = {'conjugation': {'v0': {'ending': 'cer'}}, {'v1': {'ending': 'er'}}, ... }
我要做的是获取一个单词列表,找到它的所有结尾,并获取与该结尾相关联的ruleID。你知道吗
我需要以最严格的结尾为例,一个像“déplacer”这样的词需要显示v0,即使v1也适合,因为v0的结尾更长。你知道吗
有什么想法吗?谢谢
您可以使用trie对其进行评分,然后根据匹配键的长度对结果进行评分。你知道吗
首先使用后缀的反向字符串索引共轭:
In [1]: import pygtrie In [2]: trie = pygtrie.CharTrie() In [3]: trie['re'] = 'v0' In [4]: trie['rec'] = 'v1'
然后可以使用以下代码查询共轭:
In [22]: list(trie.prefixes(''.join(reversed('aimer')))) Out[22]: [('re', 'v0')] In [23]: list(trie.prefixes(''.join(reversed('balancer')))) Out[23]: [('re', 'v0'), ('rec', 'v1')]
然后您可以使用如下简单函数对结果进行评分:
In [24]: best = lambda candidates: sorted(candidates, key=lambda x: len(x[0]), reverse=True)[0] In [25]: best(trie.prefixes(''.join(reversed('balancer')))) Out[25]: ('rec', 'v1')
您可以使用trie对其进行评分,然后根据匹配键的长度对结果进行评分。你知道吗
首先使用后缀的反向字符串索引共轭:
然后可以使用以下代码查询共轭:
然后您可以使用如下简单函数对结果进行评分:
相关问题 更多 >
编程相关推荐