В современном мире слово приобрело важнейшее значение. На практике, для программиста это выливается в обработку контента, выделение нужной информации из массива данных, сравнения текстов и т.д.
Целью данного обзора является морфология и задачи, которые решаются с ее помощью.
Прежде всего, это задачи распознавания значимых и ключевых слов, а также слов запроса. Очевидно, что сферы применения – от тематического парсинга до СЕО. В этот же круг задач входит и организация поиска – необходимо учитывать все возможные словоформы для корректного и полного поиска. Для всего этого спектра задач нужна морфология. Например, мы хотим «отслеживать» все формы слова «интерфейс». Конечно, для малого количества слов можно ограничится регулярным выражением, последовательно перебирающим все окончания слова: «интерфейсы\интерфейсом, интерфейсу» и т.д. Однако, сложность экспоненциально возрастает с ростом количества слов. И здесь о стандартных средствах обработки символов, вроде регулярных выражений, нужно забыть.
В этом случае нам нужен аппарат для выделения нормальной формы слова и всех ее возможных форм. То есть – морфологические модули.
Выделение парадигмы, то есть всех возможных вариантов заданной словоформы, является одной из основных функций морфологических модулей. Большинство из них, такие, как лемматизеры от рабочей группы АОТ, RuMor, myStem используют словари и стеммеры.
Помимо ключевых и значимых слов, морфология используется при построении таких средств, как синонимайзеры. Синонимайзеры являются главным инструментов рерайтинга, и помогают быстрее изменять оригинальный текст. Используя морфологические модули, возможно создавать гибкое изменение структуры текста, его синтаксическую форму, а также вставлять заменяемое слово в соответствующем оригинальному падеже.
Существует довольно много морфологических модулей. Удобно работать с морфологией в php – большое количество модулей и документации под них.Например, от компании АОТ или Solarix, которые представляют свои библиотеки и морфологические и другие модули для разработчиков (описание - на официальном сайте АОТ.). Большинство проектов АОТ бесплатны, Solarix – частично или условно бесплатны. Есть и коммерческие проекты, такие, как продукты компании «Информатик». Также существует подробная пользовательская инструкция использования морфологических модулей с примерами на языке C# для .NET. Удобно работать с морфологией в php – большое количество модулей и документации под них. Также существует большое количество самописных морфологических модулей, на основе словарей реализующих стеммер.
|