我应该遵循哪个AI分支?

时间:2017-07-19 13:49:55

标签: nlp artificial-intelligence

我正在对NLP进行一些测试,我正在考虑编写一个像这样的代码。

主题 - >用户输入 - >输出

狗的所有权 - >我有一只狗 - >是

狗的所有权 - >我的狗叫乔 - >是

狗的所有权 - >我没有狗 - >否

您认为哪种分支或ai算法是解决此问题的最佳方法?

我不希望有人解决我的问题,只是指出我正确的方向。 谢谢!

2 个答案:

答案 0 :(得分:0)

在我看来,你想要的是dialog system。如果您将用户输入限制为是/否问题,那么这将使您的项目相对简单。我将这样做的方法是使用AIML和Python创建一个聊天机器人。这是an example

答案 1 :(得分:0)

我不熟悉NLP,但您的样本可以使用AIML模式匹配轻松完成(AIML是Eliza的远距离后代)。例如:

<category> <!-- 1 -->
  <pattern>I OWN A DOG</pattern>
  <template>
    <think><set name="dog_owner">true</set></think>
    You own a dog.
  </template>
</category>

<category> <!-- 2 -->
  <pattern>I DO NOT OWN A DOG</pattern>
  <template>
    <think>
      <set name="dog_owner">false</set>
      <set name="dog_name"></set>
    </think>
    You do not own a dog.
  </template>
</category>

<category> <!-- 3 -->
  <pattern>DO I OWN A DOG</pattern>
  <template>
    <condition name="dog_owner">
      <li value="true">You own a dog.</li>
      <li>You don't have a dog.</li>
    </condition>
  </template>
</category>

<category> <!-- 4 -->
  <pattern>MY DOG IS CALLED *</pattern>
  <template>
    <think>
      <set name="dog_owner">true</set>
      <set name="dog_name"><star/></set>
    </think>
    Your dog is called <get name="dog_name"/>.
  </template>
</category>

类别1和2允许您告诉AIML解释器您是否有狗,它将此事实(以及狗的名字)存储在属性“dog_owner”和“dog_name”中。当你询问你是否有狗时,第3类给出了正确的答案,4允许你选择狗的名字。这些类别可以扩展到允许狗的名字被遗忘,或允许猫等。希望这显示你AIML的NLP支持,所以你可以决定它是否有用。