Google Research только что выпустила проект с открытым исходным кодом, который может быть интересен, если вы занимаетесь обработкой естественного языка. SLING — это комбинация рекуррентных нейронных сетей и синтаксического анализа на основе кадров.
Разбор естественного языка — важная тема. Вы можете получить смысл из структуры, а анализ — это то, как вы получаете структуру. Это важно при обработке как текста, так и голоса. Если у вас есть хоть какая-то надежда, что Siri, Cortana или Alexa станут лучше, тогда вам нужно лучше понимать естественный язык, а не только используемые в настоящее время системы слотов и заполнителей.
Google, в частности, должен найти способы извлекать лучший смысл из текста, потому что как еще его результаты поиска будут улучшаться? Разумно предположить, что Google делает намного больше, чем то, о чем он готов говорить, в области понимания языков.
Ученые подчеркивают, что это экспериментальная система, и, если вы не собираетесь много работать над ней, я сомневаюсь, что она приведет к чему-то полезному. Подход заключается в использовании семантического фреймового графа, диаграммы, суммирующей смысл предложения. Его узлы — это концепции, а его края — это отношения. Команда Google приводит хороший пример в своем блоге:
Вы можете видеть, что график показывает, что прогноз имеет две взаимосвязанные концепции: человек, делающий прогноз, и прогнозируемое событие.
SLING отличается тем, что для построения графика он использует рекуррентную нейронную сеть:
SLING обучает рекуррентную нейронную сеть, оптимизируя интересующие семантические рамки. Внутренние изученные представления в скрытых слоях сети заменяют созданные вручную комбинации функций и промежуточные представления в конвейерных системах. Внутри SLING используется архитектура кодировщика-декодера, где каждое входное слово кодируется в вектор с использованием простых лексических функций, таких как необработанное слово, его суффикс (су), пунктуация и т. Д. Декодер использует это представление вместе с повторяющимися функциями из своей собственной истории. , чтобы вычислить последовательность переходов, которые обновляют граф кадра, чтобы получить намеченное семантическое представление кадра входного предложения. SLING обучает свою модель с помощью TensorFlow и DRAGNN.
Вы можете найти SLING на Github. Он написан на C ++ и поставляется с предварительно обученной моделью и некоторыми данными.