1

Python辞書を模倣するこのフレンドリーなAPIを持つサフィックスツリーの実装を探しています:

import SubstringDict
d = SubstringDict.SubstringDict()
d['foobar'] = 1  
d['barfoo'] = 2
d['forget'] = 3
d['arfbag'] = 4
d['a']
>>> [1, 2, 4]
d['arf']
>>> [2, 4]
d['oo']
>>> [1, 2]
d['food']
>>> []

この例は、次の Web サイトから引用しました: Python のサフィックス ツリー 「Web サイトの実装を使用しないのはなぜですか?」どうやら Python バインディングでメモリ リークが発生しているようなので、大きな (120 万文字列、約 200 MB) データ セットでは使用できません。

次の API を使用した C++ 実装 (自分で Python バインディングを作成できます) にも満足しています。

SuffixTree<int> sf = SuffixTrie<int>();
sf['foobar'] = 1;
sf['barfoo'] = 2;
sf['forget'] = 3;

assetTrue(sf.find('a')==std::vector<int>({1,2}))

ヒントはありますか?

4

0 に答える 0