Как вы на самом деле применяете суффиксные массивы к любому виду текста?

Я читаю о Suffix Arrays и код для его создания прост. Но все ресурсы, которые я нашел, обычно используют тривиальный пример текста, который обычно banana, чтобы объяснить концепцию.
Таким образом, хотя текст примера тривиален и массив суффиксов представлен (a,ana,anana,banana,na,nana) как я понимаю, это можно применить к любому виду текста.
Но я не понимаю, как в тексте есть пробелы, символы новой строки, знаки пунктуации и т. Д.
Так как же это относится к любому виду текста?

1 ответ

Решение

Для более длинной строки ваш суффиксный массив будет выглядеть так:

[01] banana split, yum!
[02] anana split, yum!
[03] nana split, yum!
[04] ana split, yum!
[05] na split, yum!
[06] a split, yum!
[07]  split, yum!
[08] split, yum!
[09] plit, yum!
[10] lit, yum!
[11] it, yum!
[12] t, yum!
[13] , yum!
[14]  yum!
[15] yum!
[16] um!
[17] m!
[18] !

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

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

[01] if it is true it is true
[02] it is true it is true
[03] is true it is true
[04] true it is true
[05] it is true
[06] is true
[07] true

Хотя это не суффиксный массив, отсортированный по алфавиту, можно найти повторяющиеся шаблоны слов:

[01] if it is true it is true
[06] is true
[03] is true it is true
[05] it is true
[02] it is true it is true
[07] true
[04] true it is true

Сравнивая каждую строку со строкой над ней, пока символы совпадают, мы обнаруживаем, что слова "верно" и "верно" являются повторяющимися образцами слов.

Этот метод основан на общей проблеме исследования ДНК, которая называется самой длинной проблемой повторяющихся подстрок: http://en.wikipedia.org/wiki/Longest_repeated_substring_problem

Конечно, это возникает в других областях, чем генетическая наука.

Другие вопросы по тегам