Схематизация документа и декодирование последовательности символов

Схематизация документа и декодирование последовательности символовЦифровые документы, являющиеся входной информацией для процесса индексирования, как правило, представляют собой набор байтов в файле или на веб-сервере. На первом этапе обработки эта последовательность байтов преобразуется в линейную последовательность символов. Для английского текста, набранного в системе кодирования ASCII, такая задача тривиальна. Однако часто задачи оказываются намного сложнее. Последовательность символов может быть закодирована в одной из многих одно- или многобайтовых кодировок, например UNICODE UTF-8, а также в национальном стандарте или в стандарте, зависящем от поставщика. Сначала необходимо определить правильную кодировку. Эту проблему можно интерпретировать как задачу классификации на основе машинного обучения , но на практике ее часто решают с помощью эвристических методов, выбора пользователя или имеющихся метаданных о документе. После выявления кодировки последовательность байтов преобразуется в последовательность символов. Выбор кодировки следует зафиксировать, поскольку это дает некоторое представление о языке, на котором написан документ.

Возможно, символы нужно декодировать из двоичного представления, например из doc-файла текстового процессора Microsoft Word и/или архивных файлов наподобие zip- файлов. Следовательно, сначала необходимо определить формат документа, а затем выбрать соответствующий декодер. Даже для простых текстовых документов может понадобиться дополнительное декодирование. В XML-документах некоторые символы, такие как &атр;, следует декодировать специально, так, чтобы выражению &атр; соответствовал именно символ &, а не что-либо другое. В заключение текстовую часть документа может понадобиться отделить от другого материала, который не подвергается обработке. Это часто практикуется при обработке XML-файлов, если требуется проигнорировать разметку, а также почти всегда при обработке postscript- и PDF-файлов. Мы больше не будем возвращаться к этому вопросу в нашей книге и будем предполагать, что наши документы представляют собой списки символов. Коммерческие программы обычно поддерживают обработку широкого спектра форматов и кодировок документов, поскольку пользователи желают, чтобы программы работали с имеющимися данными. Часто они трактуют документ как текст, помещенный в какую-то программу, и совершенно не интересуются, как именно он записан на диск. Эта проблема обычно решается с помощью лицензирования программных библиотек, обрабатывающих форматы документов и кодировки.

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

Программы самостоятельного оздоровления: перестаём делать себя больными..

 

tel-icq