首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Excel 表单辅助 AQL 规则定义和开发(1)

使用 Excel 表单辅助 AQL 规则定义和开发(1)

AQL 简介AQL(Annotation Query Language)作为 InfoSphere BigInsights 的主要组件之一,用来分析处理文本信息。使用 AQL 脚本,可以对文本的内容进行分类分析,判断文本中蕴含的情绪,提取出文本所描述的事件等。一个 AQL 模块设计的好坏,直接影响到整个程序的分析准确性与可信性,是大数据文本分析中最关键的一环。
AQL 使用分析规则来对输入文本进行解析,而分析规则的制定则是其中的关键点。当我们需要对某一种行为进行提取分析时,如何描述对该行为进行描述,并将描述规范化为我们需要的分析规则,如何判断文本发布者所发布的文本满足我们要提取的规则。
一般情况下,语言方面的专家来进行 AQL 规则的设计,而语言方面的专家并不是 AQL 的开发人员,两者之间需要一种简明的沟通方式。本文描述了如何使用 excel 来定义及实现 AQL 的规则,这样就提供了一种方法,可以使 AQL 规则的定制者和实现者通过规范的 excel 文件进行沟通,避免了沟通中的误解,提高了沟通效率。
以下通过一家虚构的婴儿用品公司 Baby Stuff 为例,分别从 AQL 规则的定制和实现两部分来阐明。
规则定制部分一家虚拟的婴儿用品公司Baby Stuff 公司的主要产品为母婴用品,包括孕期用品和婴儿用品,因此 Baby Stuff 公司想要通过社交媒体,如 twitter,来获得一些怀孕的客户或刚有宝宝的客户信息,从而进行产品推广。我们需要通过对 twitter 上发布的信息进行分析,提取出哪些在 twitter 中发布了怀孕信息或生宝宝信息的客户的 twitter id,而 Baby Stuff 公司将根据这些 twitter id 来进行产品推广活动。
通过对以上需求的分析,可以发现,我们需要找出以下两类人:
  • 怀孕的人
  • 刚有宝宝的人
句式分析以“怀孕的人”为例,深入分析句型之后会发现,主要用来表明该语句的含义的关键点在主语和谓语上。例如:“I am pregnant.”这句话,表明作者是我们要找的人,而“My friend is pregnant.”则不是要找的人。因此,我们可以很容易的定义出第一条规则:
规则 1: I + pregnant
同样的,“My wife is pregnant.”也是我们要找的目标之一,因此,添加如下规则:
规则 2: my wife + pregnant
对比可以发现,规则 1 和规则 2 其实有相同的句式,而不同的只是主语的不同。因此我们可以用一条规则来描述它:
规则: I/my wife + pregnant
当我们的规则中,主语、谓语和其他定语状语的选择增加的时候,使用以上的描述方法就不合适了,因此,我们引进 excel 来描述规则。
图 1 给出了一个规则描述的 excel 模板,通过填写模板,我们可以很快速以及直观的定义出“怀孕的人”所需要的规则。
图 1. pregnant 规则此时我们就有了第一条规则的雏形。该规则只是描述了“I am pregnant”,却没有除去如:“I am not pregnant”这样的句子。这时就用到了那些表头为“不包含”的列。对比以上的表单,我们需要将 not 添加在状语的不包含列,从而剔除哪些否定的语句。
除了否定含义的语句,假设性含义的语句也不是我们要筛选的内容,因此如“if I was pregnant, …”也需要被剔除。对比表单,我们将“if”添加在定语的不包含列中。
除了状语的不包含列中的 not,包含了 never、don’t、won’t 等都是需要被剔除的语句,而定语的不包含列中,除了 if,包含了 when、hope、wish 等词的语句也应该被忽略。同时为了模糊匹配 pregnant,我们还可以添加一些常用的错词来作为谓语。因此,最后的 excel 将如图 2 所示。
图 2. 优化后的 pregnant 规则应用同样的方法,我们定义了“刚有宝宝的人”的规则。
图 3.“刚有宝宝的人”的规则至此,我们已经定义了两条规则来描述“怀孕的人”和“有宝宝的人”。在实际应用中,每一类人的描述可能都是多条规则的组合,例如,除了以上定义的“刚有宝宝的人”的规则以外,还有如“I became a father.”这样的规则,可以用来描述“有宝宝的人”。当我们发现了新的规则或者需要修改已有规则时,都可以通过修改 Excel 表单来直观的反映。通过在 excel 表单中添加和修改规则,可以直观而快速的了解到:AQL 脚本都由哪些规则描述,这些规则是如何定义的。当修改规则之后,只需要在相应的 AQL 脚本中做部分修改就可以了,从而减轻的开发和维护的成本。
返回列表