问题导读 1.训练数据包括了什么内容? 2.设计时间流程的效果取决于什么? 3.运行时间流程的目标是什么?
当我(指Ashok)70年代还是斯坦福大学人工智能实验室的学生时,我十分乐观的认为人类级别的机器智能指日可待。并且,与此同时计算机因使用机器学习(ML)的技术正变得日益强大。正因为如此,几乎所有微软的新产品都不同程度的使用了机器学习技术来分析语音、数据和文本。在这篇通讯中,我们主要侧重于文本。 当计算机更好地理解了自然语言,新的领域不断被开创,例如:用户应用的人机界面的提升,更为完善搜素引擎,Cortana和Siri这样的个人助理和一些分析给定文献的工具。例如,一个新闻网站如果能够将文章里提到的人使用算法链接到维基百科,那么这个网站则更加吸引人,在网站中用户能够很容易地获取关于某些人的更多信息。此外,通过对于文本中额外信息的利用,用户能够轻易分别文章所讲的显著实体(如:运动员,球队等),如图1所示:
图1 文本分析的愿景 文本分析一直是科学研究较为活跃的领域。毕竟创造所有人类知识(文本表示)不是一项轻松的工作。90年代至今的早期工作,包括Brill标签器[1]的工作确定了句子中的部分词性,[2]的工作也对新工作有一定的启示。微软研究院一直热衷于在科学领域创造新的想法,但是我们又进一步将新科技落到实处,创造出了产品级别的技术。 在这篇博客通讯中,我们简要展示了人工智能技术如何通过利用命名实体识别(NER)技术应用于文本分析。作为一个提供完整并可直接使用的机器学习功能的平台,Microsoft Azure ML包含了文本分析的基本能力,并且特别支持了NER–因此我们可以将笼统的概念与具体的设计选择联系起来。 NER是将文本与人、地点、组织、运动队伍等进行参照的技术。让我们概览一下如何利用“有监督学习”解决这个问题:
图2 命名实体识别流程图 在设计时间或“学习时间”,系统会利用训练数据创造一个学习任务的“模型”。这种方法从小部分例子中概化来处理任意新文本。 训练数据包括了人类标注的被学习的命名实体的标签。这看起来就像:“当Chiris Bosh超常发挥,迈阿密热火队将变得强大无比”。这个模型预期能够从自然的例子中学习,训练得能够从新输入的文本中识别运动员实体和队名实体。 设计时间流程的效果取决于特征提取阶段–一般而言,特征提取越多,模型越强大。比如在一个文本中和一个词相关的局部语句[比如,前k个词和后k个词]是我们人类用来将词和实体联系起来的强大特征。例如,在句子“San Francisco beat the Cardinals in an intense match yesterday”,很显然句子中提到的“San Francisco”指一个运动队而不是地名旧金山。字母大写是识别命名实体例如文中出现的人、地点的又一实用特征。 模型训练就是机器学习做的事,如:产生一个好的模型。一般而言,特征的选择是一个复杂的组合过程。有许多可以用的机器学习技术,包括感知元(Perceptron)、条件随机场(Conditional Random Fields)等。技术的选择依赖于使用有限训练数据的模型精确性、处理的素的和能够被自动学习的命名实体数量。例如,Azure ML NER模块默认支持三种类型实体:人、地点和组织。 运行时间流程的目标是输入未标记文本并且产生被创建出的模型在设计时间识别的相应的输出文本。正如人们能够观察到的一样,运行时间流程从设计时间流程服用了特征提取模块–因此,如果对于一个应用高效彻底的实体识别是必须的话,必须在运行进程中提供相对轻量的高值特性。作为一个说明性的例子,Azure ML NER模块使用了一小部分容易计算的、主要基于本地文本的特性,事实证明也十分有效。处理过程中产生的歧义通常利用Viterbi的工具解决,将实体标签分配给一系列输入单词。 值得注意的是,NER只是开始,但是却是从原始文本中捕获“知识”的重要一步。最近的博客通讯描述了NER加上一系列相关技术是如何提升Bing体育app的体验的–非常相似的NER栈也可供你在Azure ML中使用。除了NER,自然语言分词、链接和显著性、情感分析、事实提取等代表了提升用户文本相关应用体验的重要的步骤,这是能够帮助你使文本“生动”的额外技术。 我们希望你喜欢这篇通讯,并且期待您的建议。
|