Выделение слов из документа
При первичной обработке массива документов, среди которых будет производиться поиск, стоит задача выделения из данного документа значимых слов. С этой задачей связано несколько проблем:
- Различные языки и алфавиты. Для большинства естественных языков задача выделения слов из текста тривиальна: символы алфавита разбиваются на значимые символы (буквы, цифры) и символы-разделители(пробелы, знаки препинания и др.) и при сканировании текста документа разделители отделяют слова друг от друга. Однако особым образом должны обрабатываться: переносы слов, слова написанные через дефис, аббревиатуры пишущиеся через точки, номера, даты и числа, номера телефонов, цены и другие значимые данные особых форматов. Обычно в таких случаях такое слово порождает множество слов. Так, например, встретив последовательность М15–456С, имеет смысл считать, что в тексте встретились как слова М15 и 456С по отдельности, так и слово М15–456С целиком. Также имеет смысл хранить и наиболее часто используемые форматы различных величин.
- Кодировки текстов. Существует большое количество различных способов кодирования символов текста. Для кириллицы чаще всего используются форматы win-1251, koi8-r, а также DOS и Mac. Это кодировки, в которых символ представляется одним байтом информации. Существует универсальная кодировка Unicode, в которой каждый символ задается двумя байтами, что позволяет закодировать символы наиболее используемых алфавитов естественных языков мира. В случаях, когда кодировку нельзя получить из внешних атрибутов текста, ее приходится автоматически определять по тексту документа. Для этого или используется статистические данные о типичном распределении встречаемости различных символов в тексте данного естественного языка или же используется словарный метод (возможен, так как символы-разделители кодируются одинаково).
- Различные форматы документов. Часто документы создаются в форматах для печати или интерактивного представления пользователю. Это может быть закрытый или устаревший формат – в этом случае проблема заключается в недостатке информации о формате и документ обрабатывается с возможной потерей данных. Графические форматы верстки, такие как Post Script? или PDF требуют при обработке моделировать их представление, с целью определения последовательности составляющих их символов, а затем и слов. Современные web-страницы содержат динамический код на алгоритмическом языке, которые могут формировать часть текста на странице, поэтому от поисковой машины требуется простейшая интерпретация этого кода. Система, также, должна быть устойчива к возможным ошибкам в формате документов. Чаще всего ошибочно отформатированными бывают HTML-документы.
- Морфологический Анализ. Игнорирование изменения слова, зависимого от рода, склонения, падежа, положительно сказывается на качестве поиска и повышает его полноту. При использовании такого подхода каждое встреченное слово надо приводить к основе слова или к начальной форме слова.