В следующем посте есть немного математики, которая, я надеюсь, поможет лучше объяснить проблему. К сожалению, этот сайт SE не поддерживает LaTex:
Обобщение документов - очень большая проблема в исследованиях ИИ. Один из способов решения этой задачи в настоящее время называется «экстрактивным обобщением». Основная стратегия заключается в следующем: разделите этот документ на предложения, и мы представим в качестве резюме подмножество предложений, которые вместе охватывают все важные детали в посте. Присвойте предложение , , переменную , где указывает, что предложение было выбрано, а означает, что предложение пропущено. Тогда тогда и только тогда, когда были выбраны оба предложения. Мы также определим важность каждого предложения для предложенияi1≤i≤nzi∈{0,1}zi=1zi=0zizj=1wiiи условия взаимодействия между предложениями и .wi,jij
Пусть - векторы признаков предложения . показывает, насколько важно включить это предложение (или темы, охватываемые им), в то время как указывает количество совпадений между предложениями в нашем резюме. Наконец, мы помещаем все это в проблему минимизации:xiiwi=w(xi)wi,j=w(xi,xj)
maximize zis.t. ∑iwizi−wi,jzizjzi=0 or 1
Это пытается максимизировать общий вес охваченных предложений и пытается минимизировать количество совпадений. Это целочисленная задача программирования, подобная нахождению независимого множества с наименьшим весом в графе, и существует множество методов для решения таких задач.
Этот дизайн, на мой взгляд, отражает фундаментальные проблемы при обобщении текста и может быть расширен во многих отношениях. Мы обсудим это немного, но сначала нам нужно полностью указать функции . может быть функцией только предложения , но это также может зависеть от места предложения в документе или его контекста (находится ли предложение в начале абзаца? название? Какова его длина? В нем упоминаются какие-либо собственные существительные? и т. д.)wwi=w(xi)i
wi,j=w(xi,xj) является мерой подобия. Он измеряет, сколько будет повторений, если мы включим оба предложения в предложение. Это можно определить, посмотрев на общие слова между предложениями. Мы также можем извлечь темы или понятия из каждого предложения и посмотреть, сколько из них являются общими, и использовать языковые функции, такие как местоимения, чтобы увидеть, расширяется ли одно предложение на другое.
Чтобы улучшить дизайн, во-первых, мы могли бы сделать извлечение ключевой фразы, т.е. определить ключевые фразы в тексте и выбрать для определения вышеупомянутой проблемы с точки зрения тех, а не пытаться выбрать предложения. Эта проблема аналогична тому, что делает Google для суммирования новостных статей в результатах поиска, но я не знаю деталей их подхода. Мы могли бы также разбить предложения дальше на понятия и попытаться установить семантическое значение предложений (Понзо и Фила - люди P1 и P2, торговый центр - это место P, P1 и P2 отправились в место P во время T (день ). Вид транспорта прогулочный .... и тд). Для этого нам нужно использовать семантическую онтологию или другие базы данных здравого смысла. Тем не менее, все части этой последней проблемы семантической классификации открыты, и я еще не видел, чтобы кто-то достиг ее удовлетворительного прогресса.
Мы также могли бы настроить вышеприведенную функцию потерь так, чтобы вместо установки компромисса между важностью предложения и оценкой разнесения вручную, мы могли узнать это из данных. Один из способов сделать это - использовать условные случайные поля для моделирования данных, но наверняка существует много других.wiwi,j
Я надеюсь, что этот ответ объяснил основные проблемы, которые необходимо решить, чтобы добиться хороших систем суммирования. Это активная область исследований, и вы найдете самые последние статьи в Google Scholar, но сначала прочитайте страницу Википедии, чтобы узнать соответствующие термины.