机器学习与文本分析

jopen 8年前

本文首次发表于译言网,翻译自Technet.com,为[机器学习]系列文章之一。

发表地址: http://article.yeeyan.org/view/propiram/442378

下面这篇文章来自微软研究院的杰出科学家Ashok Chandra博士和项目经理Dhyanesh Narayanan。

在上个世纪七十年代,我(Ashok)是一名在斯坦福大学人工智能实验室的学生,那时大家乐观地认为,达到人类水平的机器智能指日可待。好吧,它 现在仍然还只是指日可待的状态。与此同时,计算机却得益于运用机器学习技术(ML),能力愈发强大。正是这样,现如今,几乎在微软创造的所有新产品都使用 了某种程度的机器学习技术来分析语音、数据或文本。本文我们将着眼于文本分析。

随着计算机能够更好地理解自然语言,开拓的新领域无处不在——优化的应用程序的用户界面、更出色的搜索引擎、如Cortana和Siri这样的私 人助理,以及推算给定文档所含内容的工具。例如,如果一个新闻网站文章中的相关人物,可以基于算法被链接至维基百科(或其它合适的数据库),从而便于读者 获取关于那些人的更多信息,那么这个新闻网站的使用体验便能更为出色。此外,通过在文本中添加标记,人们还能确定文章所谈及的具体实体(比如运动员、团队 等),如图1所示:

机器学习与文本分析

图 1 文本分析激励方案

文本分析一直是科学研究的活跃领域之一,并将继续蓬勃发展。毕竟,创建一个人类所有知识(以文本形式)的语义模型绝非易事。追溯到上个世纪90年 代,Brill标记技术[1]虽能确定句子中的词类,但[2]这样的早期工作仅能给新工作起到一个提示作用。微软研究院在这项科技领域,一直活跃于创造各 种新思路,但出于为了创造生产级技术这样实用性的考虑,我们在更深入研究时对新兴科学进行了取舍。

在这篇博客日志中,我们为你简单介绍,通过使用NER(命名实体识别技术)作为一个参考点,机器学习技术是如何应用于文本分析的。作为一个提供交 钥匙机器学习功能的平台,微软Azure ML(Azure机器学习)包括通用的文本分析功能,尤其支持NER技术——因此我们运用它将通用理念到特定的设计决策进行连接。

NER技术能够对文本中所引用的人、场所、组织、球队等内容进行确定。让我们简单看一下运用“监督式学习”(supervised learning)的方法,我们是如何解决这个问题的。

机器学习与文本分析

图2 命名实体识别的工作流

在设计时期或“学习时期”,系统运用训练数据来创建一个模型,确定学习内容。对系统而言,这个方案从一小组处理任意新文本的范本概括出来。

训练数据由需学习的命名实体而经过人工标注的标签所组成。它可能看起来像这样:“当(球员)Chris Bosh胜过他人,(球队)迈阿密热火就会成为主宰。”值得期待之处在于,一个拥有学习其他范本功能的模型,将可以被训练来识别新输入文本中的“球员”实 体和“球队”实体。

设计时期工作流的效果取决于特质提取(Feature Extraction)阶段——设计的功能所耗费的努力越多,通常得到的模型便会越为强大。比如,局部上下文和一段文字[say, the previous k words and next k words]中的一个单词相关联,这个强大的功能便相当于我们人类使用它来用单词关联实体。例如,“San Francisco beat the Cardinals in an intense match yesterday”(San Francisco在昨日激烈的比赛中击败Cardinals)这句话中,显然从上下文中可以知,这里的“San Francisco”是指一个球队(即旧金山巨人队),而不是指旧金山这座城市。大写形式是另一个有用的功能,在识别如“People”(人)或 “Location”(地点)等被命名的实体方面很有帮助。

模型训练,即生成好的模型,同样是机器学习的内容。它通常是由选定的特色功能经过复杂组合而来。有一些机器学习技术是可利用的,包括感知器、条件 随机域(CRF)等技术。技术的选择取决于,在训练数据、处理速度和需同时学习而互异的命名实体的数量都有限的条件下,这个模型能够变得有多准确。例如 Azure ML NER(Azure机器学习命名实体识别技术)模块便默认支持三种实体类型,即People(人)、Places(地点)和 Organizations(组织)。

运行时期工作流的目标是获取未标记的输入文本,和生成由设计时期创建的模型所识别的实体相对应的输出文本。正如观察所示,运行时期工作流反复使用设计时期 工作流的特征提取模块——因此,如果一个应用程序需要高吞吐量的实体识别,便不得不在管道线中提供相对量轻且价值高的功能。若举例说明的话,Azure ML NER模块使用了一小组易于计算的功能,它主要基于局部上下文本,事实也证明这非常有效。处理过程中出现歧义之处,使用如Viterbi译码的技术为输入 单词序列分配实体标签,问题常常便得以解决。

必须认识到NER技术只是一个开始,然而也是从原始文本中抓取“知识”的重要的第一步。这篇近期发布的博客文章描述了NER技术与一系列相关技术 结合后,在Bing的体育App中,是如何激发出用户的兴趣,提高用户体验的——并且你可以在Azure ML中使用一模一样的NER堆栈功能。NER技术之外,一般自然语言的解析、链接和突出,情感分析,事实提取等等,都是附加步骤来增强基于内容的应用程序 用户体验,而这些附加的额外技术正可以在“活用”你的文本上助你一臂之力。

我们希望你能喜欢这篇文章,并期待着您的意见。

参考文献

[1] Eric Brill, 1992, A simple rule-based part of speech tagger, Applied natural language processing (ANLC ’92)

[2] Li Deng, Dong Yu, 2014, Deep Learning: Methods and Applications

本文由微软研究院提供,授权译言进行翻译,非商业转载请注明译者、来源,未经许可不得商业使用。