r语言进行自然语言处理_开始进行自然语言处理

r语言进行自然语言处理

当今,大多数应用程序仍在处理来自结构化和半结构化源的数据的世界中工作。 它们连接到SQL数据库以查询信息或显示来自JSON或XML数据源的信息。 许多应用程序仍避免从非结构化源(例如开放文本字段,富文本编辑器,数据库CLOB(字符大对象)数据类型,社交媒体新闻流以及来自Microsoft Word,Google Docs等工具的完整文档)解析和提取知识的复杂性以及Adobe Acrobat。

但是信息世界在很大程度上是非结构化的。 人们以多种工具和格式输入,搜索和管理信息。 现代应用程序不仅可以存储和检索非结构化信息,还可以结合自然语言处理(NLP)的元素来改善用户体验,管理复杂信息,启用聊天机器人对话并执行文本分析。

[深入了解InfoWorld: 超越NLP:构建聊天机器人面临的8个挑战 。 • Alexa技能教程:如何编写您的第一个语音助手应用程序 。 • 机器学习:如何创建推荐引擎 。 ]

什么是自然语言处理(NLP)

NLP引擎旨在从文本和文档块中提取数据,信息,知识和情感。 他们经常混合使用解析技术,知识数据结构和机器学习算法 ,以可理解的格式提取信息并将其呈现给人员和下游应用程序。

NLP引擎通常具有以下技术组件:

  • API和数据存储接口,可轻松连接到数据源并汇总信息以进行分析。
  • 文件解析器,可从不同的文件类型和文档存储格式中提取文本,元数据和其他上下文信息。
  • 文档解析器将文档分解为更多的原子单位,包括节,段落,句子,短语和单词。
  • 模式识别工具(例如正则表达式解析器)可识别模式(例如日期,货币,电话号码和地址)。
  • 词典和其他知识存储工具可帮助NLP引擎识别实体,例如名称,地点和产品。
  • 工具和机器学习算法可帮助创建特定于域的实体,主题和术语。
  • 提供更深入分析的语义和其他上下文分析功能。 有关主题的段落是正面,负面还是中立? 段落是否与提供更多上下文的照片相邻? 是在文件夹中找到该文档,还是具有指向可以提供其他上下文的其他文档的链接? 关于文档作者的知识以及何时编写文档可以提供更多上下文?

这些组件的组合使NLP引擎可以提供文档中包含的信息的丰富摘要。 总结对用户特别有用,特别是对于涵盖单个或相对较少概念的简单文档。 例如,处理当今新闻的NLP引擎可以向用户显示文章的发布者,时间和地点。 这对于下游技术(例如搜索引擎,聊天机器人和分析工具)也很有用,这些技术可以更轻松地处理从文档中汇总的结构化信息。

文字大小和复杂程度决定了设计决策

尽管大多数NLP引擎都具有其中的一些基本技术组件,但处理各种内容源和类型的复杂程度却相差很大。

最简单的引擎专注于小型文档和格式。 考虑一个仅解析单词,短语和简短布尔术语的搜索引擎查询框。 该引擎在很大程度上希望分离单词,识别短语并解析基本逻辑运算符,以便可以向搜索引擎呈现一个或多个较低级别的查询。

在更高级的搜索引擎中,查询的某些含义和解释有助于更好地确定上下文。 例如,使用关键字“美洲虎”进行的搜索可能针对的是动物,汽车制造商,NFL橄榄球队,或者可能是其他参考,可以使用用户共享的其他参考来缩小搜索范围。

聊天机器人文本的相似之处在于,它们更经常使用短语和短句。 但是,尽管搜索往往充满主题和实体(即名词),但聊天机器人的文本通常是名词,动词和情感的混合体。 例如,“我在重设密码时遇到麻烦”表示在处理请求和向用户表达人性化响应时应使用的请求服务(登录),请求的操作(密码重置)和情绪(否定) 。

解释社交媒体内容(例如,Facebook或LinkedIn上的推文和更新)还有许多其他挑战。 较长的段落格式表示可能引用了多个主题和实体。 另外,理解情感和意图可能比主题重要。 例如,知道某人打算购买一辆汽车对广告客户而言,比知道某人提及他或她最近出差所租用的汽车类型更为重要。

处理更大文档格式的引擎需要更多的解析和语言复杂性。 例如,如果引擎的目的是解析长篇新闻,则它必须能够分隔句子,段落和部分,以更好地表示基础信息。 对于较大的文档格式(例如法律,财务,医疗和建筑施工文档),要求的复杂程度变得更加重要,因为知道文档中的重要位置。

了解自然语言引擎功能

简单的自然语言处理器被设计为通过解析文本以获取几乎没有歧义的可识别名称来提取基本实体。 考虑到大多数新闻站点都有人,地点和品牌的超链接,因此您可以单击并查看有关该实体的相关信息。

识别日期,货币,数量或描述性属性需要更复杂的技巧来识别关系和上下文。 例如,从法律和财务文件中提取的日期和货币通常与事件名称相关联,例如合同条款或财务绩效指标。 在施工文件中,识别油漆颜色及其关联的房间类型对制造商和承包商很有用。 对于医学文献,如果医生知道其所在的身体部位,则发现癌症类型更有价值。

除了常见的实体和模式之外,NLP平台在使创建自定义概念,主题,实体,短语,模式和其他要在文本和文档中标识的元素的方式方面有所不同。

验证NLP平台中的学习工具

诸如Amazon,Microsoft,Google和IBM之类的公共云供应商出售的NLP引擎在其算法的复杂性,查询处理的性能,API的深度,处理不同文本,文档和文件类型的通用性以及单位价格上竞争以及其他因素。

但是,使用平台的工具来训练自定义实体,主题和其他信息工件的简单性是在早期实验中最重要的考虑因素。 哪些工具可以更轻松地提取文档和所需用例所需的信息?

这是大型云供应商提供的用于配置其NLP平台以提取特定领域知识的工具和功能的简短摘要。

  • Amazon Comprehend具有工具和API,可通过向引擎提交列表来提交自定义分类器和实体。
  • Google自然语言允许配置将内联文本映射或将文本文件引用到一个或多个标签的数据集。
  • 通过Microsoft语言理解(Luis) ,您可以描述意图(购买,购物,浏览),实体,话语(文档文本中措辞的方式)以及更复杂的语言模式。
  • IBM Watson自然语言理解使用多达五个级别的类别层次结构,可以抽象的内容(正文和情感之间以及实体之间的关系)来提取更多信息,这些层次结构可以超出文本中的描述进行抽象。

创建实体和主题知识库并非易事,因此一些云提供商已开始构建标准或入门级的知识库。 例如,有Amazon Comprehend Medical可以提取医疗信息,而Microsoft则为场所,事件,音乐,天气和其他公共区域预先构建了域 。

从这些示例中,您可以看到有多种方法可以对NLP引擎进行有关实体,主题和意图的培训。 简单的方法从映射到主题的关键字列表开始。 然后,更复杂的引擎支持学习算法,该算法可以扫描文档并将潜在的主题和相关的短语提供给用户,以查看是否应将它们包含在培训集中。 来自Expert System , SmartLogic和Bitext的更复杂的引擎使用分类管理工具,并与NoSQL和诸如MarkLogic的多模型数据存储集成,因此可以将在文档上执行的概念匹配与引用的本体一起使用,以支持更复杂和可操作的推理。

为您的NLP实验做准备

在开始选择技术并进行概念验证之前,重要的是将所有具有定义范围和成功标准的NLP实验作为基础。 确保了解培训文本或文档的数量,提取所需的详细程度,所需信息的类型,提取所需的总体质量以及处理新文本所需的性能。 最好的实验是何时可以在适度的需求下交付业务价值,并通过敏捷的迭代过程增加更多的复杂性。

翻译自: https://www.infoworld.com/article/3329939/get-started-with-natural-language-processing.html

r语言进行自然语言处理

你可能感兴趣的:(大数据,编程语言,python,java,机器学习)