欢迎关注微信公众号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我们可以默认。
点击Create按钮之后,完成Conversation service的创建。
我们点击Launch Tool对Conversation进行配置。
然后,我们点击Create来创建我们的workspace。
workspace创建完成后,我们需要创建intents。Intent是帮助我们的bot来理解来自客户的输入。
点击Create new来创建我们的第一个intent“Hello”。
然后,我们再创建一个intent“byebye”:
在这里我们就创建2个intent来演示我们的Demo,下一步创建Dialog:
然后,我们在这个Dialog和anything_else之间,将我们创建的2个intent加入到Dialog中:
到这里,我们自己定义的2个intent就加入到Dialog中了,现在就要进行一下测试。点击右上角的图标,测试一下我们第一的Dialog。
到这里,Conversation Service的设置工作就完成了,接下来就要在Python中完成对Conversation的调用,来实现一个简单的聊天机器人的Demo。首先新建一个项目,并创建如下的目录结构和文件:
watsonAPI.py中完成对conversation的调用来完成对话功能,的代码如下:
在watsonAPI.py中创建了,WatsonConversation类之后,让后我们就要在run.py中实例化WatsonConversation然后,实现聊天机器人。代码如下:
代码执行效果如下:
到这里,我们对conversation的Demo就完成了。
Natural Language Classifier
Natural
Language Classifier是一个自然语言分词器,能够让我们的app理解问题的目的,例如,当问到“今天天气怎么样?”时,能够明白这是询问温度的。要使用这个API,同样我们需要现在Bluemix建立一个Natural language Classifier的service,获得相关的认证信息用户名和密码。在使用这个API时,首先要建立与Bluemix上service的连接,连接建立后,需要先建立一个分词器,并训练这个分词器,以便我们的分词器能够正确的完成分词结果。训练可以通过提供一个csv文件进行,文件结构如下:
训练完成后,我们就可以进行分词处理了。示例代码如下:
执行效果如下:
Natural Language understanding
Natural
Language understanding是对自然语言进行语言情景分析的工具,利用该API可以将一段文本自动分类为,实体,关键字,分类,观点,情绪,关系等几个方面。这个API的使用比较简单,分析的时候只需要把我们要分析的文本和需要分析的方便指定就可以了。情参考下面的代码:
Language Translator
Language Translator是一个多国语言翻译的API,我们可以通过get_identifiable_languages()来查看,改API能够自动识别语言的语种,并将其翻译成我们的目标语言。这个API的使用同样在Bluemix上新建一个Service,使用方法如下代码:
Personality Insights
Personality Insights是根据一段文本对一个人的人格进行深入分析的API,在分析结果中可以反馈被分析人的5大人格特质,需求和价值观,将这个API可以辅助我们理解客户,让我们提供符合客户需求的服务。
Document Conversion
Document Conversion是watson的辅助API,用来将各种类型的文档,转换成watson可以识别的格式。
Retrieve and Rank
Retrieve
and Rank是对一系列文档进行检索和排序的API,这个API使用Document Conversion来格式化输入的文档。使用之前我们首先要建立一个cluster,等待几分钟让Bluemix来初始化我们建立的cluster,然后新建一个Collections,来存储我们的文档资料。然后将我们的文档上传Collections,目前能够接受html,word和PDF文档。然后,可以上传我们的questions来train我们自己的Retrieve
and Rank。我们可以利用这个API来定义我们自己的检索系统。
Tone Analyzer
Tone
Analyzer可以用来分析书面语,通过这个API可以分析出情感,社交趋势和书写风格。通过分析交流的情感,社交趋势我们可以让我们的应用可以更加礼貌的回复客户的问题。这个API使用时,我们只需要在Bluemix上建立一个service即可,利用SDK进行调用。