Полнотекстовый поиск

Раздел создан скорее как определенные теоретические рассуждения, "пища для ума".

Ситуация проста. Невозможно все на свете разбирать на составляющие фракции и заставлять пользователей работать именно с ними. Более того, в ряде случаев это кажется невозможным и ненужным, например, для многостраничных документов. Но, если подумать еще чуток, то окажется, что с такой ситуацией мы сталкиваемся постоянно. Это поиск документа на диске, в котором упомянуты определенные слова (забывают пользователи, как год назад назвали и куда сложили). Это нахождение нужных законов по тем же упоминаниям и т.д., и т.п.

Приведенные примеры стыкуются с вопросом работы документных баз данных – достаточно современного (скорее, современного всегда) и востребованного направления.

Но на вершине пирамиды стоит Интернет. Ведь и там, в поисковой системе, мы пытаемся найти страницу (текст, документ), которая содержит указанные нами слова.

Механизмы работы специализированных баз данных с петабайтами данных – тайна за семью печатями того же Яндекс и Google. Но кое о чем можно порассуждать. Ведь и поиск на уровне сайта вполне можно организовать своими силами.

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

Структура документов различается не слишком существенно, а есть лишь разные элементы, как по сути, так и по значимости. Поэтому, для полного упрощения берем сплошной неформатированный художественный текст. (Но помним о сказанном выше, а при необходимости – возвращаемся к нему.)

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

Текст можно очистить от

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

В итоге получится перечень слов, содержавшихся в тексте в порядке их следования по принципу: одно слово – один абзац. Такой материал можно элементарно экспортировать в текстовый формат, а затем импортировать в таблицу БД.

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

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

...

числа

словоформы

повторы

предлоги

...


Copyright © 1993–2020 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.