Агрегация - это подзадача генерации естественного языка , которая включает в себя объединение синтаксических составляющих (таких как предложения и фразы) вместе. Иногда агрегирование можно проводить на концептуальном уровне.
Примеры
Простым примером синтаксической агрегации является объединение двух предложений, которые Джон пошел в магазин, и Джон купил яблоко, в одно предложение. Джон пошел в магазин и купил яблоко .
Синтаксическая агрегация может быть намного сложнее, чем это. Например, агрегирование может включать одну из составляющих в другую; например, мы можем суммировать Джон пошел в магазин и магазин был закрыт в предложение Джон пошел в магазин, который был закрыт .
С прагматической точки зрения объединение предложений вместе часто подсказывает читателю, что эти предложения связаны друг с другом. Если это не так, читатель может запутаться. Например, кто-то, кто читает Джона, пошел в магазин и купил яблоко, может сделать вывод, что яблоко было куплено в магазине; если это не так, то эти предложения не следует объединять.
Алгоритмы и проблемы
Алгоритмы агрегирования должны делать две вещи:
- Решите, когда нужно объединить две составляющие
- Решите, как должны быть объединены две составляющие, и создайте объединенную структуру.
Первый вопрос, когда нужно агрегировать, плохо изучен. Решения по агрегированию, безусловно, зависят от семантических отношений между составляющими, как упоминалось выше; они также зависят от жанра (например, бюрократические тексты имеют тенденцию быть более агрегированными, чем инструкции). Вероятно, они должны зависеть от риторической и дискурсивной структуры. [1] Уровень грамотности читателя также, вероятно, важен (плохие читатели нуждаются в более коротких предложениях). [2] Но у нас нет интегрированной модели, объединяющей все эти факторы в единый алгоритм .
Что касается второй проблемы, было проведено несколько исследований различных типов агрегирования и того, как их следует проводить. Харбуш и Кемпен описывают несколько стратегий синтаксической агрегации. По их терминологии, Джон пошел в магазин и купил яблоко - это пример прямого соединения Reduction [3] . О концептуальном агрегировании известно гораздо меньше. Di Eugenio et al. показать, как концептуальное агрегирование может быть выполнено в интеллектуальной обучающей системе, и продемонстрировать, что выполнение такого агрегирования делает систему более эффективной (и что концептуальное агрегирование оказывает большее влияние, чем синтаксическое агрегирование). [4]
Программное обеспечение
К сожалению, программного обеспечения для агрегирования не так много. [ необходима цитата ] Однако система SimpleNLG [5] действительно включает ограниченную поддержку базовой агрегации. Например, следующий код заставляет SimpleNLG распечатывать «Мужчина голоден и покупает яблоко» .
SPhraseSpec s1 = nlgFactory . createClause ( «мужчина» , «быть» , «голодный» ); SPhraseSpec s2 = nlgFactory . createClause ( «мужчина» , «купить» , «яблоко» ); Результат NLGElement = новое правило ClauseCoordinationRule (). применить ( s1 , s2 ); Система . из . println ( realiser . realiseSentence ( результат ));
Внешние ссылки
Рекомендации
- ^ D Скотт и C де Соуза (1990). Получение сообщения в генерации текста на основе RST. В Dale et al (eds) Current Research in Natural Language Generation . Академическая пресса
- ↑ S Williams и E Reiter (2008). Создание отчетов об основных навыках для читателей с низкой квалификацией. Инженерия естественного языка 14: 495-535
- ^ K Harbusch и G Kempen (2009). Создание многоязычного эллипса клаузальных координат: единый подход, основанный на публикации. В материалах ENLG-2009 28: 105-144. [1]
- Перейти ↑ B Di Eugenio, D Fossati, D Yu (2005). Агрегация улучшает обучение: эксперименты по генерации естественного языка для интеллектуальных систем обучения. В материалах ACL-2005, стр. 50–57. [2]
- ^ Gatt и E Reiter (2009). SimpleNLG: механизм реализации для практических приложений. Материалы ENLG09 [3]