В обработке естественного языка маркировка семантических ролей (также называемая поверхностным семантическим анализом или заполнением слотов ) — это процесс, который присваивает метки словам или фразам в предложении, указывающие на их семантическую роль в предложении, например роль агента , цели или результата.
Он служит для поиска смысла предложения. Для этого он обнаруживает аргументы, связанные с предикатом или глаголом предложения , и то, как они классифицируются по своим конкретным ролям . Типичным примером является предложение «Мэри продала книгу Джону». Агент — «Мэри», предикат — «продано» (или, скорее, «продать»), тема — «книга», а получатель — «Джон». Другой пример — как «книга принадлежит мне» потребует двух меток, таких как «обладал» и «владелец», а «книга была продана Джону» потребует двух других меток, таких как тема и получатель, несмотря на то, что эти два предложения похожи на функции «субъект» и «объект». [1]
В 1968 году Чарльз Дж. Филлмор предложил первую идею для маркировки семантических ролей . [2] Его предложение привело к проекту FrameNet , который создал первый крупный вычислительный лексикон, который систематически описывал множество предикатов и соответствующих им ролей. Дэниел Джилдеа (в настоящее время в Университете Рочестера , ранее в Калифорнийском университете в Беркли / Международном институте компьютерных наук ) и Дэниел Джурафски (в настоящее время преподает в Стэнфордском университете , но ранее работал в Университете Колорадо и Калифорнийском университете в Беркли ) разработали первую автоматическую систему маркировки семантических ролей на основе FrameNet. Корпус PropBank добавил вручную созданные аннотации семантических ролей к корпусу Penn Treebank текстов Wall Street Journal . Многие автоматические системы маркировки семантических ролей использовали PropBank в качестве обучающего набора данных для обучения тому, как автоматически аннотировать новые предложения. [3]
Маркировка семантических ролей в основном используется машинами для понимания ролей слов в предложениях. [4] Это приносит пользу приложениям, подобным программам обработки естественного языка , которым необходимо понимать не только слова языков, но и то, как их можно использовать в различных предложениях. [5] Лучшее понимание маркировки семантических ролей может привести к прогрессу в вопросно-ответной обработке , извлечении информации , автоматическом реферировании текста , интеллектуальном анализе текстовых данных и распознавании речи . [6]