0

Какой алгоритм используется веб-браузерами и читателями PDF для поиска данного слова в огромном текстовом документе? Чтобы прояснить, когда я читаю электронную книгу и нажимаю Ctrl-F и вводя поисковый запрос, он находит соответствующие слова довольно быстро. Какой алгоритм используется и какая структура данных используется для хранения всего текста книги/сайта?Поиск слов на PDF/сайте

+0

Ваш вопрос очень широк. Вероятно, вы захотите увидеть [алгоритм поиска строк] (https://en.wikipedia.org/wiki/String_searching_algorithm) для получения информации о поиске текстовых документов, хранящихся в памяти. Ответы на ваши вопросы будут зависеть от того, что вы считаете «огромным». В его нынешнем виде мы не можем ответить на ваш вопрос. Вам нужно будет провести некоторое исследование методов хранения документов или задать более конкретный вопрос. –

ответ

1

Текст, вероятно, является простой строкой, а сам поиск, вероятно, является KMP или Boyer-Moore. Обычный текст обычно не такой большой, и поисковые запросы в этих случаях имеют «человеческую скорость» (т.е. медленную, нечастую), поэтому индексы часто не используются, за исключением случаев, когда ожидаются многие поисковые запросы по одному и тому же тексту (как в тексте базы данных). Например, даже более крупная, чем средняя книга, такая как Библия короля Джеймса, имеет менее 4 миллионов писем, что в наши дни не так уж и много для компьютера. Для больших текстов поиск иногда занимает заметное время.

Для больших текстов (возможно, генома, но обычно их обычно ищут, например, с помощью FASTA или BLAST), вы можете использовать FM-индекс или сжатый массив суффиксов (обычный массив суффикса возможен, но больше, чем исходный текст, поэтому, вероятно, слишком большой).

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

Смежные вопросы