На этапе графематического анализа исследуются статистические законы комбинации знаков алфавита (сочетаемость букв), а также выделяются слова и словосочетания, аббревиатуры, знаки препинания и другие устоявшиеся структуры. Основная цель блока графематического анализа – получить выборку полных словоформ из массива текстов БД. Единицей графематического анализа является цепочка символов, выделенная с двух сторон пробелами. Выделенная цепочка символов подвергается последовательной обработке эвристическими правилами: отсечь знаки пунктуации, проверить присутствие гласных внутри цепочки, чередование верхнего и нижнего регистров и т.д. В зависимости от результатов обработки полученная цепочка символов направляется в один из трех потоков данных:
- цифровые и символьные комплексы (‘кг’, ‘ст.’, ’12.01.99’)
- аббревиатуры - названия государств, организаций, предприятий
- полные словоформы
Все выделенные единицы проходят проверку в соответствующих словарях (словаре словоформ, словаре аббревиатур, словаре сокращений и т.д.). Однако, случаи, когда все 100% слов текста представлены в используемых системой словарях, крайне редки. В тексте могут встречаться неологизмы, устаревшие слова, искаженные слова. В случаях, когда встреченное системой слово отсутствует в используемых ей словарях, система строит гипотезы о том, является ли данное слово искаженным.
Графематически, слова имеют неслучайную структуру – они построены из определенных полиграмм. Состав и количество полиграмм определяются рядом факторов, важнейшими из которых являются: ономастическая система данного языка, правила орфографии, принятая система обозначения звуков на письме.
Диагностика искажений в словах основывается на предположении, что среди полиграмм, входящих в искаженное слово, есть такая, которая не вложится в т.н. стохастическое дерево, и её частота будет достаточно низка. Стохастическое дерево (дерево вероятностей) – это граф, в узлах которого записаны элементы моделируемого объекта, а в дугах – вероятности перехода от предыдущей цепочки узлов к следующему узлу. В нашем случае, моделируемый объект – это текст на естественном языке. Соответственно, в узлах графа будут находиться графемы, а в дугах – вероятность следования данной графемы за предыдущей частью полиграммы.
Алгоритмы диагностики искажений.
Слово делится на полиграммы, и каждая из них вкладывается в стохастическое дерево. Одновременно с вложением в дерево, полиграмма получает вероятностную оценку на основании частот, записанных в дугах дерева. Если данной полиграммы в дереве нет, и её частота ниже заданного порога, то в слове фиксируется искажение. Численная оценка правильности слова складывается из оценок составляющих его полиграмм.
При наличии в слове искажения, система может попытаться его исправить (спелл-чеккеры). При этом, параметры работы корректирующего автомата не закреплены в начале работы системы. С каждым новым проанализированным словом автомат ищет варианты прообраза, минимально отличающегося от искаженного слова и имеющего максимальное значение правильности.
Если диагностический автомат обнаружил в слове несколько искажений, то обрабатываются самые грубые из ошибок. В случае неудачи, значение параметров начинает плавно меняться и становиться мягче: увеличивается максимально допустимое количество искажений, снижается порог правильности, позволяется обработка менее грубых ошибок.