かなり謎めいたですね。これは基本的に辞書ですが、文字列が既知のキーのプレフィックスであるかどうかをさらに確認できます。
>>> 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']
PS。containers.py
約6か月前にNLTKから削除されたことに注意してください。nltkディストリビューションを更新する前に(必要です)、nltk/containers.py
別の名前で保存してください。Trie
さらに良いことに、クラスを保存するだけです。(ファイルの残りの部分は廃止されました)。