美文网首页机器学习机器学习机器学习与模式识别
[自翻译][机器学习]机器学习与文本分析

[自翻译][机器学习]机器学习与文本分析

作者: Propiram | 来源:发表于2015-09-19 14:13 被阅读618次

    本文首次发表于译言网,翻译自Technet.com,为[机器学习]系列文章之一。
    发表地址:http://article.yeeyan.org/view/propiram/442378

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

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

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

    图 1 文本分析激励方案图 1 文本分析激励方案

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

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

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

    图2 命名实体识别的工作流图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
    本文由微软研究院提供,授权译言进行翻译,非商业转载请注明译者、来源,未经许可不得商业使用。

    相关文章

      网友评论

        本文标题:[自翻译][机器学习]机器学习与文本分析

        本文链接:https://www.haomeiwen.com/subject/dhnbcttx.html