【Python机器学习】NLP信息提取——命名实体与关系

我们希望计算机能够从文本中提取信息和事实,从而略微理解用户所说的内容。例如,当用户说“提醒我星期一浏览***.org网站”,我们希望这句话触发当天后下一个周一的日程或者提醒的操作。

要触发上述操作,需要知道“我”代表一种特定类型的命名实体:人。而且,聊天机器人应该知道它需要将“我”替换成该用户的用户名,达到文本扩展或标准化的目的。还需要聊天机器人知道“***.org”是一个缩写的URL(一个指代特定事物名称的命名实体),而且这种特定类型的命名实体的标准化拼写方式可能是“http://***.org”、“https://***.org”,甚至可能是“https://www.***.org”。同样的,我们还需要聊天机器人明白周一是一周中的某一天(这是另一种被称为“时间”的命名实体),并且能够在日历中找到它。

为了使聊天机器人能够正确的相应这个“简单”的需求,还需要它能够提供命名实体“我”和指令“提醒”之间的关系。聊天机器人甚至需要识别句子的隐含主题(“你,提醒我……”),其中“你”指的是聊天机器人,即另一个类型为人的命名实体。而且需要告诉聊天机器人,日程或者提醒是在将来发生的,所以它应该找到下周一来创建提醒。

一个典型的句子可能包含集中几种不同类型的命名实体,例如地理位置实体、组织、人物、政治实体、时间、事件和自然现象。同时,一个句子有也可以包含多个关系,即关于句子中命名实体之间关系的事实。

知识库

除了从用户语句对应的文本中提取信息,我们还可以使用信息提取技术来帮助聊天机器人进行自我训练。如果使用聊天机器人在大型语料库上进行信息提取,这个语料库就可以生成关于这个世界的各种信息,从而指导聊天机器人后续的行为和动作。有一些聊天机器人通过知识库记录提取的所有信息(通过安排“家庭作业”式的离线阅读)。然后通过查询这个知识库,可以帮助我们的聊天机器人做出对于这个世界更加准确的判断或推理。

聊天机器人还可以存储与当前用户的“会话”或者对话相关的知识。这些仅和当前对话相关的知识称为“上下文”。这些上下文知识既可以存储在聊天机器人后台的统一全局知识库中,又可以存储在单独的知识库中。商业聊天机器人API通常将用户的上下文与支持和其他所有用户聊天的全局知识库分开存储。

上下文可以包含关于用户、聊天室或频道的信息,或者当前时刻的天气和新闻。基于会话内容,上下文甚至可以包含聊天机器人自身的状态变化。一个“自我感知”的例子是,智能聊天机器人应该跟踪它已经告诉用户的所有事情的历史记录,或者它已经向用户提出的问题的历史记录,从而避免重复。

这就是这部分的目标,即教会机器人理解输入的内容。将机器人产生的这种理解结果放入一个为了存储知识而设计的灵活数据结构中,然后机器人就可以利用这些知识做决策,从而在回复中引入更多对现实世界的理解。

除了识别文本中的数字和日期等简单的任务,我们还希望机器人能够提取有关现实世界的更通用的信息,而且希望它能够独立完成这项任务,而不是我们自己把关于现实世界的所有知识都“编程”输入给它。例如,我们希望机器人能够从自然语言文档中学习,例如下面这个句子:

In 1983, Stanislav Petrov,a lieutenant aolonel of the Soviet Air Defense Forces,saved the world from nuclear war.

如果在历史课上读到或听到类似上面这句话做笔记时,我们可能会去理解这句话的意思,同时在脑海中建立各种概念或词之间的关系。我们可能会把这句话简化成某种“从句子中得到的”知识。我们希望机器人做同样的事情希望它“记录”所学到的知识,例如Stanislav Petrov是lieutenant aolonel的事实或知识。这种知识可以存储在下面这样的数据结构中:

('Stanislav Petrov','is-a','lieutenant aolonel')

这个例子描述了两个命名实体节点(Stanislav Petrov和lieutenant aolonel)以及在知识图谱或知识库中它们之间存在的('is-a')关系或连接。当上述关系用符合知识图谱关系描述格式(RDF)标准的形式存储时,它被称为RDF三元组。一般来说,这些RDF三元组存储在XML文件中,但它们也能存储在可以用(主体、关系、对象)形式记录三元组图形关系的任何格式文件或数据库中。

这些三元组的集合称为知识图谱。上述集合有时也被语言学家称为本体,因为它存储可关于词的结构化信息。但当这个图谱表示的是关于世界的事实而不仅仅是词时,它被称为知识图谱或者知识库。下图就是想要从上述句子中提取出来的知识图谱的图形化表示。

上面的is-a关系表示一个无法直接从上述描述Stanislav的句子中提取出的事实。但是,这个lieutenant aolonel是军衔(military rank)的事实可以基于一个军事组织成员的头衔是军衔的事实推断出来。这种从知识图谱中获取事实的逻辑操作称为知识图谱推断。它也可以被称为知识库查询,就像关系数据库查询一样。对于像Stanislav军衔这种特殊推断或查询,知识图谱必须包含关于军队和军衔的事实。如果知识库包含关于人的头衔以及人与职业(工作)关系的事实,甚至可能也会有所帮助。也许可以看出,相比于没有相关知识的知识库,有相关知识的知识库对于机器人理解上面这句话的帮助更大。如果没有这种知识库,那么像上面这样一个简单的句子包含的许多知识,都将让聊天机器人“摸不着头脑”。甚至可以说,对于一个只知道如何根据随机分配的主题对文档进行分类的机器人,关于职业等级的问题将超出“它的能力范围”。

这个问题是很严重的,如果我们有过与一个不理解“which way id up”(路在何方)的聊天机器人交谈经历的话,我们就会理解这个问题的严重性。人工智能研究中最令人生畏的挑战之一就是对尝试知识图谱的编译和高效查询。而这些尝试在我们的日程对话中被视为理所应该知道的东西。

人类甚至在获得语言技能之前就获取了很多常识,但是机器人难以找到一个包含常识的语料库去阅读和学习,也不存在包含常识的百科文章供机器人进行信息提取。

事物与人之间存在各种各样的事实关系,例如“是……类别”、“被用来……”等。大多数知识库会规范化上述表示关系定义的字符串,所以“是……类别”和“是……类型”这种特定关系会被分配一个规范化的字符串或ID来表示。一些知识库也会规范化知识库中表示对象的名词,因此,可能会给2-gram “Stanislav Petrov”分配一个特定ID。“Stanislav Petrov”的同义词,比如“S. Petrov”,如果NLP流水线认为它们指的是同一个人,那么会被分配给同一个ID。

知识库可以用于构建称为问答系统(QA系统)的实用型聊天机器人。客服聊天机器人几乎完全依赖知识库来生成回复。问答系统非常适合帮助人们找到事实型信息,从而解放人类的大难去做更擅长的事情。人类不擅长精确地记忆事实,但善于发现这些事实之间的联系和模式,后者是机器人尚未掌握的东西。

信息提取

“信息提取”是将非结构化文本转换为存储在知识库或知识图谱中的结构化信息。信息提取是自然语言理解(NLU)研究领域的一份,尽管NLU经常被当做自然语言处理(NLP)的同义词使用。

在数据科学研究中,信息提取或者NLU代表不同的学习方式。它不仅仅是无监督学习,甚至“模型”(有关世洁运行的逻辑)本身也可以在没有人为干预的情况下获得。机器学习技术经常被用来训练信息提取模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1538102.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【devops】devops-gitlab之部署与日常使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

新任项目经理,如何快速接手项目

新任项目经理踏上管理岗位,面临着前所未有的挑战与机遇。如何快速适应角色,有效管理团队,确保项目顺利推进,是每一位新任项目经理必须面对的。 一、深入了解项目与团队 1、项目定位与规划 新任项目经理应对项目进行全面的调研与…

初识zookeeper

Zookeeper介绍 Zookeeper是Apache Hadoop项目下的一个子项目,是一个树形目录服务。 Zookeeper是一个分布式的、开源的分布式应用程序的协调服务。 Zookeeper提供的主要功能包括: 配置管理分布式锁集群管理 Zookeeper数据模型 Zookeeper客户端常用命…

windows使用tcpdump.exe工具进行抓包教程

windows主机安装一些抓包工具可能有些不方便,这里有一个tcpdump.exe工具直接免安装,可以直接使用进行抓包。(工具下载见 附件) tcpdump.exe使用教程 如下: 1:tcpdump -D 可查看网络适配器(注意前面的编号)…

分治算法专题(一)——快速排序之【三路划分】

目录 1、分治算法简介 2、算法应用【leetcode】 2.1 题一:颜色分类 2.1.1 算法原理 2.2.1 算法代码 2.2 题二:排序数组——数组分三块原理 2.2.1 算法原理 2.2.2 算法代码 2.3 题三:数组中的第K个最大元素 2.3.1 算法原理 2.3.2 算…

各大平台统遭入侵??区块链市场遭攻击损失近3亿!

今年,全球发生多起骇人听闻的勒索入侵软件攻击事件,黑客组织利用各种手段和技术,不断试图突破网络安全防线,窃取敏感信息、破坏系统运行,甚至进行勒索和敲诈,使得网络安全问题日益凸显其重要性和紧迫性。 S…

Mysql分组取最新一条记录

文章目录 Mysql分组取最新一条记录1. 数据准备1. 方法1:使用子查询获取每个组的最大时间戳,然后再次查询获取具体记录(如果时间戳是唯一的)2. 方法2:使用窗口函数(MySQL 8.0)3. 方法3&#xff1…

TikTok跨境电商营销新策略:品牌联盟与影响力经济的结合

随着TikTok成为全球化的社交和电商平台,也给跨境卖家提供了新的商机。境电商通过与其他知名品牌、网红或KOC建立品牌联盟,能够有效实现资源共享、优势互补,并推动市场扩张,带来更大的商业价值和品牌影响力。本文Nox聚星将和大家探…

鸿蒙开发协调布局CollapsibleLayout

鸿蒙开发协调布局CollapsibleLayout 首先鸿蒙我暂时没找到官方提供的协调布局,所以得自己自定义。 一、思路 可滚动头部、粘性头部、可滚动内容布局 可折叠区域高度可滚动头部高度-粘性头部高度 二、效果图 鸿蒙开发协调布局CollapsibleLayout 三、关键代码 //…

优思学院|如何从零开始自己学习六西格玛?

优思学院为学习六西格玛管理的学员,精心推荐了几本由浅入深、系统全面的书籍,帮助大家从入门到精通,逐步掌握六西格玛这一强大的管理工具。无论你是刚接触六西格玛的初学者,还是想在专业领域提升的高级学员,这几本书都…

【ARM】Trustzone和安全架构

Trustzone的基本概念&背景和历史 什么是Trustzone? 什么是TEE? Trustzone是一个技术,是一个技术的设计,一个安全架构,既不是软件也不是硬件。 TEE (Trusted Execution Environment) 可信执行环境。就是依托Trust…

速响低代码平台:升级营销管理系统,开启高效无忧新体验!

当前日新月异的商业环境,企业面临着前所未有的挑战与机遇。随着市场竞争的日益加剧和企业业务的不断拓展,传统的营销方式和管理手段逐渐显露出其局限性,难以适应快速变化的市场需求。 数据收集难:传统的营销管理缺乏对客户数据的收…

战神诸神黄昏9月19日登录PC端! 手机怎么玩战神诸神黄昏

9月19日,《战神:诸神黄昏》正式登录PC端,这是一部动作冒险游戏。要是你想随时随地在手机或平板上也能玩《战神:诸神黄昏》,可以使用网易GameViewer远程帮你实现。 网易GameViewer远程作为一款专为游戏玩家打造的远程软…

轻松让U盘数据恢复的教程:一步步指导,快速找回丢失文件

在日常使用U盘的过程中,我们可能会不小心删除或格式化了一些重要文件,导致数据丢失。面对这种情况,很多人可能会感到焦虑和无助。但其实,只要掌握了正确的方法,U盘数据的恢复并不复杂。本文将为大家提供一份详细的教程…

LIN总线CAPL函数——校验和段(Checksum)测试(linGetChecksum)

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

57.【C语言】字符函数和字符串函数(strerror函数)

11.strerror函数 *简单使用 strerror string error cpuscplus的介绍 点我跳转 翻译: 函数 strerror char * strerror ( int errnum ); 得到指向错误信息字符串(简称错误码)的指针 解释errnum的值,产生一条描述错误情况的信息的字符串,就像被库函数设置为errno一样 这个返回的…

【新手上路】衡石分析平台使用手册-系统管理员手册

用户管理​ 用户管理页面可以创建管理用户、对用户进行分组管理、组织架构管理及用户属性的维护和管理。下面详细介绍用户管理相关功能。 用户管理​ 用户管理子页面展示了当前系统中所有用户的信息,可以添加新用户,查看、编辑已有用户,可…

解锁社交业务增长与合规“秘笈”,泛娱乐行业沙龙杭州站亮点一览!

在全球数字化浪潮的推动下,泛娱乐行业正迎来广阔的发展空间,与此同时,社交产品监管日益规范,海外市场机遇与挑战并存,游戏行业增速放缓等情况也不容忽视。如何在合规前提下,探求新的增长点成为从业者共同关…

CAN_FD和CAN2.0的不同点——深入浅出理解CAN协议(二)

本系列是在同公司硬件设计和验证同事,1、在完成了CANFD硬件接口IP开发 2、熟悉ISO-11898系列、ISO16845、CAN2.0协议、CANFD协议等以及大量学习资料 3、深入研究其他家CANFD IP(NXP、BOSCH)4、独立开发了对应底层驱动 5、通过CANoe和周立功CA…

Java Web服务运行一段时间后出现cpu升高导致的性能下降问题排查

背景 有个web服务,运行一段时间后,出现cpu逐渐占用高,服务处理请求整体性能下降问题。 异常情况时, 同时jvm的cpu上涨 最终表现为,处理内部逻辑执行耗时变高。 排查原因 原来服务的jvm启动参数带了 -XX:-TieredCom…