文档章节

Watson Natural Language Understanding

q
 qwerttaa
发布于 2017/11/29 11:17
字数 1053
阅读 648
收藏 0
点赞 1
评论 0

 

沃森机器人自然语言理解服务的开发教程,学习使用 IBM Bluemix Watson NLU服务 完成自然语言的文本内容分析。

导入 Watson Python SDK

可能需要手动安装Python SDK,可以通过命令:pip install --upgrade watson-developer-cloud 进行安装与更新。

In [1]:

from watson_developer_cloud import NaturalLanguageUnderstandingV1
from watson_developer_cloud.natural_language_understanding_v1 import (
    Features, EntitiesOptions, KeywordsOptions)

通过用户名和密码连接服务

用户名和密码都可根据实际情况在服务凭证信息中找到

In [2]:

username = '9461ca60-a53a-48d4-83da-89e52eeb2688'
password = 'qq4GhRKYyVAM'

In [3]:

nlu = NaturalLanguageUnderstandingV1(version='2017-12-01', username=username, password=password)

In [4]:

features = Features(entities=EntitiesOptions(), keywords=KeywordsOptions())

准备一些文本资料开始测试

需要注意的是该服务的中文版本仍在开发状态,所以建议大家用英文进行测试

In [5]:

texts = [
    '''Welcome to the official documentation of Godot Engine,
    the free and open source community-driven 2D and 3D game engine!
    If you are new to this documentation,
    we recommend that you read the introduction page to get
    an overview of what this documentation has to offer.''',
    
   '''Godot Engine is an open source project developed by a community of volunteers.
    It means that the documentation team can always use your feedback and help to
    improve the tutorials and class reference. If you do not manage to understand something,
    or cannot find what you are looking for in the docs,
    help us make the documentation better by letting us know!''' 
]

分析文本列表0的内容

In [6]:

nlu.analyze(features=features, text=texts[0])

Out[6]:

{'entities': [{'count': 1,
   'relevance': 0.992572,
   'text': 'Godot Engine',
   'type': 'Company'},
  {'count': 1, 'relevance': 0.338173, 'text': 'official', 'type': 'JobTitle'}],
 'keywords': [{'relevance': 0.908999, 'text': 'Godot Engine'},
  {'relevance': 0.741794, 'text': 'open source'},
  {'relevance': 0.702832, 'text': 'introduction page'},
  {'relevance': 0.674454, 'text': 'official documentation'},
  {'relevance': 0.660084, 'text': 'game engine'},
  {'relevance': 0.230546, 'text': 'overview'}],
 'language': 'en',
 'usage': {'features': 2, 'text_characters': 282, 'text_units': 1}}

我们可以看到服务为我们识别出来两个主题,即类型为“Company”的“Godot Engine”;和类型为“JobTitle”的“official”。除此之外还得到了一些关键词,如:Godot Engine,open source,introduction page,official documentation……,以及统计出了字符数量和文本单元数量。

封装方法并测试文本列表1的内容

In [7]:

NLUA = lambda text: nlu.analyze(features=features, text=text)

In [8]:

NLUA(texts[1])

Out[8]:

{'entities': [],
 'keywords': [{'relevance': 0.973304, 'text': 'open source project'},
  {'relevance': 0.838422, 'text': 'Godot Engine'},
  {'relevance': 0.624781, 'text': 'class reference'},
  {'relevance': 0.60158, 'text': 'documentation team'},
  {'relevance': 0.369586, 'text': 'docs'},
  {'relevance': 0.32839, 'text': 'feedback'},
  {'relevance': 0.28266, 'text': 'community'},
  {'relevance': 0.282402, 'text': 'volunteers'},
  {'relevance': 0.274328, 'text': 'tutorials'}],
 'language': 'en',
 'usage': {'features': 2, 'text_characters': 372, 'text_units': 1}}

测试更大的文本内容并将关键字保存为CSV文档

通过 Python 的 Pandas 数据分析框架将关键字信息保存在CSV文档中,便于使用Excel之类的工具进行浏览。

In [9]:

import pandas as pd

In [10]:

text = '''
Introduction

The Blender Game Engine (BGE) is Blender’s tool for real time projects,
from architectural visualizations and simulations to games.

A word of warning, before you start any big or serious project with the Blender Game Engine,
you should note that it is currently not very supported and that there are plans for its retargeting and
refactoring that, in the very least, will break compatibility. For further information,
you should get in touch with the developers via mailing list or IRC and read the development roadmap.

Use Cases and Sample Games

Blender has its own built in Game Engine that allows you to create interactive 3D applications or simulations.
The major difference between Game Engine and the conventional Blender system is in the rendering process.
In the normal Blender engine, images and animations are built off-line – once rendered they cannot be modified.
Conversely, the Blender Game Engine renders scenes continuously in real-time,
and incorporates facilities for user interaction during the rendering process.'''

In [11]:

response = NLUA(text)
response

Out[11]:

{'entities': [{'count': 1,
   'relevance': 0.325141,
   'text': 'Blender',
   'type': 'Company'},
  {'count': 1, 'relevance': 0.109868, 'text': 'BGE', 'type': 'Organization'}],
 'keywords': [{'relevance': 0.968481, 'text': 'Blender Game Engine'},
  {'relevance': 0.672281, 'text': 'normal Blender engine'},
  {'relevance': 0.642034, 'text': 'Blender’s tool'},
  {'relevance': 0.585455, 'text': 'conventional Blender'},
  {'relevance': 0.544693, 'text': 'real time projects'},
  {'relevance': 0.516305, 'text': 'Engine renders scenes'},
  {'relevance': 0.50586, 'text': 'interactive 3D applications'},
  {'relevance': 0.503355, 'text': 'rendering process'},
  {'relevance': 0.440065, 'text': 'architectural visualizations'},
  {'relevance': 0.42788, 'text': 'development roadmap'},
  {'relevance': 0.415892, 'text': 'mailing list'},
  {'relevance': 0.415685, 'text': 'major difference'},
  {'relevance': 0.411704, 'text': 'Sample Games'},
  {'relevance': 0.411643, 'text': 'user interaction'},
  {'relevance': 0.358522, 'text': 'simulations'},
  {'relevance': 0.348923, 'text': 'retargeting'},
  {'relevance': 0.326577, 'text': 'compatibility'},
  {'relevance': 0.325289, 'text': 'warning'},
  {'relevance': 0.324025, 'text': 'Introduction'},
  {'relevance': 0.322093, 'text': 'BGE'},
  {'relevance': 0.321985, 'text': 'IRC'},
  {'relevance': 0.320995, 'text': 'plans'},
  {'relevance': 0.320874, 'text': 'touch'},
  {'relevance': 0.320867, 'text': 'information'},
  {'relevance': 0.320457, 'text': 'word'},
  {'relevance': 0.319156, 'text': 'developers'},
  {'relevance': 0.319064, 'text': 'Cases'}],
 'language': 'en',
 'usage': {'features': 2, 'text_characters': 1050, 'text_units': 1}}

In [12]:

keywords = pd.DataFrame(response['keywords'])
keywords

Out[12]:

  relevance text
0 0.968481 Blender Game Engine
1 0.672281 normal Blender engine
2 0.642034 Blender’s tool
3 0.585455 conventional Blender
4 0.544693 real time projects
5 0.516305 Engine renders scenes
6 0.505860 interactive 3D applications
7 0.503355 rendering process
8 0.440065 architectural visualizations
9 0.427880 development roadmap
10 0.415892 mailing list
11 0.415685 major difference
12 0.411704 Sample Games
13 0.411643 user interaction
14 0.358522 simulations
15 0.348923 retargeting
16 0.326577 compatibility
17 0.325289 warning
18 0.324025 Introduction
19 0.322093 BGE
20 0.321985 IRC
21 0.320995 plans
22 0.320874 touch
23 0.320867 information
24 0.320457 word
25 0.319156 developers
26 0.319064 Cases

In [13]:

keywords.to_csv('keyowrds.csv')

© 著作权归作者所有

共有 人打赏支持
q
粉丝 12
博文 21
码字总数 16694
作品 0
52个有用的机器学习和预测API(各个方向资源)

人工智能正在成为新一代技术变革的基础技术,但从头开始为自己的应用和业务开发人工智能程序既成本高昂,且往往很难达到自己想要的性能表现,但好在我们有大量现成可用的 API 可以使用。开发...

t7sfokzord1jaymsfk4
05/12
0
0
从人脸识别到机器翻译:52个有用的机器学习和预测API

选自KDnuggets 机器之心编译参与:吴攀 人工智能正在成为新一代技术变革的基础技术,但从头开始为自己的应用和业务开发人工智能程序既成本高昂,且往往很难达到自己想要的性能表现,但好在我...

tkkzc3e6s4ou4
05/12
0
0
常用机器学习实用API (人脸识别与情感分析)

人脸和图像识别 Animetrics Face Recognition:可用于检测图片中的人脸并将其与一组已知的人脸进行匹配。API还可以添加或删除可搜索的图库中的主题,并添加或删除主题中的人脸。 Betaface:面...

徐代龙
07/04
0
0
feiwang/Awesome-Chatbot

Awesome Chatbot Projects Chatbot ParlAI A framework for training and evaluating AI models on a variety of openly available dialog datasets. https://github.com/facebookresearch/P......

feiwang
2017/09/07
0
0
从人脸识别到情感分析,这有50个机器学习实用API!

     大数据文摘作品   编译:大茜、Shan LIU、云舟   还在为找不到机器学习的API而烦恼吗?本篇文章将介绍一个包含50+关于人脸和图像识别,文本分析,NLP,情感分析,语言翻译,机器...

大数据文摘
06/09
0
0
50多种适合机器学习和预测应用的API,你的选择是?(2018年版本)

对于做工程项目和搞科研的人来说,有现成的模块或工具使用是一件多么美妙的事情啊,无需访问源码或理解内部工作机制的细节即可完成相应的任务。常用的方法是调用一些API,即一些预先定义的函...

【方向】
05/03
0
0
CS224d: Deep Learning for Natural Language Process

Course Description Teaching Assistants Peng Qi Course Notes (updated each week) Detailed Syllabus Class Time and Location Spring quarter (March - June, 2015). Lecture: Monday, W......

Airship
2015/03/17
0
0
来和IBM Watson想做一个人工智能背景APP吧!

在翻译Product Hunt的某个产品时,看到它是基于 IBM的 Watson AI做的认知分析,当时就High了有没有!   先说说 Watson 是什么,以下内容整理自百度百科:   IBM开发沃森旨在完成一项艰巨...

程序员客栈
2016/05/04
58
0
机器学习知识交换所(MLKX)

我在github上建了一个知识索引列表,以后会不断的刷新和结构化它。请点击此处访问我的列表。我的目的是不断的吸收各种机器学习,特别是深度学习的知识,构建称为机器学习的知识体系,然后我有...

戴德曼
2016/12/11
0
0
资源 | 机器学习、NLP、Python和Math最好的150余个教程(建议收藏)

编辑 | MingMing 尽管机器学习的历史可以追溯到1959年,但目前,这个领域正以前所未有的速度发展。最近,我一直在网上寻找关于机器学习和NLP各方面的好资源,为了帮助到和我有相同需求的人,...

dqcfkyqdxym3f8rb0
2017/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

sklearn学习笔记之简单线性回归

简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项。线性回归的思想其实就是解一组方程,得到...

wangxuwei
4分钟前
0
0
feign之动态interceptor(二)

背景 上文提到了按照不同的feignClient可以根据多个不同的key来进行多个不同的bean的配置 那么我们如何完成多个interceptor的配置呢? 分析 我们刚提到多个配置的玄机就在FeignClientProper...

Mr_Qi
6分钟前
1
0
Linux Kernel 4.16 系列停止维护,用户应升级至 4.17

知名 Linux 内核维护人员兼开发人员 Greg Kroah-Hartman 近日在发布 4.16.18 版本的同时,宣布这是 4.16 系列的最后一个维护版本,强烈建议用户立即升级至 4.17 系列。 Linux 4.16 于 2018 年...

问题终结者
30分钟前
0
0
Apache配置时.htaccess失效不起作用的原因分析

.htaccess 失效的原因 1. 重写规则有问题,检查自己的重写规则 2.Apache配置问题,配置中没有配置启用 rewrite a2enmod rewrite 3.网站配置文件没有启用配置需要配置 000-default.conf <Dire...

TU-DESGIN
51分钟前
1
0
两个求最大公约数C/C++算法实现

#include<stdio.h> #include<time.h> #include <iostream>using namespace std;//求最大公约数 LCD(Largest Common Division)//短除法 //m=8251, n=6105; int LCD_ShortDiv(int m, ......

失落的艺术
56分钟前
1
0
QueryPerformanceCounter

windows的Sleep函数,睡眠线程指定毫秒数,可以用来做毫秒延时。 对于微秒延时,没有一个现成的函数,但是可以通过 QueryPerformanceFrequency QueryPerformanceCounter 来间接实现。原理就是...

开飞色
今天
1
0
log4j2使用AsyncRoot不显示行号问题处理

<AsyncRoot level="info" includeLocation="true"> <AppenderRef ref="File"/></AsyncRoot><!--1.异步logger,还需要在pom.xml中添加disruptor的依赖。2.includeLocation结合异......

小翔
今天
3
0
安卓手机上 K 歌,声音延迟怎么解决?

这篇文章可以为你提供一个解决录音和播放同步问题的思路,而且解决了声音从手机传输到耳机上有延时的问题。 初识音频 在开始之前,我先简单介绍一下音频相关的基础知识,方便下文理解。 我们...

编辑部的故事
今天
2
0
使用token实现在有效期内APP自动登录功能

使用token实现在有效期内APP自动登录功能 http://sevennight.cc/2016/07/19/auto_login_impl.html

风云海滩
今天
2
0
Spring Boot集成RabbitMQ发送接收JSON

默认情况下RabbitMQ发送的消息是转换为字节码,这里介绍一下如何发送JSON数据。 ObjectMapper 最简单发送JSON数据的方式是把对象使用ObjectMapper等JSON工具类把对象转换为JSON格式,然后发送...

小致dad
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部