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

Однажды я наткнулся на предложение, которое наша программа не могла правильно классифицировать. Это было простое предложение, всего 7 слов:

«Рабочие на заводе перегружены работой».

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

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

Устранение неоднозначности смысла слов

Задача Устранение неоднозначности слов (WSD) состоит в выборе наилучшего смысла для вхождения слова в заданном контексте. В нашем случае нам нужно было найти правильный смысл слова растение.

Эта проблема была обнаружена при создании Машинного перевода (примерно в 40-х годах) и до сих пор не решена.

Исследователи пробовали различные подходы, от основанных на правилах до вероятностных систем, с использованием детализированной базы знаний и автоматизированного извлечения знаний. Всего этих усилий было недостаточно, чтобы решить эту проблему.

Чтобы дать вам представление, позвольте мне показать вам список алгоритмов и методов машинного обучения, используемых в WSD:

Примерный список алгоритмов WSD и методов машинного обучения

У каждого решения есть свои плюсы и минусы, но по последнему слову техники в области контролируемого машинного обучения достигается точность более 90%.

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

Флора, стратагема или строительство?

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

А вот и WordNet, лексическая база данных для английского языка. Он группирует слова в наборы синонимов, дает краткие определения и примеры, а также записывает отношения между этими группами.

Разные значения слова plant в WordNet

WordNet позволяет нам извлекать синонимы, антонимы и различные формы слова. Для каждого из них мы получаем определение.

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

Алгоритм Леска (Майкл Э. Леск, 1986) основан на предположении, что слова в предложении имеют общую тему. Идея проста: мы берем все возможные определения каждого слова в предложении и выбираем определения, которые больше всего совпадают.

Мы можем представить это на простой диаграмме, см. Ниже:

Представление алгоритма Леска

Что действительно интересно в этой диаграмме, так это то, что она показывает сходство между алгоритмом Леска и тем, как работает наш мозг.

Используя базу знаний и этот искусно созданный «мозг», мы теперь можем выбрать лучший смысл слова растение в контексте нашего предложения, что позволяет нам генерировать его синонимы, антонимы и так далее.

Устранение неоднозначности смысла слова используется для определения значения слова благодаря заданному контексту. И это позволяет нам выполнять автоматический перевод, и даже первые этапы генерации языка.

Сегодня боты и ИИ доказали, что они на пути к пониманию языка, но следующий шаг - и самый важный - это дать им возможность ответить нам самостоятельно!

Пол РЕНВОАЗ - Recast.AI

Этот пост изначально был опубликован в нашем блоге. Если вам понравилось, вам также может понравиться: UI и AI: следующий интерфейс - диалог