Ввод эмодзи в диалоговом окне IBM Watson

Поддерживает ли сервис Dialog ввод эмодзи?

Я смог вывести смайлики, используя оба: объект HTML (десятичный)  объект HTML (шестнадцатеричный)  http://www.fileformat.info/info/unicode/char/1f37b/index.htm

Однако я не могу заставить диалоговую службу понимать ввод смайликов. Эмодзи в диалоговом окне


person Sebastian von Krumhausen    schedule 11.03.2016    source источник
comment
Лео прав. Однако почему бы не добавить фильтрующий слой между вашим приложением конечного пользователя и экземпляром диалогового API, который заменяет строку символов смайликов простой строкой, такой как счастливое лицо или пиво.   -  person James Ravenscroft    schedule 12.03.2016
comment
Круто, хорошая идея, я не уверен, как это сделать, но я посмотрю на это. Спасибо!   -  person Sebastian von Krumhausen    schedule 12.03.2016
comment
Ознакомьтесь с демонстрационным кодом пиццы на GitHub. По сути, они создают промежуточное программное обеспечение в node.js, которое предоставляет конечные точки диалога браузеру пользователя без необходимости передавать важные детали, такие как учетные данные службы или URL-адрес конечной точки. Вы можете добавить функцию javascript, которая вызывается из app.js непосредственно перед строкой 55, которая принимает ввод разговора в req.body и выполняет string.replace(emoji, textreplacement) для каждого из смайликов, которые вы хотите захватить. Затем опубликуйте результат в сервисе, как они это делают.   -  person James Ravenscroft    schedule 12.03.2016
comment
@JamesRavenscroft Смотрите мой ответ, чтобы доказать, что смайлики действительно поддерживаются. Работая в команде IBM Watson, улучшайте свою документацию. Примеры для Watson Dialog действительно плохие, и очень сложно правильно написать сценарии Dialog. Много проб и ошибок.   -  person plindberg    schedule 28.05.2016


Ответы (1)


Вы наверняка можете. Вот пример:

<?xml version="1.0" encoding="UTF-8" ?>
<dialog xsi:noNamespaceSchemaLocation="WatsonDialogDocument_1.0.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<flow>
<folder label="Main">

Выведите начальное приглашение:

  <output>
    <prompt>
      <item>Write something and I’ll echo it back to you.</item>
    </prompt>
  </output>

Получить ввод:

  <getUserInput>
    <input>
      <grammar>
        <item>(ANYTHING)={anything}</item>
      </grammar>
      <action varName="anything" operator="SET_TO">{anything.source}</action>
      <output>
        <prompt>
          <item>{anything}</item>
        </prompt>
      </output>
    </input>
  </getUserInput>

</folder>
</flow>

Теперь, я думаю, вы попытались зафиксировать входные данные так, как это делает IBM во всех своих примерах. Но этот метод молча отбрасывает многие символы, отличные от ASCII. Это просто не то, как вы хотите захватывать входные данные. (См. этот ответ SO для списка некоторых символов, которые он отбрасывает.)

Вот как я это делаю:

<entities>
  <entity name="ANYTHING">
    <value>
      <grammar>
        <item>!.*</item>
      </grammar>
    </value>
  </entity>
</entities>

Восклицательный знак означает, что мы используем регулярное выражение. (Все после ! является регулярным выражением.) Этот метод не отбрасывает столько символов, но отбрасывает < и >. Возможно другие. Вы можете использовать этот же скрипт, чтобы узнать, какие символы безопасны.

И, наконец, нам понадобится переменная для захвата.

<variables>
  <var_folder name="Home">
    <var name="anything" type="TEXT" />
  </var_folder>
</variables>

</dialog>

Полный пример см. в этой сути.

person plindberg    schedule 28.05.2016