ТОМ: Модель речевого акта: различия между версиями

Материал из IFВики
Перейти к навигации Перейти к поиску
м (phrase)
м (Фаза 1 для оператора X > "text")
Строка 92: Строка 92:
 
====Фаза 1 для строки введенной игроком====
 
====Фаза 1 для строки введенной игроком====
 
====Фаза 1 для оператора X > "text"====
 
====Фаза 1 для оператора X > "text"====
где ...
+
где X - объект персонажа, а "text" - текстовка, произнесённая персонажем.
 +
 
 
====Фаза 2====
 
====Фаза 2====
 
====Фаза 3====
 
====Фаза 3====

Версия 20:29, 17 сентября 2009

Для генерации и анализа текстов в ТОМ используется достаточно сложная модель речевого акта.

Речевой акт

(далее просто речь, фраза, команда, предложение и т.п.)

Любой текст, который вводится в ТОМ или выводится ТОМом рассматривается как речевой акт.

Речевой акт имеет четко обозначенные временные границы и определённые речевые роли.

Речевые роли четко обозначены самим языком и однозначно выделяются в речи.

В пределах одного речевого акта речевые роли неизменны.

Значениями речевых ролей являются объекты, соответствующие персонажам, протагонисту, нарратору и, возможно, самому игроку.

Всего выделяется 3 речевые роли:

  • некто говорящий;
  • некто, к кому обращается говорящий;
  • некто, упомянутый в речи и производящий некоторое активное действие.

Первые 2е роли влияют на личные местоимения (1 и 2 лицо). 3я роль влияет на возвратные местоимения.

Контекст речевого акта

(он же и контекст метода)

При выполнения кода на платформе ТОМ в любое время можно обратиться к специальным контекстным значениям:

Речевые роли:

  • talker - персонаж, от которого в данный момент исходит речь (1 лицо);
  • addressee - персонаж, которому адресована речь (2 лицо);
  • actor - персонаж, в данный момент активно выполняющий действие;

Прочие контекстные значения:

  • this - объект, содержащий метод, который выполняется в данный момент;
  • act - действие, которое отрабатывается в данный момент;
  • told - персонаж, произнёсший предыдущую речь;
  • аddressed - персонаж, которому была адресована предыдущая речь;


Парсер самостоятельно настраивает контекст в зависимости от выполняемого действия.

Автор игры также может при необходимости изменять значения контекста.

При вызове метода создается новый контекст, и все значения (за исключением this) копируются из контекста вызывающего метода.

Влияние на морфологические свойства объектов

Для объектов, входящих в предложение, проводится расчет морфологических ключей, зависящий от значений речевого контекста.

Так, например, если в предложении встречен объект == talker, то для него будет установлен ключ первого лица (1л) и в тексте этот объект отобразится как "я".

Для расчета контекстно-зависимых морфологических ключей объекты имеют специальный метод: CalcKey().

При анализе введенной команды этот же метод вызывается парсером для отсева объектов, не подходящих по контексту.

Переменные и свойства объектов

Для формирования речевого контекста парсером также используются:

  • глобальная переменная global.narrator
  • свойства объектов addressee (у каждого объекта может быть свой адресат).
  • предопределенные шаблонные переменные:
    • Actor - значение этой переменной используется как actor.
    • Talker - значение этой переменной используется как talker
    • Addressee - значение этой переменной используется как addressee

Фазы парсинга и их речевые контексты

  1. фаза - распознание строки. Контекст настраивается на анализ текста. Для правильного распознания необходимо понимать кто это говорит и кому говорит.
  2. фаза - проверки и генерация ошибок. Контекст настраивается на формирование ошибки как ответа на фразу.
  3. фаза - выполнение действия. Контекст настраивается как повествование о выполнении действия.

Конкретные настройки контекста зависят от категории распознаваемого текста. Об этом более подробно далее.

action

Речевой акт этой категории является указанием о выполнении некоторого действия.

Фаза 1 для строки введенной игроком

talker=null

addressee=pers

actor=pers

Фаза 1 для оператора X < "command"

где X - объект персонажа, а "command" - команда, переданная персонажу.

talker = told

addressee = X

actor = X

Фаза 2: генерация ошибок

Фаза 3: выполнение действия

phrase

Речевой акт этой категории является фразой диалога, произносимой протагонистом или другим персонажем.

Фаза 1 для строки введенной игроком

Фаза 1 для оператора X > "text"

где X - объект персонажа, а "text" - текстовка, произнесённая персонажем.

Фаза 2

Фаза 3

event

Фаза 1

Фаза 2

Фаза 3