Watson Explorer 入门(1):非结构化数据相关概念
来源:互联网 发布:ip地址及端口号 编辑:程序博客网 时间:2024/05/16 03:44
(许野平的Watson Explorer 学习笔记)
关于 IBM Watson Explorer
IBM Watson Explorer 这个产品并不容易弄明白其运行机制。我看不少朋友虽然参加过几次培训了,但是仿佛还是有些云里雾里说不清楚门道。所以我觉得有必要停下脚步,整理一下学习笔记,理一理 Watson Explorer 的架构体系和开发的基本方法,或许能帮助初学的朋友们快速入门。
学习 Watson Explorer 的目的纯粹出于产品开发的需要。我目前从事服务机器人开发,我个人认为,机器人短期内不可能达到人类的思维水平。别拿 AlphaGo 来给我说事,因为下棋这种活就是挺适合用计算机来做。尽管如此,但是我们还是有可能让机器人看上去有生命、会思维。我觉得主要解决两个问题:一个是让机器人学会用眼睛注视人,这个技术上不难做到,但是国内厂商似乎对这个不感兴趣,这个令我很郁闷;另一个是让机器人要能与人对话,我觉得这个比较有挑战性,我对搞定这个问题很感兴趣。
IBM Watson 系统曾在美国一个竞答电视节目中战胜人类冠军,其中用到的技术就是基于 Watson Explorer 的。所以,我觉得利用这个产品,应该有助于我快速达成目标。
既然是整理学习笔记,基本上就是按照学习过程写的,不一定很有逻辑性。这个只能等我整理完全部内容,再按照一定的逻辑关系另写一份教程了。
Watson Explorer 的关键概念
我们开发应用系统,一般离不开数据库。在关系型数据库中,其数据存储在表中,表又分为若干字段,为快速检索,有些字段又有索引。
Watson Explorer 和数据库有很多类似的地方。数据库以结构化的形式处理数据,Watson Explorer 则以半结构化和非结构化形式处理数据。尽管数据结构差别很大,但是宏观思路还是有很多相思的地方。
集合(Collection),是 Watson Explorer 的核心,无论是搜索,还是分析,都是围绕着Collection 展开的。Collection 类似数据库中的表(Table),更类似数据仓库中的多维数据集(Cubes),如果有数据库、数据仓库的经验,很容易理解 Watson Explorer。
(这一部分还没写完,待续… …)
结构化、半结构化、非结构化数据
在我们和计算机打交道的过程中,会遇到三种类型的数据:结构化数据、半结构化数据、非结构化数据。
- 结构化数据:格式固定的数据。常规数据库中的大部分数据、Excel表中按照固定格式填写的数据,基本上都属于结构化数据。
- 半结构化数据:虽然数据没有固定的格式,但是数据项带有类别说明之类的附加信息。例如“姓名=特朗普,职务=美国总统”这样的说明,可以看作是半结构化数据。
- 非结构化数据:完全没有任何格式信息的数据。例如我们平时看到的文章、书籍等文字信息,就是基于自然语言的非结构化数据。
非结构化数据的地位
我们每天都浏览的互联网、读报纸、看电视,接触的信息几乎全部分都是非结构化数据。
非结构化数据在人类交流互动中占据绝对的数量优势,这并非偶然的结果。人类擅长阅读各类非结构信息,例如文章、音频、图像、视频等。如果每天上网看到的都是各种数据报表,恐怕人类就受不了了。所以,即使计算机内部处理的都是各种结构化数据,最终呈现给人类的时候,也都会转换成各种直观的非结构化数据的形式。
Watson Explorer 是帮助我们处理非结构化数据的开发工具,是 IBM Watson 认知技术家族的底层产品,大概类似 MySQL 在数据库应用系统中的地位。如果我们打算开发基于自然语言、图像、视频等非结构化数据的应用系统,Watson Explorer 可以提供比较丰富的底层支持能力。这里提供的第一个练习,是一个非常基础的入门练习,利用一个简单的非结构化数据分析过程,展示 Watson Explorer 的基本操作。
测试数据:NHTSA
NHTSA是美国高速交通安全管理局的缩写,英文全称为National Highway Traffic Safety Administration 。由于享有很高的权威性和公正性,其每年的测评结果不仅在美国本土为广大消费者所认可,也被全球范围内消费者作为汽车购买的权威标准。
这里我们用NHTSA提供的客户投诉数据,看看如何利用 Watson Explorer 分析这些基于自然语言的投诉内容,看看从中能得到什么有价值的信息。
我研究了一下NHTSA的客户投诉记录,发现还算不上完全非结构化的数据,宏观上看包括 36 个字段。列表如下:
翻译完这一段快累死我了,谁要是引用我的成果,强烈要求注明本作者版权,哈哈哈!
内容我仔细看了一下,非结构化数据主要体现在第20个字段,投诉内容的详细描述部分。这一部分内容是基于自然语言的文字描述。Watson Explorer 有多大本事? 接下来我们看看它从这一部分内容中能挖掘出什么价值的内容。
构面(Facet)
Watson Explorer 有一个很重要的概念——构面,英语是 Facet。
构面是咋回事呢?我现在只能给一个大致的说明。比如说,客户询问计算机系统“我有些头痛,是不是感冒了?”。
如果有一种机制,能够帮助我们说明“头痛”是一种病症,“感冒”是一种疾病,那么这句话就很容易转化成半结构化的形式“病症=头痛,疾病=感冒,问题=确认疾病”。这样的话,后续处理就会很容易了。于是乎, Watson Explorer 实现了这一机制,在这种机制下,上面说的病症、疾病等都以构面的进行设置定义。比如我们可以定义一个名称为“病症”的构面,并把“头痛”等词汇设置为该构面的元素,这样在句子中看到“头痛”这个词,就可以标注为“病症”。
和结构化数据比较的话,构面非常类似数据库中“字段”的概念。如果把表的行当作一句话来分析的话,数据库表中的每一行的句子结构都是完全一样的。而基于人类自然语言的句子,则无法做到和数据库的表一样完全严格的结构化。因此,不能保证构面何时何地在何处出现。但是,我们可以利用构面,把自然语言句子实现半结构化分析。
当然这只是简单的说说而已,构面真正的价值和作用需要在后续的练习中慢慢体会和了解。
为 HNTSA 的数据设置构面
为了在内容分析挖掘器(Content Analytics Miner)中分析 HNTSA 提供的数据,我们需要设计一些构面。在本练习中,我们设置下面这些构面(Facet)。当然这里的构面直接借助投诉表的字段来定义。
- CDESCR CMPL_TYPE(facet - Complaint Source)
- COMPDESC(facet - Component)
- CRASH(facet - Crash)
- DEATHS(facet - Deaths)
- FAILDATE (facet - Fail Date)
- FIRE(facet - Fire)
- INJURED(facet - Injured)
- MAKETXT (facet – Make)
- MFR_NAME(facet - Manufacture)
- MODELTXT (facet - Model)
- YEARTXT(facet - Year)
由于这些构面的内容和数据类型的特点,在使用过程中可以设置多种不同的搜索选项。下面列举了这些构面一些可能选项:
- 可作为搜索结果(Returnable) - 可在搜索结果中显示字段的值。
- 构面搜索(Faceted search) - 字段在搜索结果中可作为构面显示。
- 自由文本搜索(Free text search) - 字段可以接受自由文本搜索。
- 字段搜索(Fielded search) - 字段可以按照字段名称搜索。
- 参数搜索(Parametric search) - 字段可以接受参数化查询和排序。可以同时指定该选项和文本排序选项。
- 可分析(Analyzable) - 字段作为文档内容进行分析。
例如,在本练习中,我们可以按照如下方式设置这些选项:
到此为止,我们了解了非结构化数据的相关概念,接下来我们要探讨如何利用 Watson Explorer对这些数据进行分析。
(未完待续……)
- Watson Explorer 入门(1):非结构化数据相关概念
- Watson Explorer 入门(12):词典
- Watson Explorer 入门(7):配置 UIMA 管道
- Watson Explorer 入门(8):测试 UIMA 管道
- Watson Explorer 入门(9):导出 UIMA 管道
- Watson Explorer 入门(13):配置中断规则
- Watson Explorer 入门(3):创建搜寻器(crawler,数据爬虫)
- Watson Explorer 入门(2):创建集合(Collection)
- Watson Explorer 入门(4):内容分析工作室(Studio)使用方法
- Watson Explorer 入门(5):配置内容分析工作室(Studio)
- Watson Explorer 入门(6):开发和部署UIMA管道
- Watson Explorer 入门(10):导出 UIMA 管道至域适配搜索
- Watson Explorer 入门(11):配置词典和规则
- 非结构化数据
- Watson Explorer 基础组件概述
- 结构化数据,非结构化数据
- 非结构化数据存储
- 非结构化数据介绍
- 欢迎使用CSDN-markdown编辑器
- 获取本地JDK版本
- 欢迎使用CSDN-markdown编辑器
- sql server SQL语句集
- DeepMind Sonnet 编译及测试
- Watson Explorer 入门(1):非结构化数据相关概念
- c++连接mysql的中文编码问题
- 118. Pascal's Triangle
- 关闭流连接IO工具类
- copy constructor
- iOS开发中添加PrefixHeader.pch要注意的问题
- ReactNative打离线包流程(iOS)
- “Usage of API documented as @since 1.6+……”的解决办法
- Python进阶(四十四)-Python3实现基于PHA实现图像配准