gpt4 book ai didi

python - 我如何使用 nltk.containers.Trie?

转载 作者:行者123 更新时间:2023-11-28 23:01:37 25 4
gpt4 key购买 nike

我想使用 nltk.containers.Trie 执行简单的操作,例如将单词插入到 trie 中、检索具有给定前缀的所有单词、查找具有最多后代(即最常见的前缀)的节点、以图形方式查看 trie 等等在。我找不到任何关于使用此结构的文档。到目前为止,这是我所拥有的:

from nltk.containers import Trie
t = Trie()

我现在有一个单词列表,需要添加到 trie 中。

最佳答案

这很神秘,不是吗?它基本上是一本字典,但您还可以检查字符串是否是已知键的前缀:

>>> t = Trie()
>>> t['they'] = 15
>>> 'the' in t
True
>>> print t['the']
None

还有 find_prefix,它将尽可能多地匹配它的参数,并返回它在那里找到的值(如果有的话)加上参数的其余部分:

>>> t.find_prefix("theirs")
(None, 'irs') # Prefix "the" has no value

您可以查看 nltk/containers.py 中的源代码。神奇之处在于方法 __setitem____getitem__,它们处理 t[key] 形式的表达式。

同样值得一提的是:keys() 方法只会返回真正的条目,而不是前缀。您可以将它与方法 subtrie 一起使用以检索以给定前缀开头的所有单词:

>>> t.subtrie('th').keys()
['ey']

附言。请注意,大约六个月前,containers.py 已从 NLTK 中删除!在更新您的 nltk 发行版(您应该更新)之前,请将 nltk/containers.py 保存在不同的名称下。更好的是,只需保存 Trie 类。 (文件的其余部分已过时)。

关于python - 我如何使用 nltk.containers.Trie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10879994/

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