第十章 Watson自然语言处理

欢迎关注微信公众号watson_python,及时获取最新的更新。


在Watson的自然语言处理的API目前有效的有8个,这些API牵涉到自然语言处理的各个方面。

Conversation

Natural Language Classifier

Natural Language understanding

Language Translator

Personality Insights

Document Conversion

Retrieve and Rank

Tone Analyzer

Conversation

在这里我们首先介绍一下Conversation API。Conversation API相对于上一章介绍的两个API来说,不仅需要在Bluemix上创建service,还需要对我们的Conversation进行设置,使用相对比较复杂。Conversation API可以用来创建我们自己的聊天机器人,我们可以将我们创建的聊天机器人部署到web上,内嵌到我们的APP中,让我们的APP增加自然语言的聊天功能。下面我们就通过一个Demo来演示一下,如何创建一个简单的聊天机器人。

首先在Bluemix创建Watson Conversation的service。在这里的service name我们可以默认。

第十章 Watson自然语言处理_第1张图片

点击Create按钮之后,完成Conversation service的创建。

第十章 Watson自然语言处理_第2张图片

我们点击Launch Tool对Conversation进行配置。

第十章 Watson自然语言处理_第3张图片

然后,我们点击Create来创建我们的workspace。

第十章 Watson自然语言处理_第4张图片

workspace创建完成后,我们需要创建intents。Intent是帮助我们的bot来理解来自客户的输入。

第十章 Watson自然语言处理_第5张图片

点击Create new来创建我们的第一个intent“Hello”。

第十章 Watson自然语言处理_第6张图片

然后,我们再创建一个intent“byebye”:

第十章 Watson自然语言处理_第7张图片

在这里我们就创建2个intent来演示我们的Demo,下一步创建Dialog:

第十章 Watson自然语言处理_第8张图片

然后,我们在这个Dialog和anything_else之间,将我们创建的2个intent加入到Dialog中:

第十章 Watson自然语言处理_第9张图片
第十章 Watson自然语言处理_第10张图片

到这里,我们自己定义的2个intent就加入到Dialog中了,现在就要进行一下测试。点击右上角的图标,测试一下我们第一的Dialog。

第十章 Watson自然语言处理_第11张图片

到这里,Conversation Service的设置工作就完成了,接下来就要在Python中完成对Conversation的调用,来实现一个简单的聊天机器人的Demo。首先新建一个项目,并创建如下的目录结构和文件:

第十章 Watson自然语言处理_第12张图片

watsonAPI.py中完成对conversation的调用来完成对话功能,的代码如下:

第十章 Watson自然语言处理_第13张图片

在watsonAPI.py中创建了,WatsonConversation类之后,让后我们就要在run.py中实例化WatsonConversation然后,实现聊天机器人。代码如下:

第十章 Watson自然语言处理_第14张图片

代码执行效果如下:

第十章 Watson自然语言处理_第15张图片

到这里,我们对conversation的Demo就完成了。

Natural Language Classifier

Natural

Language Classifier是一个自然语言分词器,能够让我们的app理解问题的目的,例如,当问到“今天天气怎么样?”时,能够明白这是询问温度的。要使用这个API,同样我们需要现在Bluemix建立一个Natural language Classifier的service,获得相关的认证信息用户名和密码。在使用这个API时,首先要建立与Bluemix上service的连接,连接建立后,需要先建立一个分词器,并训练这个分词器,以便我们的分词器能够正确的完成分词结果。训练可以通过提供一个csv文件进行,文件结构如下:

第十章 Watson自然语言处理_第16张图片

训练完成后,我们就可以进行分词处理了。示例代码如下:

第十章 Watson自然语言处理_第17张图片

执行效果如下:

Natural Language understanding

Natural

Language understanding是对自然语言进行语言情景分析的工具,利用该API可以将一段文本自动分类为,实体,关键字,分类,观点,情绪,关系等几个方面。这个API的使用比较简单,分析的时候只需要把我们要分析的文本和需要分析的方便指定就可以了。情参考下面的代码:

第十章 Watson自然语言处理_第18张图片

Language Translator

Language Translator是一个多国语言翻译的API,我们可以通过get_identifiable_languages()来查看,改API能够自动识别语言的语种,并将其翻译成我们的目标语言。这个API的使用同样在Bluemix上新建一个Service,使用方法如下代码:

第十章 Watson自然语言处理_第19张图片

Personality Insights

Personality Insights是根据一段文本对一个人的人格进行深入分析的API,在分析结果中可以反馈被分析人的5大人格特质,需求和价值观,将这个API可以辅助我们理解客户,让我们提供符合客户需求的服务。

第十章 Watson自然语言处理_第20张图片

Document Conversion

Document Conversion是watson的辅助API,用来将各种类型的文档,转换成watson可以识别的格式。

第十章 Watson自然语言处理_第21张图片

Retrieve and Rank

Retrieve

and Rank是对一系列文档进行检索和排序的API,这个API使用Document Conversion来格式化输入的文档。使用之前我们首先要建立一个cluster,等待几分钟让Bluemix来初始化我们建立的cluster,然后新建一个Collections,来存储我们的文档资料。然后将我们的文档上传Collections,目前能够接受html,word和PDF文档。然后,可以上传我们的questions来train我们自己的Retrieve

and Rank。我们可以利用这个API来定义我们自己的检索系统。


第十章 Watson自然语言处理_第22张图片

Tone Analyzer

Tone

Analyzer可以用来分析书面语,通过这个API可以分析出情感,社交趋势和书写风格。通过分析交流的情感,社交趋势我们可以让我们的应用可以更加礼貌的回复客户的问题。这个API使用时,我们只需要在Bluemix上建立一个service即可,利用SDK进行调用。

第十章 Watson自然语言处理_第23张图片

你可能感兴趣的:(第十章 Watson自然语言处理)