Я использую suffixtree для извлечения совпадающей подстроки. Файл readme
содержит пример как --
>>> import SuffixTree.SubstringDict
>>> d = SubstringDict.SubstringDict()
>>> d['foobar'] = 1
>>> d['barfoo'] = 2
>>> d['forget'] = 3
>>> d['oo']
[1, 2]
Запрос возвращает значения всех строк, совпавших с oo
. Но я также не нашел способа получить значения. Например, мне нужен результат вида --
>>> d['oo']
[['foobar', 1],
['barfoo', 2]]
Этот класс содержит только методы ['__doc__', '__getitem__', '__init__', '__module__', '__setitem__', '_addToTree', '_lookupKeys', 'debug']
, и я не мог использовать их для достижения желаемого результата. Я нашел альтернативное решение для получения требуемого результата, идею которого я получил из метода _dictWordsTree()
в исходном файле. Я переписал код как --
>>> import SuffixTree.SubstringDict
>>> d = SubstringDict.SubstringDict()
>>> d['foobar'] = ['foobar', 1]
>>> d['barfoo'] = ['barfoo', 2]
>>> d['forget'] = ['forget', 3]
>>> d['fo']
[['foobar', 1], ['barfoo', 2], ['forget', 3]]
И я получил желаемый результат. Как я могу получить требуемый результат без дополнительного сохранения ключа в качестве значения (у меня большой набор данных ~ 20 МБ)? (Я искал похожие 1, 2, 3, 4, 5 темы, но мне это не помогло).