IBM Watson对话框表情符号输入

时间:2016-03-11 03:19:45

标签: ibm-watson watson-dialog

Dialog服务是否支持表情符号输入?

我能够使用两者输出表情符号:HTML实体(十进制)HTML实体(十六进制)http://www.fileformat.info/info/unicode/char/1f37b/index.htm

但是,我无法获得对话服务来理解表情符号输入。 Emojis in dialog conversation

1 个答案:

答案 0 :(得分: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字符。这不是你想要捕获输入的方式。 (请参阅this SO answer以获取它删除的某些字符的列表。)

我是这样做的:

<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>

有关完整示例,请参阅this gist