如何养胃用AQL数据库组网

Posts - 150,
Articles - 12,
Comments - 1160
(SQL Server & MySQL) DBA
11:59 by 听风吹雨, ... 阅读,
由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL;由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据;
上网找了些资料,如:、,虽然不知道里面的做法是否可以成功转移,但是里面的过程比较复杂,没有去尝试,后来自己找到了方法,最重要就是简单和准确(暂时没发现明显的BUG),这里分享给大家。
二、转移数据
我使用了MySQL的Client的工具SQLyog,这个工具的安装很简单。安装完成之后点击需要导入的目标数据库,点击右键【Import】-&【Import Extenal Data】;
(Figure1:Import)
选择【Start a new job】,点击【下一步】;
(Figure2:Start a new job)
下面就是DSN的设置界面,如果你的下来列表中没有需要导出SQL Server数据库的DSN,那么需要通过【Create a New DSN】来创建一个新的DSN连接到SQL Sever;
(Figure3:Create a New DSN)
(Figure4:创建新数据源)
(Figure5:选择数据源类型)
把上面的设置保存为一个local.dsn文件;
(Figure6:选择数据源保存路径)
(Figure7:选择SQL Server服务器)
(Figure8:设置SQL Server帐号和密码)
(Figure9:选择SQL Server数据库)
(Figure10:测试数据源)
(Figure11:测试成功)
选中【File DSN】,在浏览中选择我们刚刚创建好的DSN,接着填写登录到SQL Server的帐号和密码;
(Figure12:选择DSN)
下一步,选择目标MySQL服务器,填写IP地址和帐号密码,并且需要选择目标数据库;
(Figure13:设置MySQL帐号和密码目标数据库)
这一步类似SQL Server的导入导出功能,这里可以拷贝一个表或者使用SQL脚本过滤数据;
(Figure14:表拷贝)
上面的全部过程就是为创建SQL Server与MySQL的一个管道,接下来就是最为重要的设置SQL Server表与MySQL表之间的对应关系了;里面包括了SQL Server表字段与MySQL表字段之间的对应关系【Map】,高级选项【Advanced】,过滤【WHERE】。
(Figure15:选择表对应关系)
下图Figure16,数据源【Source】,描述【Destination】,特别注意这里数据类型【Type】,这里的意思是转换目标的数据类型,但是不需要跟目标表的一样,因为这里是做为一个临时存储的数据类型,类似FindOn在SQL Server中是datetime,这里转换为MySQL的timestamp,其实MySQL目标表的数据类型是datetime,这样的设置也是可以转换成功的。
(Figure16:表字段转换)
(Figure17:高级选项)
(Figure18:Error)
(Figure19:Log)
(Figure20:执行信息)
(Figure21:执行结果)
(Figure22:原始SQL Server的数据列表)
(Figure23:转移到MySQL的数据列表)
对比下Figure20与Figure21,发现我们数据已经全部转移成功了;IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
本文是“使用 InfoSphere BigInsights 实现社交媒体数据文本分析”系列文章的第二部分,具体为大家介绍 AQL 文本分析语言,如何使用 AQL 文本分析语言创建情感分析程序,以及如何发布并运行该文本分析应用程序,希望能够使读者对使用 InfoSphere BigInsights 实现社交媒体数据文本分析有一个比较全面的了解。
, 销售技术支持工程师, IBM
作者目前在 IBM 软件部工作,主要负责开发商在数据库和数据仓库方面产品的技术支持和培训,在 IT 行业有丰富的工作经验。是IBM 认证的 DB2 UDB 高级技术专家。
编写 AQL 程序Annotation Query Language (AQL) 是 InfoSphere BigInsights 文本分析组件中主要的编程语言,用来构建不同的抽取器 (extractor) 从非结构化、半结构化文本中抽取结构化信息以便进行文本分析。抽取器 (extractor) 可以认为就是一个 AQL 应用程序,它主要包括一个或多个 AQL 程序文件、相应的字典文件及 UDF jars 用户自定义函数类。AQL 语言不同于其它的文本分析语言,它采用类似 SQL 的语法,因此,简单、易用、易于理解及调试,可以为广大 SQL 开发者迅速掌握。另外,AQL 将语义分析同运行分开,开发者只需关心抽取什么样的文本信息,如何抽取,不需要关心 AQL 程序如何运行;AQL 提供了全局优化的功能,系统会自动按照优化的执行计划来运行。我们通常采用 InfoSphere BigInsights Eclipse 工具来编写 AQL 程序,开发文本分析抽取器。AQL 程序通常以.aql 为后缀,当 AQL 程序编译后,会生成 AOG (Annotation Operator Graph) 文件,文本抽取器的编译格式,是运行组件调用的执行计划,用来执行文本抽取任务。AQL 数据模型同关系数据库类似,所有数据保存在元组 (tuple) 中,数据记录由一个或多个字段组成,元组的集合组成视图 (View),视图中的元组模式要相同。AQL 中对数据的操作主要针对视图,我们可以使用 create view 语句创建视图,也可以使用 OUTPUT VIEW 语句物化该视图,以便查询执行结果。AQL 支持的数据类型主要包括:Span:文本对象中一个连续字符片段;Integer: 32 位带符号整数;Float:单精度浮点数;Text:Unicode 字符串,同时包含附加元数据指定字符串属于哪个元组;List:内置列表类型,包含 Span、Integer、Float、Text 类型数据的列表。编写 AQL 抽取器 (extractor) 通常从编写最基本的规则开始,构造一系列原子视图,之后按照一定的模式合并上述基本规则构建多个候选复杂规则,最后审查、整合候选规则,并过滤掉非法结果集。我们可以使用 InfoSphere BigInsights Eclipse 开发工具中文本分析工作流透视图提供的 Extraction Tasks 及 Extraction Plan 特性来开发 AQL 抽取器并生成相应的规则。基本规则基本规则是 AQL 中最基础的构建模块,它主要包括以下类型:正则表达式 (Regular expression)我们通常使用正则表达式按照一定的模式来匹配文本信息。如下所示,我们需要识别数值类型,并可以包含小数点:清单 1. 使用正则表达式匹配文本信息-- Identify mentions of numbers with optional decimals
-- Example: 7, 49, 11.2
create view Number as
extract regex /\d+(\.\d+)?/
on R.text as match
from Document R;AQL 中,支持的主要模式包括:Regex 表达式ConstructMatches\\Backslash\tTab\nNewline\rCarriage Return\eEscape CharacterSpace[abc]a, b, or c[^abc]Any character except a,b, or c[a-z]A through z, inclusiveABA followed by BA|BA or B预定义的字符类别any characterThat particular character.Any character except newline\wAny word character\WAny non-word character\{L}Any word character\L{Ll}Any lowercase word character\L{Lu}Any uppercase word character\dAny digit [0-9]\DAny non-digit\sAny whitespace character\SAny non-whitespace character边界匹配及量词表达ConstructMatches^The beginning of a line$The end of a line\bA word boundary\BA non-word boundaryX?X, once or not at allX*X, zero or more timesX+X, one or more timesX{n}X, exactly n timesX{n,}X, at least n timesX{n,m}X, between n and m times字典 Dictionary我们通常使用字典来匹配固定单词或词组。我们可以创建 inline 字典 (在 AQL 文件中创建),也可以使用外部文件创建字典。如下所示,我们创建了 MyDict in-line 字典,它仅包含“Finance”一个条目。清单 2. 创建字典 MyDictcreate dictionary MyDict as (’Finance’);如果条目很多,我们可以使用外部文件来创建字典。使用外部文件方式不需要修改代码就可以增加或改变字典中的条目。默认情况下,字典的实例化在编译时发生,也就意味着,编译之后字典的条目不能再被修改;我们也可以使用 create external dictionary 语句在运行时实例化字典,这样,我们在运行时也可以改变字典的条目。如下示例,我们通过本地 unit.dict 文件创建了 UnitDict 字典:清单 3. 创建字典 UnitDict-- Define a dictionary of financial amount units
-- Example: million, billion
create dictionary UnitDict
from file 'dictionaries/unit.dict'
with language as 'en';候选生成规则我们可以按照一定的模式合并上述基本规则构建多个候选复杂规则。比如,我们可以通过组合“数值”及“计量单位”2 个基本规则构造“总额”候选规则。候选规则主要包括如下几种类型:Select我们可以使用 select 语句合并来自多个视图中的数据,如下所示:清单 4. 使用 select 语句-- Identify candidate indicators as a mention of metric followed within
-- 0 to 10 tokens of a mention of amount
-- Example: Gross profit margin of 46.1 percent, cash flow of $8.7 billion
create view IndicatorCandidate as
select M.match as metric, A.match as amount,CombineSpans(M.match, A.match)
as match from Metric M, Amount Awhere FollowsTok(M.match, A.match, 0, 10);Union All如下所示,我们通过 Union All 语句获取来自不同规则的实体的集合:清单 5. 使用 Union All 语句-- Union all absolute and percentage amount candidates
-- Example: $7 billion, $11.52, 49 percent, 46.1 percent
create view AmountCandidate as
(select R.* from AmountAbsolute R)
(select R.* from AmountPercent R);Block我们可以使用 blocks 抽取定义来指定输入文本中的一个连续字符片段。如下所示,我们需要在 0-5 个连续标记符中准确识别 2 个大写单词: 清单 6. 使用 blocks 抽取定义create view TwoCapitalizedWords as
extract blocks
with count 2
and separation between 0 and 5 tokens
on CW.word as capswords
from CapitalizedWords CW;Pattern如下所示,我们可以使用简单的模式来获取相关实体信息:清单 7. 使用 Pattern 抽取定义-- Identify mentions of absolute amounts as a sequence of '$' character,
-- followed by a Number mention, optionally followed by a Unit mention
-- Example: $7 billion, $11.52
create view AmountAbsolute as
extract pattern /\$/ &N.match& &U.match&?
return group 0 as match
from Number N, Unit U
过滤及合并规则我们可以使用过滤及合并 (consolidate) 规则去除不正确的的标注及重复的标注,进一步优化候选规则。合并规则(Consolidate)如下所示,我们使用 consolidate on 子句去除重复的标注:清单 8. 使用 consolidate on 子句-- Consolidate overlapping Indicator mentions
create view Indicator as
select R.metric as metric, R.amount as amount, R.match as match
from IndicatorAll R
consolidate on R.match using 'NotContainedWithin';Predicate-based Filter如下所示,我们使用基于字典的简单过滤条件:清单 9. 使用简单过滤条件-- Negative clues that signal a relative amount
-- Example: increased, decreased, down, up
create dictionary AmountNegativeClueDict
from file 'dictionaries/amount_negativeClue.dict'
with language as 'en';
-- Identify those candidate indicators that are absolute:
-- the span between the metric and amount does not contain
-- a“relative amount”clue
create view IndicatorAbsoluteCandidate as
select I. metric as metric, I.amount as amount, I.match as match
from IndicatorCandidate I
where Not(MatchesDict('AmountNegativeClueDict', SpanBetween(I.metric, I.amount)));Set-based Filter如下所示,我们采用基于集合的过滤方法:清单 10. 使用集合过滤条件-- Identify one type of invalid Indicator candidates: mentions that contain
-- another metric in between the Metric and Amount mentions
-- Example:
-- [EPS growth]; Revenue of [$99.9 billion]
-- [revenue] up 19 Free cash flow of [$8.7 billion]
create view IndicatorInvalid1 as
select R.*
from IndicatorCandidate R, Metric M
where Contains(SpanBetween(R.metric, R.amount), M.match);
-- Filter out invalid Indicator mentions from the set of all
-- Indicator candidates
create view IndicatorAll as
(select R.* from IndicatorCandidate R)
(select R.* from IndicatorInvalid1 R);我们首先在 InfoSphere BigInsights Eclipse 工具中选择 File-&New 菜单,并选择创建 AQL Module,在已经创建的 Sentiment 项目中创建 WatsonBase AQL 模块。编写 AQL 基本规则接下来,我们编写一个 AQL 基本规则,用来从输入文档中选择包含“Watson”条目的文档信息。我们在 InfoSphere BigInsights Eclipse 工具的右侧,选择 Extraction Plan 视图,并选择“Watson”标记,右键选择 New AQL Statement-&Basic Features AQL Statement,如下所示:图 1. 创建 AQL 基本规则我们在 WatsonBase AQL 模块中创建 WatsonBasic AQL 程序,其类型为 Dictionary,创建 AllWatson 视图,并输出该视图用于查看执行结果。接下来,我们在生成的 WatsonBasic.aql 程序中输入如下代码,如下所示:清单 11. WatsonBasic.aql 程序module WatsonB
-- Define the input document schema
require document with columns
ThreadId Text and
TextHtml Text and
-- Detag the input document
detag Document.TextHtml as NoTagDocument
detect content_
create dictionary AllWatsonDict as ('Watson');
create view AllWatson as
R.text as text,
dictionary 'AllWatsonDict' on R.text as match
from NoTagDocument R;
output view AllW在 WatsonBasic.aql 程序代码中,我们首先需要指定输入文档视图的数据定义。本文中,我们定义了 ThreadId、TextHtml、Type 三个字段,其中,TextHtml 字段包含了我们需要分析的文本信息。我们可以使用 require document with columns 语句定义输入文档视图的数据定义。如果没有使用该语句进行定义,默认情况下,输入文档视图包含 (text Text, label Text) 两个字段,其中,text 字段包含当前文档的文本信息,label 字段用来标识当前分析的文档。由于我们从社交媒体收集到的文档信息是 HTML 文档格式,我们需要使用 detag 语句去除掉相关的 Tag 标记信息。本文中,我们通过使用 detag Document.TextHtml as NoTagDocument
detect content_语句对 TextHtml 字段中的 HTML 文档信息进行预处理,去除 Tag 标记信息,并将结果保存到 NoTagDocument 文档中。接下来,我们创建了 AllWatsonDict 数据字典,包含“Watson”条目;并创建了 AllWatson 视图,包含 text、match 两个字段,保存 NoTagDocument 文档中包含'Watson'条目的文档信息及匹配条目。我们可以在 InfoSphere BigInsights Eclipse 工具的左侧,选择 Extraction Task 视图,并选择步骤 4 来测试、运行我们创建的 AQL 程序,如下所示:图 2. 运行 WatsonBasic AQL 程序本文中,我们选择基于整个文档运行 AQL 程序,执行结果如下所示,我们可以通过 Annotation Explorer 视图查看匹配的条目及上下文相关信息,同时,可以通过双击 Annotation Explorer 视图中的匹配条目查看该条目在输入文档的相关信息。图 3. 查看匹配结果生成 AQL 候选规则我们通过创建基于字典的基本规则从输入文档中抽取出了所有包含“Watson”条目的文档信息。通过查看这些包含“Watson”条目的文档信息,我们发现,其中包含了一些类似“Watson research center”条目信息,这些并不是我们真正需要的,即所谓 false positives 信息。我们需要编写 AQL 候选规则来识别并去除这些所谓 false positives 信息。我们在 InfoSphere BigInsights Eclipse 工具的右侧,选择 Extraction Plan 视图,并选择“Watson”标记,右键选择 New AQL Statement-&Candidate Generation AQL Statement,如下所示:图 4. 生成 AQL 候选规则我们在 WatsonBase AQL 模块中创建 WatsonCandidate AQL 程序,其类型为 Select,创建 NoResearchWatson 视图,并输出该视图用于查看执行结果。接下来,我们在生成的 WatsonCandidate.aql 程序中输入如下代码,如下所示:清单 12. WatsonCandidate.aql 程序module WatsonB
-- Use a predicate on the right context
-- of all Watson instances to remove any rows where
-- Watson refers to the research center
create dictionary ResearchDict
with case insensitive
as ( 'research center','research centre');
create view NoResearchWatson as
select R.text, R.match from AllWatson R
where Not(ContainsDict('ResearchDict',RightContextTok(R.match,4)));
output view NoResearchW在 WatsonCandidate.aql 程序代码中,我们创建了 ResearchDic 数据字典,包含“research center”、“research centre”条目,且不区分大小写;创建了 NoResearchWatson 视图,包含 text、match 两个字段,用来保存 AllWatson 文档中不包含“Watson research center”、“Watson research centre”条目的文档信息及匹配条目。这里,我们使用了 ContainsDict AQL 函数,用来匹配“Watson”条目右边 4 个标记之内包含“research center”、“research centre”条目的文档记录。编写 AQL 合并规则通过运行上述 AQL 程序,我们可以发现,每一个“Watson”匹配实例都会生成一条文档记录,可能会出现相同的输入文档对应多个“Watson”匹配实例,我们需要合并这些记录,相同的输入文档只需要对应一个“Watson”匹配实例即可。我们在 InfoSphere BigInsights Eclipse 工具的右侧,选择 Extraction Plan 视图,并选择“Watson”标记,右键选择 New AQL Statement-&Filter and Consolidate AQL Statement,如下所示:图 5. 编写 AQL 合并规则我们在 WatsonBase AQL 模块中创建 WatsonConsolidate AQL 程序,其类型为 Consolidate,创建 Watson 视图,并输出该视图用于查看执行结果。接下来,我们在生成的 WatsonConsolidate.aql 程序中输入如下代码,如下所示:清单 13. WatsonConsolidate.aql 程序module WatsonB
-- Consolidate to single instances of each valid occurrence of Watson
create view Watson as
select R.*
from NoResearchWatson R
consolidate on R.text using 'ContainedWithin';
output view W在 WatsonConsolidate.aql 程序代码中,我们创建了 Watson 视图,包含 text、match 两个字段,用来保存单一“Watson”匹配实例的文档信息及匹配条目。编写情感分析 AQL 程序接下来,我们针对社交媒体数据中有关“Watson”主题进行情感分析。我们知道,情感分析是一个比较复杂的应用,它不仅仅要识别对“Watson”主题的正面、负面及中立评价,同时需要结合上下文来进行基于语义的判别。本文中,我们分别创建了正面评价、负面评价词汇字典,并针对上边步骤处理完成的 Watson 输入文档统计正面评价词汇及负面评价词汇的数量,同时,我们创建了 Subtraction Java UDF 函数用来计算正面评价数量同负面评价数量的差值,如果大于 0,我们就认为总体是正面评价,小于 0 为负面评价,等于 0 为中性评价。最后,我们通过 BigSheet 用饼图进行图形化展示。首先,我们从本地将 Positive.dict、Negative.dict 字典文件导入到 Sentiment 项目下的 textAnalytics-&src-&WatsonBase 文件夹下,其中,Positive.dict 代表正面评价词汇表,它根据不同行业、不同应用场景会有不同的定义,本文中的正面评价字典基于社交媒体应用场景,字典片段如下所示:清单 14. Positive.dict 词汇表authentic
adventurous
… …Negative.dict 代表负面评价词汇表,其字典片段如下所示:清单 15. Negative.dict 词汇表Abandoned
… …接下来,我们在 WatsonBase AQL 模块中创建 WatsonSentiment AQL 程序,其类型为 Dictionary,并创建 Positive 视图。之后,我们在生成的 WatsonSentiment.aql 程序中输入如下代码,如下所示:清单 16. WatsonSentiment.aql 程序module WatsonB
create dictionary PositiveDict
from file 'Positive.dict'
with language as 'en';
create view Positive as
extract dictionary 'PositiveDict'
on R.text as match
from Watson R;
create dictionary NegativeDict
from file 'Negative.dict'
with language as 'en';
create view Negative as
extract dictionary 'NegativeDict'
on R.text as match
from Watson R;
create view NumPositive as
select Count(P.match) as num from Positive P;
output view NumP
create view NumNegative as
select Count(N.match) as num from Negative N;
output view NumN在 WatsonSentiment.aql 程序代码中,我们创建了基于外部字典文件的 PositiveDict 数据字典,包含正面评价词汇,创建了基于外部字典文件的 NegativeDict 数据字典,包含负面评价词汇;分别创建了包含正面评价词汇的 Positive 视图及包含负面评价词汇的 Negative 视图;之后使用 AQL Count() 函数分别统计正面评价词汇及负面评价词汇的数量。开发 Subtraction Java UDF接下来,我们需要创建 Subtraction Java UDF 函数用来计算正面评价数量同负面评价数量的差值。我们在 InfoSphere BigInsights Eclipse 工具的左侧,选择 Project Explorer 视图,在 Sentiment 项目下选择 JRE System Library-&src 文件夹右键选择 New-&Class,如下所示:图 6. 创建 Java Class输入 package“com.ibm.taudfs”及 name AQLMath,并点击 Finish 按钮,如下所示:图 7. 创建 AQLMath Java Class并在 AQLMath 类中增加 sub 方法,用来实现简单的减法操作,如下所示:清单 17. AQLMath 类AQLMath.java
package com.ibm.
public class AQLMath {
public Integer sub(Integer i, Integer j) {
return i -}
}我们已经实现了 sub Java UDF 函数,需要将其导出到 Jar 文件中以便今后调用。我们选择 Sentiment 项目名称右键选择 Export,在接下来的界面中选择 Java-&JAR file,并点击 next 按钮,选择 Sentiment 项目下的 src 文件夹,并选择 exporting generated class files 选项,指定 JAR 文件导出路径 /home/biadmin/taudfs.jar,并点击 Finish 按钮,如下所示:图 8. 导出 taudfs.jar 文件我们可以将创建的 UDF 添加到一个独立的 AQL 模块中,这样,UDF 函数可以在不同的抽取程序中复用。我们选择 File-&New-&Other-&BigInsights-&AQL Module 创建 Common AQL 模块。在 InfoSphere BigInsights Eclipse 工具的左侧,选择 Project Explorer 视图,选择 Sentiment 项目下的 textAnalytics-&src-&Common 文件夹,右键选择 Import-&General-&File System 导入我们刚创建的 taudfs.jar 文件。接下来,我们在 AQL Common 模块中创建 AQL 程序文件。我们选择 File-&New-&Other-&BigInsights-&AQL Script,选择 Sentiment 项目及 Common 模块,输入 Common.aql 文件名,并点击 Finish 按钮。在生成的 Common.aql 文件中输入如下代码注册 Java 函数为 AQL UDF,如下所示:清单 18. Common.aql 文件module C
-- TODO: Add AQL content here
-- Define the input document schema
require document with columns
ThreadId Text and
TextHtml Text and
create function sub(i Integer , j Integer)
return Integer
external_name 'taudfs.jar:com.ibm.taudfs.AQLMath!sub'
language java
deterministic
当创建完成 AQL UDF 后,我们需要返回到 WatsonSentiment.aql 程序,调用新创建的 AQL UDF 来计算正面评价数量同负面评价数量的差值,如果大于 0,我们就认为总体是正面评价,小于 0 为负面评价,等于 0 为中性评价。首先,我们需要在 WatsonSentiment.aql 程序的开始导入 Common module,并在程序的后边创建 FinalScore 及 Sentiment 视图,最终输出总体情感分析结果。如下所示:清单 19. 修改 WatsonSentiment.aql 程序module WatsonB
import module C
create dictionary PositiveDict
from file 'Positive.dict'
with language as 'en';
create view Positive as
extract dictionary 'PositiveDict'
on R.text as match
from Watson R;
create dictionary NegativeDict
from file 'Negative.dict'
with language as 'en';
create view Negative as
extract dictionary 'NegativeDict'
on R.text as match
from Watson R;
create view NumPositive as
select Count(P.match) as num from Positive P;
--output view NumP
create view NumNegative as
select Count(N.match) as num from Negative N;
--output view NumN
create view FinalScore as
select Common.sub(p.num, n.num) as score
from NumPositive p, NumN
create view Sentiment as
when GreaterThan(r.score,0) then 'Positive'
when Equals(r.score,0) then 'Neutral'
else 'Negative'
as sentiment
from FinalS
output view S发布抽取程序接下来,我们需要使用 InfoSphere BigInsights Eclipse 工具提供的应用程序发布向导将我们创建的抽取程序发布到 BigInsights 集群上。我们选择 Project Explorer 视图,选择 Sentiment 项目名称,右键选择 BigInsights Application Publish,接下来,选择 Create 按钮创建 BigInsights 服务器,如下所示:图 9. 创建 BigInsights 服务器在 URL 栏目,我们输入 http://imtebi1:8080;服务器名栏目,我们输入 BigInsights 所在服务器 imtebi1;User ID 栏目,输入 biadmin;Password 栏目,输入 password,并选择 Test Connect 测试连接是否成功。接下来,在 Location 栏目,我们选择刚刚创建的 imtebi1 BigInsights 服务器,如下所示:图 10. 选择 BigInsights 服务器在 Application 栏目,我们选择 Create New Application,并输入应用程序名称 Sentiment,如下所示:图 11. 创建 Sentiment 应用在 Type 栏目,我们选择 Text Analytics 应用类别,如下所示:图 12. 选择 Text Analytics 应用类别在 Text Analytics 栏目,我们选择 WatsonBase 模块,WatsonBase.Sentiment 作为 Output Views,如下所示:图 13. 选择 WatsonBase.Sentiment 输出视图在 BigSheets 栏目,我们输入 Sentiment 作为 ID,如下所示:图 14. 创建 BigSheets ID在 Public 栏目,我们点击 Finish 按钮执行抽取程序发布工作。运行文本抽取程序当我们将抽取程序发布到 BigInsights 服务器上之后,我们需要使用 BigInsights Web Console 管理工具部署该应用才可以运行文本抽取程序。我们通过 http://imtebi1:8080 访问 BigInsights Web Console 管理工具,选择 Applications 栏目,选择 My Applications-&Sentiment 应用,双击 Sentiment 应用,并点击 Deploy 按钮部署该应用,如下所示:图 15. 部署 Sentiment 应用当 Sentiment 应用部署到 BigInsights 服务器上之后,我们可以通过 BigSheets、Jaql 、Java API 三种方式调用 Sentiment 情感分析程序。本文中,我们使用 BigSheets 工具调用 Sentiment 情感分析程序并通过饼图展示分析结果。我们在 BigInsights Web Console 管理工具中选择“BigSheets”栏目调用 BigSheets 应用程序。在 BigSheets 应用程序中,我们选择“Watson All” Sheet 对来自 blog 及 news 中的全部信息进行文本分析,并选择 Build new workbook 按钮构造新的工作薄,接下来,我们选择 Add Sheets 按钮并选择 Function 选项,选择 Categories 栏目,并选择 textanalytics-&WatsonBase.Sentiment 函数,如下所示:图 16. 选择 WatsonBase.Sentiment 函数在 Sheet Name 栏目,输入 Sentiment;本实例中,WatsonBase.Sentiment 函数的输入参数是我们 AQL 语句“require document with columns”定义的字段名称,我们需要将这些字段映射到输入 JSON 文档中的字段上,如下所示:图 17. 输入 WatsonBase.Sentiment 函数参数我们选择 save 按钮,并选择 save and exit option 保存 Sentiment sheet。接下来,我们选择中间的 Run 按钮针对所有数据集运行情感分析程序,并等待 100%完成。我们希望使用饼图来展示运行结果,在该页面上我们选择 Add chart 按钮,并选择 chart-&Pie,如下所示:图 18. 选择饼图在饼图选项中,我们输入如下信息:Chart Name:Sentiment,Title:Sentiment,Value:Sentiment,Limit:10,并选择确认按钮,如下所示:图 19. 输入饼图参数我们选择中间的 Run 按钮针对所有数据集运行情感分析程序,并等待 100%完成,运行结果如下所示:图 20. 饼图展示输出结果我们看到,针对“Watson”主题,正面评价占 57.8%,中立观点占 35%,负面评价占 7.2%。结束语通过上述介绍,我们对 IBM 大数据文本分析体系结构有了一定的了解,对 BigInsights 文本分析端到端的处理流程有了一定的认识。了解了如何通过 BigInsights 提供的 BoardReader 应用程序抓取微博、News、Video、Boards 社交媒体数据,如何使用 Bigsheets 针对微博、News 数据进行数据预处理,以及如何使用 BigInsights 提供的 Eclipse plug-in 开发工具以及 AQL 文本分析语言开发文本分析应用,如何创建 AQL UDF 函数,如何使用 Bigsheets 运行文本分析程序以及如何使用 Bigsheets 进行格式化输出。希望能够帮助大家快速掌握开发使用 BigInsights 文本分析应用的基本方法。
参考资料 。
,获得更多 BigInsights 使用、管理相关知识。
在 ,了解关于大数据的更多信息,获取技术文档、how-to 文章、培训、下载、产品信息以及其他资源。
,学习更多信息管理方面的知识。随时关注 developerWorks
和 ,了解各种 IBM 产品和 IT 行业话题。
:聆听针对软件开发人员的有趣的访谈和讨论。:观看面向初学者的产品安装和设置演示,以及为经验丰富的开发人员提供的高级功能。下载 。使用可以直接从 developerWorks 下载的
构建您的下一个开发项目。
并加入 :查看开发人员推动的博客、论坛、群组和 wikis,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Information ManagementArticleID=989855ArticleTitle=使用 InfoSphere BigInsights 实现社交媒体数据文本分析,第 2 部分: 使用 AQL 编写文本分析程序的方法及实践publish-date=}

我要回帖

更多关于 如何养胃 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信