Сжатие и поиск огромного списка слов

У меня есть огромный список многобайтовых последовательностей (назовем их словами), которые мне нужно сохранить в файле и которые мне нужно иметь возможность быстро искать. Огромные средства: около 2 миллионов из них, каждое из которых имеет длину 10-20 байт.

Кроме того, каждое слово должно иметь значение тега , связанное с ним, чтобы я мог использовать его для ссылки на другие (внешние ) данные для каждого элемента (следовательно, словарь для проверки орфографии здесь не работает, поскольку он обеспечивает только проверку на попадание). t иметь возможность пометить каждый полный путь слова отдельным значением. Если бы я обнаружил общие суффиксы, мне пришлось бы поместить их в их собственный словарь (таблицу поиска), чтобы узел trie мог ссылаться на них, но при этом этот узел сохранил бы свой собственный конечный узел для хранения значения тега этого пути.

Фактически, это, вероятно, путь:

Вместо того, чтобы строить узлы дерева только для одиночных символов, я мог бы попытаться найти часто используемые последовательности символов, а также создать узел для них. Таким образом, отдельные узлы могут охватывать несколько символов, что, возможно, приведет к лучшему сжатию.

Итак, если это возможно, как мне на самом деле найти часто используемые подпоследовательности во всех моих фразах? тем не менее, узел будет сохранять свой собственный конечный узел для хранения значения тега этого пути.

Фактически, это, вероятно, путь:

Вместо того, чтобы строить узлы дерева только для одиночных символов, я мог бы попытаться найти часто- использованные последовательности символов, а также создать для них узел. Таким образом, отдельные узлы могут охватывать несколько символов, что, возможно, приведет к лучшему сжатию.

Итак, если это возможно, как мне на самом деле найти часто используемые подпоследовательности во всех моих фразах? тем не менее, узел будет сохранять свой собственный конечный узел для хранения значения тега этого пути.

Фактически, это, вероятно, путь:

Вместо того, чтобы строить узлы дерева только для одиночных символов, я мог бы попытаться найти часто- использованные последовательности символов, а также создать для них узел. Таким образом, отдельные узлы могут охватывать несколько символов, что, возможно, приведет к лучшему сжатию.

Итак, если это возможно, как мне на самом деле найти часто используемые подпоследовательности во всех моих фразах? Имея около 2 миллионов фраз, обычно состоящих из 1-3 слов, будет сложно выполнить все перестановки всех возможных подстрок ...

7
задан Thomas Tempelmann 19 November 2010 в 17:30
поделиться