Томита-парсер Яндекса для всех

в 9:23, , рубрики: api, Песочница, яндекс, метки: , ,

Яндекс продолжает развивать свои API-функции. И вот результат в виде нового парсера. Томита-парсер – это инструмент для извлечения структурированных данных (фактов) из текста на естественном языке. Извлечение фактов происходит при помощи контекстно-свободных грамматик и словарей ключевых слов. Парсер позволяет написать свою грамматику, добавить свои словари и запустить на текстах.

Томита-парсер позволяет по написанным пользователем шаблонам (КС-грамматикам) выделять из текста разбитые на поля цепочки слов или факты. Например, можно написать шаблоны для выделения адресов. Здесь фактом является адрес, а его полями — «название города», «название улицы», «номер дома» и т.д. Парсер включает в себя три стандартных лингвистических процессора: токенизатор (разбиение на слова), сегментатор (разбиение на предложения) и морфологический анализатор (mystem). Основные компоненты парсера: газеттир, набор КС-грамматик и множество описаний типов фактов, которые порождаются этими грамматиками в результате процедуры интерпретации.

Алгоритм работы парсера на одном предложении и одной грамматике

1. Ищутся вхождения всех ключей из газеттира. Если ключ состоит из нескольких слов (например, «Нижний Новгород»), то создается новое искусственное слово, которое мы называем «мультиворд».

2. Из всех найденных ключей газеттира отбираются те, которые упоминаются в грамматике.

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

4. Линейная цепочка слов и мультивордов подается на вход GLR-парсеру. Терминалы грамматики отображаются на входные слова и мультиворды.

5. На последовательности множеств терминалов GLR-парсер строит все возможные варианты. Из всех построенных вариантов также отбираются те, которые как можно шире покрывают предложение.

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

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

Автор: StudLab

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js