Узел Определение языка
Данный узел или опция доступны, только если они включены в лицензии PolyAnalyst Server.

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

Автоматическое определение языка

Возможность определять язык текстового документа может понадобиться в различных сферах деятельности. Например, представьте аналитика, работающего над данными колл-центра международной организации. Организация сохраняет данные о всех транзакциях (случаях взаимодействия) между клиентом и сотрудником колл-центра. Одним из атрибутов транзакции является текст диалога между двумя людьми. Текст этого диалога представляет наибольший интерес при анализе данных колл-центра. Учитывая то, что эта текстовая колонка содержит значения на различных языках, можно предположить, что ориентированный на английский язык анализ неанглийского текста даст плохие, малополезные результаты. Аналитик может использовать узел Определение языка, чтобы в начале определить язык каждой транзакции, а затем создать выборку записей на определенном языке (например, при помощи узла Фильтрация строк), и проанализировать только это подмножество. Таким образом он получит более точные и полезные результаты.

В системе PolyAnalyst имеется узел Определение языка, который может автоматически определять язык документа.

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

Как работает алгоритм определения языка

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

Автоматическое определение языка посредством обработки естественного языка не следует путать с обращением к базе данных. Существует множество систем программного обеспечения, которые могут определить язык только благодаря тому, что он обозначен как известное свойство документа, или документ был передан онлайн из какой-то определенной страны, чей язык известен, или язык документа был помечен автором или читателем. Это, бесспорно, полезная информация, но алгоритм, используемый в системе PolyAnalyst, был разработан специально для тех случаев, когда язык неизвестен и пока еще не был определен (вручную или с применением программных средств). Данный алгоритм ориентирован исключительно на текст, на буквы и слова. Таким образом, определение языка текста – весьма непростая задача.

Правильному определению языка исходного текста может препятствовать ряд факторов. Например, рассматриваемый документ может содержать несколько языков. Романские языки известны большим количеством общих слов латинского происхождения. В английском языке существуют слова, которые были заимствованы из других языков. Наивный алгоритм "простого подбора", который просто ищет каждое слово документа в большом словаре, где указан язык каждого слова, обнаружит, что одно и то же слово относится к нескольким языкам. Все это осложняется тем, что язык – живой организм, он постоянно развивается за счет новых слов, сленга и заимствований, и далеко не сразу все эти новшества отражаются в словаре. А если к этому добавить какие-то уникальные идиомы и грамматические обороты, характерные для отдельных языков, то идея создания и пополнения такого универсального словаря-справочника и вовсе покажется нереализуемой. Известно, что некоторые шутки, рассказанные людьми из других стран, "не поддаются переводу".

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

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

В Интернете можно найти большое количество информации о попытках создания алгоритмов определения языка. Многие компании и отдельные исследователи запатентовали технологии определения языка.

Например, патент № 5062143 Бюро по патентам и товарным знакам США от 29 октября 1991 г. описывает метод определения языка на основе триграмм. Триграмма – это технический термин, означающий последовательность 3 символов, слов или инфонов (единиц информации). В этом патенте "триграмма" означает сочетание трех букв. Модель обучается на определенном наборе документов, язык каждого документа известен. Каждый документ разбивается на триграммы и подсчитывается количество повторов каждой триграммы. Для составления "профиля" каждого языка составляется список часто используемых и уникальных триграмм. Затем при оценке нового документа он разбивается на триграммы, а алгоритм определяет, профилю какого языка эти триграммы соответствуют больше всего, и выбирает этот язык (либо алгоритм не может определить язык и не выполняет задачу).

Патент № 5548507 от 20 августа 1996 г. описывает похожий метод, который работает с использованием целых слов. Здесь профиль языка разрабатывается с помощью таблицы частотности слов (ТЧС) для каждого языка, который содержит слова, а также оцениваемых частот (на основе ряда документов, в которых язык был известен). Новый документ разбивается на отдельные слова, затем проверяется наличие этих слов в ТЧС; наибольшее число соответствий, обнаруженных в ТЧС, говорит о принадлежности документа конкретному языку.

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