精华内容
下载资源
问答
  • 课程目标: 学习完本门课程,您将对自然语言处理技术有更深入的了解,彻底掌握中文命名实体识别技术。 适用人群: 自然语言处理从业者、深度学习爱好者 课程简介: 命名实体识别作为自然语言处理的基础技术之一,在...
  • 课程目标: 学习完本门课程,您将对自然语言处理技术有更深入的了解,彻底掌握中文命名实体识别技术。 适用人群: 自然语言处理从业者、深度学习爱好者 课程简介: 命名实体识别作为自然语言处理的基础技术之一,在...
  • 第二十六章 命名实体识别和实体消歧 1 命名实体识别概论 PART1 什么是命名实体识别 PART2 命名识别识别的应用 PART3 简历中抽取关键信息 2 命名实体识别不同方法 PART1 实体识别方法 基于规则的方法 基于...

    前言

    自然语言处理中一个重要的任务就是命名实体识别,自1991年开始,命名实体识别逐渐开始走进人们的视野。

    随着深度学习的发展,命名实体识别技术也得到了极大地进步。从最初的基于规则和字典的方法,到现在热门的注意力机制、图神经网络等方法,命名实体识别已经在各大数据集上已经取得了很高的准确率,但从自然语言处理实际应用的角度来看,命名实体识别技术依旧面临着很大的挑战。

    一、命名实体识别概论

    1.什么是命名实体识别

    命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。简单的讲,就是识别自然文本中的实体指称的边界和类别。

     其中产品名、组织、公司、人物就是我们提取出的命名实体。

    2.命名实体识别的应用

    命名实体识别可以落地到多个应用场景,包括聊天机器人新闻关键信息提取等等。

    2.1 聊天机器人

    以上是基于任务式的对话系统的大致流程。这种对话系统也称之为基于填槽式的对话系统。简单来讲,为了能够为用户解决一个问题,AI机器需要获得相关的信息,所以整个对话过程实际上就是从用户那里获得这些信息。一旦获取完毕,就可以对数据库做进一步查询。

    2.2 简历分析

    一份简历中包含大量的信息,如果通过HR一份份过,无疑会耗费大量的时间和精力。所以我们如何通过命名实体识别来进行简历的关键信息提取呢?

     

    首先这是一个垂直领域内的问题,我们需要构建NER来提取信息,并且需要自己定义所需要的实体种类,并进行大量的数据标记

     

    当我们标记好大量数据后,实际上这就是一个分类问题,输入文本词语,输出对应的种类就可以了,那么我们需要构造一个类别数为实体种类的分类器。

    二、命名实体识别方法

    1.实体识别方法

    命名实体识别从早期基于词典和规则的方法,到传统机器学习的方法,后来采用基于深度学习的方法,一直到当下热门的注意力机制、图神经网络等研究方法,命名实体识别技术路线随着时间在不断发展。技术发展趋势如下图所示:

    1.1 基于规则和字典的方法

    基于规则和字典的方法是最初代的命名实体识别使用的方法,这些方法多采用由语言学家通过人工方式,依据数据集特征构建的特定规则模板或者特殊词典。规则包括关键词、位置词、方位词、中心词、指示词、统计信息、标点符号等。词典是由特征词构成的词典和外部词典共同组成,外部词典指已有的常识词典。制定好规则和词典后,通常使用匹配的方式对文本进行处理以实现命名实体识别。

    基于规则的实体识别方法虽然简单,实际上也比较实用,特别是对于一些垂直领域的应用,或者数据量比较少或者没有标签数据的时候。如果我们有一个足够丰富的词典库,那么仅仅根据词库也能做到不错的准确率。另外,基于规则的识别方法是一套非常有效的基准(baseline)。

    1.2 基于传统机器学习的方法

    在基于机器学习的方法中,命名实体识别被当作是序列标注问题。与分类问题相比,序列标注问题中当前的预测标签不仅与当前的输入特征相关,还与之前的预测标签相关,即预测标签序列之间是有强相互依赖关系的。采用的传统机器学习方法主要包括:隐马尔可夫模型、最大熵、最大熵马尔可夫模型、支持向量机、条件随机场 等。

    在这 5 种学习方法中,ME结构紧凑,具有较好的通用性,其主要缺点是训练时间复杂性非常高,甚至导致训练代价难以承受,另外由于需要明确的归一化计算,导致开销比较大。HMM对转移概率和表现概率直接建模,统计共现概率。ME和SVM在正确率上要 HMM高一些,但是HMM在训练和识别时的速度要快一些。MEMM对转移概率和表现概率建立联合概率,统计条件概率,但由于只在局部做归一化容易陷入局部最优。CRF模型统计全局概率,在归一化时考虑数据在全局的分布,而不是仅仅在局部进行归一化,因此解决了MEMM中标记偏置的问题。在传统机器学习中,CRF被看作是命名实体识别的主流模型,优点在于在对一个位置进行标注的过程中CRF可以利用内部及上下文特征信息。

    1.3 基于深度学习的方法

    随着深度学习的不断发展,命名实体识别的研究重点已转向深层神经网络,该技术几乎不需要特征工程和领域知识。Collobert等学者首次提出基于神经网络的命名实体识别方法,该方法中每个单词具有固定大小的窗口,但未能考虑长距离单词之间的有效信息。为了克服这一限制,Chiu和Nichols提出了一种双向LSTM-CNNs架构,该架构可自动检测单词和字符级别的特征。Ma和Hovy进一步将其扩展到BiLSTM-CNNs-CRF体系结构,其中添加了CRF模块以优化输出标签序列。Liu等提出了一种称为LM-LSTM-CRF的任务感知型神经语言模型,将字符感知型神经语言模型合并到一个多任务框架下,以提取字符级向量化表示。这些端到端模型具备从数据中自动学习的功能,可以很好地识别新实体。

    部分学者将辅助信息和深度学习方法混合使用进行命名实体识别。Liu 等在混合半马尔可夫条件随机场的体系结构的基础上加入了Gazetteers 地名词典,利用实体在地名词典的匹配结果作为命名实体识别的特征之一。一些研究尝试在标签级别跨数据集共享信息,Greenberg等提出了一个单一的CRF模型,使用异构标签集进行命名实体识别,此方法对平衡标签分布的领域数据集有实用性。Augenstein 等使用标签向量化表示在任务之间进一步播信息。Beryozkin等建议使用给定的标签层次结构共同学习一个在所有标签集中共享其标签层的神经网络,取得了非常优异的性能。

    近年来,在基于神经网络的结构上加入注意力机制、图神经网络、迁移学习、远监督学习等热门研究技术也是目前的主流研究方向。

    总体来讲,前两种方法只是作为基准,一般不会作为生产环境下的方法,最常用的方法莫过于基于CRF的识别。

    三、实体消歧

    1.实体消歧概念

    实体消歧的本质是在于一个词很有可能有多个意思,也就是在不同的上下文中所表示的含义不太一样。

    2.实体消歧解法

    2.1 基于聚类的实体消歧方法

    该方法主要是计算实体指称项之间的相似度,采用某种聚类算法对实体指称项聚类,使得聚类结果中每一个类别都对应于一个目标实体上。主要包括基于表层特征的实体指称项相似度计算、
    基于扩展特征的实体指称项相似度计算、基于社会化网络的实体指称项相似度计算。

    基于表层特征的实体指称项相似度计算:
    传统方法多利用表层特征计算相似度,这些方法通常是词袋模型(Bag of Words,BoW)模型的延伸,性能不好。 

    这类方法都是基于上下文表层特征的关联来计算它们之间的相似度,而没有考虑到上下文特征的内在关联,因此影响聚类效果。

    基于扩展特征的实体指称项相似度计算:
    利用知识资源提升实体消歧的性能。
    最直接的方法:使用知识资源来扩展实体指称项的特征表示。

    基于社会化网络的实体指称项相似度计算:
    基于社会化网络的实体指称项相似度通常使用基于图的算法,能够充分利用社会化关系的传递性,从而考虑隐藏的关系知识,在某些情况下(特别是结构化数据,eg:论文记录、电影记录等)能够更为准确的实体指称项相似度计算结果。

    缺点:只用到上下文中的实体信息,不能完全利用实体指称项的其他上下文信息,因此不能在文本消歧领域取得有竞争力的性能。

    2.2 基于实体链接的实体消歧方法

    基于实体链接的实体消歧方法:将实体指称项链接到知识库中特定的实体,也称实体链接(Entity Linking)。
    实体链接:将一个命名实体的文本指称项(Textual Mention)链接到知识库中对应实体的过程(若不存在对应实体,则将实体指称项链接到空实体NIL)

    实体链接的输入包括两部分:

    • 目标实体知识库:最常用Wikipedia,或特定领域知识库。
      • 知识库通常包括:实体表、实体的文本描述、实体的结构化信息(eg:属性/属性值对)、实体的辅助性信息(eg:实体类别);也经常提供额外的结构化语义信息,eg:实体之间的关联
    • 待消歧实体指称项及其上下文信息

    步骤:

    • 链接候选过滤(Blocking):根据规则或知识过滤大部分指称项不可能指向的实体,仅仅保留少量链接实体候选。
    • 实体链接(Linking):给定指称项及其链接候选,确定该实体指称项最终指向的目标实体。(重点研究)

    链接候选过滤方法:
    大部分是基于实体指称项词典:通过在字典中记录一个指称项所有可能指向的目标实体来进行链接候选过滤。

    传统实体链接方法:使用Wikipedia等知识资源构建指称项词典,包括Wikipedia Entity Name、Wikipedia Redirection Page等。

    为了匹配模糊或拼错的指称项,一些基于构词法的模糊匹配也在TAC评测中使用,eg:Metaphone算法和Soft TFIDF算法

    实体链接方法:
    实体链接方法选择与指称项具有最高一致性打分的实体作为其目标实体。现有方法可分为:向量空间模型、主题一致模型、协同实体链接模型、基于神经网络的模型。

    2.3 面向结构化文本的实体消歧方法

    列表型数据没有上下文描述信息,需要利用实体的类别信息,实体的流行度和列表中的其他信息进行消歧。

    四、实体统一

    1.实体统一概念

    同一个实体有不同的表达方式,有时候需要把不同的表达方式统一为同一种表达方式。

    例子:”中华人民共和国“,”中国“都表示同一个意思。如果把实体统一,可以减少一些NLP任务的难度。常见的应用场景是在构建知识图谱中,需要对地名,公司名,专业术语等进行统一。

    2.实体统一解法

    第一种方法计算相似度方法

    计算两个实体(字符串)之间的相似度,一般使用编辑距离即可,设定阈值,判断是否属于一个实体。

    第二种基于规则方法

    举个例子:

    1. 腾讯有限公司
    2. 腾讯科技有限公司

    我们通过人工的设计一些库,或者说是一些词典,这些库包含相同实体的特点:

    • 词典1:公司、有限公司、分公司…
    • 词典2:北京,天津,上海…
    • 词典3:科技,技术…

    如果实体中的词出现在库中将其删掉

    1. 腾讯有限公司——作为原型,删掉词库中的词后为:腾讯
    2. 腾讯科技有限公司 —删掉词库中的词后为:腾讯

    这时候判定为相同实体,但是以上两种方法精度不高,人力成本比较高。

    第三种基于有监督的学习方法

    还是上面的例子:

    1. 腾讯有限公司
    2. 腾讯科技有限公司

    我们可以将1和2利用特征工程将其转换为特征向量:比如考虑词性,前后单词,词位置等等。

    然后输入到一个训练好的分类模型去判断两个实体是否相似。

    利用余弦相似度技术衡量相似程度,然后再输入到逻辑回归模型做二分类的计算。

    第四种基于图的实体统一方法

    其实每个实体都不是独立的,他们与其他实体是包含一定的联系,如下图所以我们在做实体统一的时候我们考虑到了这种实体关系,也就是根据这种图来做:

    假如我们判断A和B是否是同一个人我们在做特征向量时不仅加入他的个人信息,还可以加入其他的关系。

    然后我们再计算A和B两者的相似度,设置阈值:判断大于阈值相似以及小于阈值不相似。

    总结

    评判一个命名实体是否被正确识别,包括两个方面:

    • 实体的边界是否正确
    • 实体的类型是否标注正确

    命名实体识别存在三个难点

    • 领域命名实体识别局限性
    • 命名实体表述多样性和歧义性
    • 命名实体的复杂性和开放性

    命名实体识别目前的两个热点: 

    • 匮乏资源命名实体识别
    • 细粒度命名实体识别

    本文是从零开始学NLP系列文章第十五篇,希望小伙伴们多多支持,互相交流。


    今天我们就到这里,明天继续努力!

    如果该文章对您有所帮助,麻烦点赞,关注,收藏三连支持下!

    创作不易,白嫖不好,各位的支持和认可,是我创作的最大动力!

    如果本篇博客有任何错误,请批评指教,不胜感激 !!!


    参考:

    贪心科技学院nlp

    一文了解命名实体识别

    知识图谱(五)——实体消歧

    实体消歧、实体统一和指代消歧

    展开全文
  • 目录写在最前一、 强实体与弱实体的定义1. 强实体2. 弱实体百度百科中的解释《数据库系统课程》中的解释总结起来 写在最前 数据库设计是困难的,其原因之一就在于我们很难去完全把握实体的定义。是不是实体、该不该...

    写在最前

    数据库设计是困难的,其原因之一就在于我们很难去完全把握实体的定义。是不是实体、该不该定义实体是一直困扰数据库初学者的问题,强实体、弱实体的概念同样难以理解。
    我一直深受强实体、弱实体概念的困扰,百度百科中的定义不能很好地解决我的困惑,一路学习过来,自己对强实体、弱实体的理解越来越深入,因此写下这篇文章与大家分享自己对强实体与弱实体的一些体会。如果觉得有帮助,请点赞鼓励!

    一、 强实体与弱实体的定义

    1. 强实体

    其实例的存在不依赖于任何其他实体类型的实例;有自己独立的主键,唯一性地标识它的每个实例。

    2. 弱实体

    百度百科中的解释

    一个实体对于另一个实体(一般为强实体,也可以是依赖于其他强实体的弱实体)具有很强的依赖联系,而且该实体主键的一部分或全部从其强实体(或者对应的弱实体依赖的强实体)中获得,则称该实体为弱实体。

    《数据库系统课程》中的解释

    其实例的存在依赖于其它实体类型的实例;其主键包括它所依赖的实体类型的主键。

    总结起来

    百度百科中的解释和课程中的解释都是在强调两点:
    第一点:依赖,弱实体应该依赖于强实体;
    第二点:主键,弱实体的主键应该是组合主键(其他实体的主键组成的)。

    二、 关于定义的几个疑惑

    但定义中有几个地方令我不解,我相信初学者多少也会遇到同样的问题。我总结了四点:

    什么叫“依赖”?

    以教务系统数据库为例,如果没有学校,那么学院不再是学院,学生不再是学生,课程更将不复存在,所以这些实体都依赖于其他实体,因此这些都是弱实体?但我们知道,学院、学生一般都作为强实体。因此,定义中的“依赖”指的是什么呢?

    先有鸡还是先有蛋?

    是因为一个实体的主键包括其他实体的主键而使该实体成为了弱实体,还是因为一个实体是弱实体,所以它的主键必须包括其他实体的主键?
    这是一个先鸡(弱实体)还是先蛋(组合主键)的问题。

    为什么要定义弱实体?

    我们知道,弱实体对于另一个实体具有很强的依赖联系,似乎并不是“真实”存在的事物,那么为什么我们还会有弱实体的概念,而不是直接认为实体就是强实体呢?

    什么时候需要定义弱实体?

    有时候弱实体就是需求中的实体,只是它依赖于其他实体,有时候关系也可以认为是弱实体,有时候出于设计的需要我们也会定义弱实体,那么何时需要定义弱实体?

    总结起来,以上四个问题其实是一个问题:

    怎样正确地理解强实体与弱实体的含义?

    三、 唯有实践,方出真知

    有很多事情是很难想明白的,但经过几次数据库设计实战,我发现自己或多或少地定义了一些弱实体。我选取了三个典型的例子:

    教务系统数据库设计(一)

    之后我会专门写一篇博客介绍教务系统数据库的设计过程,这里选取其中一个比较典型的部分。业务需求是这样的:

    一周有七天,每一天有11节。

    上面这句话中涉及到了几个实体?很简单吧,三个实体:周、天、节。那么它们是强实体还是弱实体呢?不好说,但是我们可以确定,概念数据模型的设计应该是这个样子:
    在这里插入图片描述
    需要勾选“Dependent”。首先回答一个问题:为什么不能是下面这个样子?
    在这里插入图片描述
    Day的主键应该是dayOfWeek,如果不用“Dependent”将Day的主键改为weekNum+dayOfWeek,我们的Day表格中只能有七行记录,也就是说对于某一个星期一,我们无法区分这是第几周的星期一!同样的道理,如果Section的主键仅仅为sectionNum,那么我们根本无法区分这一节课是哪一天的课!教务系统要有排课、选课功能,只知道第1节,但不知道是哪一天的第一节,这肯定是不可以的。

    因此,当我们想要找到某一节时,需要同时指定那一周、星期几、哪一节。比方说我可以把《数据库设计》这门课安排在第一周星期一三四节。

    在这个例子中,三个实体都是需求中明明白白告诉我们的实体,但我们将Day与Section都作为了弱实体,因为强实体的Day与Section根本无法满足需求。

    培训公司数据库设计

    业务需求是这样的:

    每位学生每期只能参加一门课程。

    言外之意,公司有很多课程。我们只分析“每位学生每期只能参加一门课程”这一需求,发现涉及到两个实体:学生、课程。所以我们或许会想当然地这样去设计数据库:
    在这里插入图片描述
    一个课程可以由多个学生选择,一个学生只可以选择一门课程。发现问题了吗?业务需求里不是说一个学生只能参加一门课程,而是说一个学生在一期只能参加一门课程!这么设计数据库是在断人家财路。因此,我们必须考虑“每期课程”这个概念:在这里插入图片描述
    看样子似乎是没问题了,但是数据库设计是不可能这么容易就没问题的。我们把每期课程都作为一个记录,那么对于课程的信息,比方说课程名称、价格、介绍,每开一期课就要向数据库中存一行记录,因此我们的数据库会出现大量冗余(也就是说不满足数据库第二范式)。因此,我们应该这样去设计数据库:
    在这里插入图片描述
    看到了吗?这里的“Record”是一个弱实体,它的主键是“学期主键+学生主键”,代表学生参加课程这一行为,抽象成为了弱实体。为什么要用学期表的主键和学生表的主键呢?因为一个学生、一个学期,那么就只能参加一门课程了,所以根据主键唯一标识每行记录的原则,应该这样去选取。课程表的主键成为了Record表的外键,课程表与Record表之间存在一对多关系。

    在这个例子中,学生、课程是业务需求描述中显而易见的实体,“期”也可以认为是比较明显的实体,但“参加”这个动词在我们的数据库中便成为了“参加记录” ,也就是Record实体。

    教务系统数据库设计(二)

    这一部分的业务需求是这样的:

    老师授课。

    似乎业务需求很简单,但事实上,多位老师可以独立上同一门课,也可以共同上同一门课。一位老师可以参与多门课的授课。真实的教务系统的确是这个样子的。一般,像马原、高数等课程是多位老师独立授课,专业核心课大多是多位老师共同为同一班级授课。那么数据库要怎样设计呢?
    在这里插入图片描述
    像这样吗?老师、课程之间建立多对多关系?不难发现,这样的多对多联系无法区分上面所说的两种授课情况。也就是说,我们必须引入第三个表,才有可能实现业务需求,两张表格是行不通的。我是这样设计的:
    在这里插入图片描述
    在课程表与老师表之间,引入了新的一张表格——排课表。一个课程可以安排多次排课,一个排课就对应一个独立的授课安排,可以由一位老师完成,也可以由多位老师完成。那么像马原授课这种多位老师独立授课的情况该如何解决呢?在排课表中,认为不同老师的马原课是同一课程(引用Course表中同一记录的主键作为外键),但是它们是不同的排课(ArangeNo不同,可能一个是1,另一个是2)。也正因如此,排课表的主键是组合主键(课程编号+排课编号,如CS163、1)。

    这个例子中,需求中并没有提“排课”这一实体,这个实体完全是我们为了满足需求而定义的,甚至它和课程表在概念上还有点关系。注意到了吗,这里的“关系”就是弱实体概念中所说的“依赖”!

    四、 对强实体与弱实体的总结

    1. 区别弱实体与强实体的关键在于主键,“依赖”的实质是主键之间的关系。所以归根到底,就一个主键之间是否有关系、主键是否是组合主键的问题。

    2. 弱实体与强实体可以相互转换,没有绝对意义上的强与弱。既然区别弱实体与强实体的关键在于主键,那么一个同样意义的表,当我给它一个编号作为主键,那么它就不是弱实体,而如果我令它的主键是组合主键,它就是弱实体。就像刚刚,我们说排课表的主键是组合主键(课程编号+排课编号,如CS163、1),所以它是弱实体,那么如果我定义排课编号是“CS16301”,而不再是“1”,那么它的主键(排课编号)就不再需要课程编号,它就成为了强实体。

    3. 弱实体也可以依赖于弱实体。就像第一个例子中的Session,它依赖于Day,Day就是一个弱实体。

    4. 弱实体与它所依赖的实体之间的关系只能是1:1或n:1。也就是说,一个弱实体实例不可能依赖于同一实体的多个实例。这个其实很好理解,因为如果弱实体实例A依赖于实例B,那么A的主键要包括B的主键,所以A当然不可以依赖于很多个B。

    5. 业务需求决定弱实体的定义,分三种情况:

      情况一、 业务需求中明确的弱实体
      情况二、 业务需求中隐含的弱实体
      情况三、 业务需求中无、但为实现业务需求不得不定义的弱实体

      如果觉得这篇文章对你有帮助,请给博主点个赞!

    展开全文
  • JavaMysql实体类自动生成

    热门讨论 2014-07-14 16:51:27
    JavaMysql实体类自动生成 省去了每次都要写实体类的麻烦
  • 一文了解命名实体识别

    千次阅读 2020-09-04 20:25:53
    导读:从1991年开始,命名实体识别逐渐开始走进人们的视野,在各评测会议的推动下,命名实体识别技术得到了极大地发展,从最初的基于规则和字典的方法,到现在热门的注意力机制、图神经网络等方法,命名实体识别已经...

    导读:从1991年开始,命名实体识别逐渐开始走进人们的视野,在各评测会议的推动下,命名实体识别技术得到了极大地发展,从最初的基于规则和字典的方法,到现在热门的注意力机制、图神经网络等方法,命名实体识别已经在各开放数据集上取得了很高的准确率,但从自然语言处理实际应用的角度来看,命名实体识别技术依旧面临着很大的挑战。

     

    什么是命名实体

        1991年Rau等学者首次提出了命名实体识别任务,但命名实体(named entity,NE)作为一个明确的概念和研究对象,是在1995年11月的第六届MUC会议(MUC-6,the Sixth Message Understanding Conferences)上被提出的。当时的MUC-6和后来的MUC-7并未对什么是命名实体进行深入的讨论和定义,只是说明了需要标注的实体是“实体的唯一标识符(unique identifiers of entities)”,规定了NER评测需要识别的三大类(命名实体、时间表达式、数量表达式)、七小类实体,其中命名实体分为:人名、机构名和地名 。MUC 之后的ACE将命名实体中的机构名和地名进行了细分,增加了地理-政治实体和设施两种实体,之后又增加了交通工具和武器。CoNLL-2002、CoNLL-2003 会议上将命名实体定义为包含名称的短语,包括人名、地名、机构名、时间和数量,基本沿用了 MUC 的定义和分类,但实际的任务主要是识别人名、地名、机构名和其他命名实体 。SIGHAN Bakeoff-2006、Bakeoff-2007 评测也大多采用了这种分类。

        除了主流的 NER 评测会议之外,也有学者专门就命名实体的含义和类型进行讨论,Petasis等认为命名实体就是专有名词(proper noun,PN),作为某人或某事的名称。Alfonseca 等从构建本体的角度,提出命名实体就是能用来解决特定问题的我们感兴趣的对象(objects)。Sekine 等认为通用的 7 小类命名实体并不能满足自动问答和信息检索应用的需求,提出了包含 150 种实体类别的扩展命名实体层级(extended named entity hierarchy),并在后来将类别种数增加到200个。

        Borrega等从语言学角度对命名实体进行了详细的定义,规定只有名词和名词短语可以作为命名实体,同时命名实体必须是唯一且没有歧义的。比较特别的是,该研究将命名实体分为强命名实体(strong named entities,SNE)和弱命名实体(weak named entities,WNE),其中 SNE 对应词汇,而WNE对应短语,SNE 和 WNE 又可以细分为若干个小类。虽然该研究将每种类别都进行了详细的定义和阐释,但可能由于过于复杂而不利于计算机自动识别,因此该研究并未得到太多关注。

        Nadeau等指出,“命名实体”中的“命名(named)”表示:只关心那些表示所指对象(referent)的严格指示词(rigid designators)。严格指示词的概念源于Kripke的观点,“对于一个对象 x,如果在所有存在 x 的世界中,指示词 d 都表示 x,而不表示别的对象,那么 x 的指示词 d 是严格的”。

        Marrero等总结了前人对命名实体的定义,并将之归纳为语法类别、严格指示、唯一标识和应用目的四种类别。作者先假设每种类别都能作为定义命名实体的标准,再通过分析和举例等方式否定其作为标准的可行性。最后得出的结论是,应用方面的需求目的,是定义命名实体唯一可行的标准。

        命名实体是命名实体识别的研究主体,而命名实体识别通常认为是从原始文本中识别有意义的实体或实体指代项的过程,即在文本中标识命名实体并划分到相应的实体类型中,通常实体类型包括人名、地名、组织机构名、日期等。举例说明,“当地时间 14 日下午,叙利亚一架军用直升机在阿勒坡西部乡村被一枚恶意飞弹击中。”这句话中包含的实体有:日期实体“14 日下午”、组织机构实体“叙利亚”、地名实体“阿勒坡西部乡村”、装备实体“军用直升机”和“飞弹”,如图1所示。

    图1

     

    命名实体识别的特点、难点、热点

    1

    特点 

        评判一个命名实体是否被正确识别包括两个方面:实体的边界是否正确;实体的类型是否标注正确。

        对比中文和英文本身的语言特点,英语中的命名实体具有比较明显的形态标志,如人名、地名等实体中的每个词的第一个字母要大写等,而且,英文句子中的每个词都是通过空格自然分开,所以英文的实体边界识别相对中文来说比较容易,故而其任务的重点是确定实体的类型。相比于英文,中文里的汉字排列紧密,中文的句子由多个字符组成且单词之间没有空格,这一自身独特的语言特征增大了命名实体识别的难度。

    2

    难点 

        (1)领域命名实体识别局限性。目前命令实体识别只是在有限的领域和有限的实体类型中取得了较好的成绩,如针对新闻语料中的人名、地名、组织机构名的识别。但这些技术无法很好地迁移到其他特定领域中,如军事、医疗、生物、小语种语言等。一方面,由于不同领域的数据往往具有领域独特特征,如医疗领域中实体包括疾病、症状、药品等,而新闻领域的模型并不适合;另一方面,由于领域资源匮乏造成标注数据集缺失,导致模型训练很难直接开展。

        (2)命名实体表述多样性和歧义性。自然语言的多样性和歧义性给自然语言理解带来了很大挑战,在不同的文化、领域、背景下,命名实体的外延有差异,是命名实体识别技术需要解决的根本问题。获取大量文本数据后,由于知识表示粒度不同、置信度相异、缺乏规范性约束等问题,出现命名实体表述多样、指代不明确等现象。

        (3)命名实体的复杂性和开放性。传统的实体类型只关注一小部分类型,例如“人名”“地名”“组织机构名”,而命名实体的复杂性体现在实际数据中实体的类型复杂多样,需要识别细粒度的实体类型,将命名实体分配到更具体的实体类型中。目前业界还没有形成可遵循的严格的命名规范。命名实体的开放性是指命名实体内容和类型并非永久不变,会随着时间变化发生各种演变,甚至最终失效。命名实体的开放性和复杂性给实体分析带来了巨大的挑战,也是亟待解决的核心关键问题。

    3

    热点 

        通 过 调 研 近 三 年 来 ACL,AAAI,EMNLP,COLING,NAACL 等自然语言处理顶级会议中命名实体识别相关的论文,总结并选择了若干具有代表性的研究热点进行展开介绍,分别是匮乏资源命名实体识别、细粒度命名实体识别、嵌套命名实体识别、命名实体链接。

        (1) 匮乏资源命名实体识别

        命名实体识别通常需要大规模的标注数据集,例如标记句子中的每个单词,这样才能很好地训练模型。然而这种方法很难应用到标注数据少的领域,如生物、医学等领域。这是因为资源不足的情况下,模型无法充分学习隐藏的特征表示,传统的监督学习方法的性能会大大降低。

        近来,越来越多的方法被提出用于解决低资源命名实体识别。一些学者采用迁移学习的方法,桥接富足资源和匮乏资源,命名实体识别的迁移学习方法可以分为两种:基于并行语料库的迁移学习和基于共享表示的迁移学习。利用并行语料库在高资源和低资源语言之间映射信息,Chen 和 Feng 等提出同时识别和链接双语命名实体。Ni 和 Mayhew 等创建了一个跨语言的命名实体识别系统,该系统通过将带注释的富足资源数据转换到匮乏资源上,很好地解决了匮乏资源问题。Zhou等采用双对抗网络探索高资源和低资源之间有效的特征融合,将对抗判别器和对抗训练集成在一个统一的框架中进行,实现了端到端的训练。

        还有学者采用正样本-未标注样本学习方法(Positive-Unlabeled,PU),仅使用未标注数据和部分不完善的命名实体字典来实现命名实体识别任务。Yang 等学者采用 AdaSampling 方法,它最初将所有未标记的实例视为负实例,不断地迭代训练模型,最终将所有未标注的实例划分到相应的正负实例集中。Peng 等学者实现了 PU 学习方法在命名实体识别中的应用,仅使用未标记的数据集和不完备的命名实体字典来执行命名实体识别任务,该方法无偏且一致地估算任务损失,并大大减少对字典大小的要求。

        因此,针对资源匮乏领域标注数据的缺乏问题,基于迁移学习、对抗学习、远监督学习等方法被充分利用,解决资源匮乏领域的命名实体识别难题,降低人工标注工作量,也是最近研究的重点。

        (2)细粒度命名实体识别

        为了智能地理解文本并提取大量信息,更精确地确定非结构化文本中提到的实体类型很有意义。通常这些实体类型在知识库的类型层次结构中可以形成类型路径 ,例如,牛顿可以按照如下类型的路径归类:物理学家 /科学家/人。知识库中的类型通常为层次结构的组织形式,即类型层次。

        大多数命名实体识别研究都集中在有限的实体类型上,MUC-7只考虑了 3 类:人名、地名和组织机构名,CoNLL-03增加了其他类,ACE引入了地缘 政治、武器、车辆和设施 4 类 实 体,Ontonotes类型增加到 18 类,BBN有 29 种实体类型。Ling 和 Daniel 定义了一个细粒度的112 个标签集。

         学者们在该领域已经进行了许多研究,通常学习每个实体的分布式表示,并应用多标签分类模型进行类型推断。Neelakantan 和 Chang利用各种信息构造实体的特征表示,如实体的文字描述、属性和类型,之后,学习预测函数来推断实体是否为某类型的实例。Yaghoobzadeh 等重点关注实体的名称和文本中的实体指代项,并为实体和类型对设计了两个评分模型。这些工作淡化了实体之间的内部关系,并单独为每个实体分配类型。Jin 等以实体之间的内部关系为结构信息,构造实体图,进一步提出了一种网络嵌入框架学习实体之间的相关性。最近的研究表明以卷积方式同时包含节点特征和图结构信息,将实体特征丰富到图结构将获益颇多。此外,还有学者考虑到由于大多数知识库都不完整,缺乏实体类型信息,例如在 DBpedia 数据库中 36.53%的实体没有类型信息。因此对于每个未标记的实体,Jin 等充分利用其文本描述、类型和属性来预测缺失的类型,将推断实体的细粒度类型问题转化成基于图的半监督分类问题,提出了使用分层多图卷积网络构造 3 种连通性矩阵,以捕获实体之间不同类型的语义相关性。

        此外,实现知识库中命名实体的细粒度划分也是完善知识库的重要任务之一。细粒度命名实体识别现有方法大多是通过利用实体的固有特征(文本描述、属性和类型)或在文本中实体指代项来进行类型推断,最近有学者研究将知识库中的实体转换为实体图,并应用到基于图神经网络的算法模型中。

        (3)嵌套命名实体识别

        通常要处理的命名实体是非嵌套实体,但是在实际应用中,嵌套实体非常多。大多数命名实体识别会忽略嵌套实体,无法在深层次文本理解中捕获更细粒度的语义信息。如图2 所示,在“3 月 3 日,中国驻爱尔兰使馆提醒旅爱中国公民重视防控,稳妥合理加强防范。”句子中提到的中国驻爱尔兰使馆是一个嵌套实体,中国和爱尔兰均为地名,而中国驻爱尔兰使馆为组织机构名。普通的命名实体识别任务只会识别出其中的地名“中国”和“爱尔兰”,而忽略了整体的组织机构名。

    图2

        学者们提出了多种用于嵌套命名实体识别的方法。Finkel 和 Manning基于 CRF 构建解析器,将每个命名实体作为解析树中的组成部分。Ju 等动态堆叠多个扁平命名实体识别层,并基于内部命名实体识别提取外部实体。如果较短的实体被错误地识别,这类方法可能会遭受错误传播问题的困扰。嵌套命名实体识别的另一系列方法是基于超图的方法。Lu和Roth 首次引入了超图,允许将边缘连接到不同类型的节点以表示嵌套实体。Muis 和Lu使用多图表示法,并引入分隔符的概念用于嵌套实体检测。但是这样需要依靠手工提取的特征来识别嵌套实体,同时遭受结构歧义问题的困扰。Wang 和 Lu提出了一种使用神经网络获取分布式特征表示的神经分段超图模型。Katiyar 和Cardie提出了一种基于超图的计算公式,并以贪婪学习的方式使用 LSTM 神经网络学习嵌套结构。这些方法都存在超图的虚假结构问题,因为它们枚举了代表实体的节点、类型和边界的组合。Xia等提出了 MGNER 架构,不仅可以识别句子中非重叠的命名实体,也可以识别嵌套实体,此外不同于传统的序列标注任务,它将命名实体识别任务分成两部分开展,首先识别实体,然后进行实体分类。

        嵌套实体识别充分利用内部和外部实体的嵌套信息,从底层文本中捕获更细粒度的语义,实现更深层次的文本理解,研究意义重大。

        (4)命名实体链接

        命名实体链接主要目标是进行实体消歧,从实体指代项对应的多个候选实体中选择意思最相近的一个实体。这些候选实体可能选自通用知识库,例如维基百科、百度百科,也可能来自领域知识库,例如军事知识库、装备知识库。图3给出了一个实体链接的示例。短文本“美海军陆战队 F/A-18C战斗机安装了生产型 AN/APG-83 雷达”,其中实体指代项是“生产型 AN/APG-83 雷达”,该实体指代项在知识库中可能存在多种表示和含义,而在此处短文本,其正确的含义为“AN/APG-83 可扩展敏捷波束雷达”。

    图3

        实体链接的关键在于获取语句中更多的语义,通常使用两种方法。一种是通过外部语料库获取更多的辅助信息,另一种是对本地信息的深入了解以获取更多与实体指代项相关的信息。Tan 等提出了一种候选实体选择方法,使用整个包含实体指代项的句子而不是单独的实体指代项来搜索知识库,以获得候选实体集,通过句子检索可以获取更多的语义信息,并获得更准确的结果。Lin 等寻找更多线索来选择候选实体,这些线索被视为种子实体指代项,用作实体指代项与候选实体的桥梁。Dai 等使用社交平台 Yelp 的特征信息,包括用户名、用户评论和网站评论,丰富了实体指代项相关的辅助信息,实现了实体指代项的歧义消除。因此,与实体指代项相关的辅助信息将通过实体指代项和候选实体的链接实现更精确的歧义消除。

        另一些学者使用深度学习研究文本语义。Francis-Landau 等使用卷积神经网络学习文本的表示形式,然后获得候选实体向量和文本向量的余弦相似度得分。Ganea 和 Hofmann专注于文档级别的歧义消除,使用神经网络和注意力机制来深度表示实体指代项和候选实体之间的关系。Mueller和 Durrett将句子左右分开,然后分别使用门控循环单元和注意力机制,获得关于实体指代项和候选实体的分数。Ouyang 等提出一种基于深度序列匹配网络的实体链接算法,综合考虑实体之间的内容相似度和结构相似性,从而帮助机器理解底层数据。目前,在实体链接中使用深度学习方法是一个热门的研究课题。

     

    命名实体识别的研究方法

        命名实体识别从早期基于词典和规则的方法,到传统机器学习的方法,后来采用基于深度学习的方法,一直到当下热门的注意力机制、图神经网络等研究方法,命名实体识别技术路线随着时间在不断发展,技术发展趋势如图4所示。

    图4

    1

    基于规则和字典的方法

        基于规则和字典的方法是最初代的命名实体识别使用的方法,这些方法多采用由语言学家通过人工方式,依据数据集特征构建的特定规则模板或者特殊词典。规则包括关键词、位置词、方位词、中心词、指示词、统计信息、标点符号等。词典是由特征词构成的词典和外部词典共同组成,外部词典指已有的常识词典。制定好规则和词典后,通常使用匹配的方式对文本进行处理以实现命名实体识别。

        Rau等学者首次提出将人工编写的规则与启发式想法相结合的方法,实现了从文本中自动抽取公司名称类型的命名实体。这种基于规则的方法局限性非常明显,不仅需要消耗巨大的人力劳动,且不容易在其他实体类型或数据集扩展,无法适应数据的变化情况。

    2

    基于传统机器学习的方法

        在基于机器学习的方法中,命名实体识别被当作是序列标注问题。与分类问题相比,序列标注问题中当前的预测标签不仅与当前的输入特征相关,还与之前的预测标签相关,即预测标签序列之间是有强相互依赖关系的。采用的传统机器学习方法主要包括:隐马尔可夫模型(Hidden Markov Model,HMM)、最大熵(Maximum Entropy,ME)、最大熵马尔可夫模型( Maximum Entropy Markov Model,MEMM)、支持向量机(Support Vector Machine,SVM)、条件随机场 ( Conditional Random Fields,CRF)  等。

        在这 5 种学习方法中,ME 结构紧凑,具有较好的通用性,其主要缺点是训练时间复杂性非常高,甚至导致训练代价难以承受,另外由于需要明确的归一化计算,导致开销比较大。HMM 对转移概率和表现概率直接建模,统计共现概率。ME 和 SVM 在正确率上要 HMM 高一些,但是 HMM 在训练和识别时的速度要快一些。MEMM 对转移概率和表现概率建立联合概率,统计条件概率,但由于只在局部做归一化容易陷入局部最优。CRF 模型统计全局概率,在归一化时考虑数据在全局的分布,而不是仅仅在局部进行归一化,因此解决了 MEMM 中标记偏置的问题。在传统机器学习中,CRF 被看作是命名实体识别的主流模型,优点在于在对一个位置进行标注的过程中 CRF 可以利用内部及上下文特征信息。

        还有学者通过调整方法的精确率和召回率对传统机器学习进行改进。Culotta 和 McCallum计算从 CRF 模型提取的短语的置信度得分,将这些得分用于对实体识别进行排序和过滤。Carpenter 从HMM 计算短语级别的条件概率,并尝试通过降低这些概率的阈值来增加对命名实体识别的召回率。对给定训练好的 CRF 模型,Minkov 等学者通过微调特征的权重来判断是否是命名实体,更改权重可能会奖励或惩罚 CRF 解码过程中的实体识别。

    3

    基于深度学习的方法

        随着深度学习的不断发展,命名实体识别的研究重点已转向深层神经网络(Deep Neural Network,DNN),该技术几乎不需要特征工程和领域知识 。Collobert 等学者首次提出基于神经网络的命名实体识别方法,该方法中每个单词具有固定大小的窗口,但未能考虑长距离单词之间的有效信息。为了克服这一限制,Chiu 和 Nichols提出了一种双向 LSTM-CNNs 架构,该架构可自动检测单词和字符级别的特征。Ma 和 Hovy进一步将其扩展到 BiLSTM-CNNs-CRF 体系结构,其中添加了 CRF 模块以优化输出标签序列。Liu 等提出了一种称为 LM-LSTM-CRF 的任务感知型神经语言模型,将字符感知型神经语言模型合并到一个多任务框架下,以提取字符级向量化表示。这些端到端模型具备从数据中自动学习的功能,可以很好地识别新实体。

        部分学者将辅助信息和深度学习方法混合使用进行命名实体识别。Liu 等在混合半马尔可夫条件随机场(Hybrid Semi-Markov Conditional Random Fields,HSCRFs) 的体系结构的基础上加入了Gazetteers 地名词典,利用实体在地名词典的匹配结果作为命名实体识别的特征之一。一些研究尝试在标签级别跨数据集共享信息,Greenberg等提出了一个单一的 CRF 模型,使用异构标签集进行命名实体识别,此方法对平衡标签分布的领域数据集有实用性。Augenstein 等使用标签向量化表示在任务之间进一步播信息。Beryozkin 等建议使用给定的标签层次结构共同学习一个在所有标签集中共享其标签层的神经网络,取得了非常优异的性能。

        近年来,在基于神经网络的结构上加入注意力机制、图神经网络、迁移学习、远监督学习等热门研究技术也是目前的主流研究方向。

     

    公开的数据集和评价指标

    1

    公开的数据集 

        常用的命名实体识别数据集有 CoNLL 2003,CoNLL 2002,ACE 2004,ACE 2005 等。数据集的具体介绍如下:

        ① CoNLL 2003 数据集包括1393 篇英语新闻文章和 909 篇德语新闻文章,英语语料库是免费的,德国语料库需要收费。英语语料取自路透社收集的共享任务数据集。数据集中标注了 4 种实体类型:PER,LOC,ORG,MISC。

         ② CoNLL 2002 数据集是从西班牙 EFE 新闻机构收集的西班牙共享任务数据集。数据集标注了 4 种实体类型:PER,LOC,ORG,MISC。

        ③ ACE 2004 多语种训练语料库版权属于语言数据联盟(Linguistic Data Consortium,LDC),ACE2004多语言培训语料库包含用于2004年自动内容提取(ACE)技术评估的全套英语、阿拉伯语和中文培训数据。语言集由为实体和关系标注的各种类型的数据组成。

        ④ ACE2005多语种训练语料库版权属于LDC,包含完整的英语、阿拉伯语和汉语训练数据,数据来源包括:微博、广播新闻、新闻组、广播对话等,可以用来做实体、关系、事件抽取等任务。

        ⑤ OntoNotes5.0数据集版权属于LDC,由1745K英语、900K中文和300 K阿拉伯语文本数据组成,OntoNotes5.0的数据来源也多种多样,来自电话对话、新闻通讯社、广播新闻、广播对话和博客等。实体被标注为PERSON,ORGANIZATION,LOCATION 等18个类型。

        ⑥ MUC 7 数据集是发布的可以用于命名实体识别任务,版权属于LDC,下载需要支付一定费用。数据取自北美新闻文本语料库的新闻标题,其中包含190K训练集、64K测试集。

        ⑦ Twitter 数据集是由 Zhang 等提供,数据收集于 Twitter,训练集包含了 4 000 推特文章,3 257 条推特用户测试。该数据集不仅包含文本信息还包含了图片信息。

        大部分数据集的发布官方都直接给出了训练集、验证集和测试集的划分。同时不同的数据集可能采用不同的标注方法,最常见的标注方法有 IOB,BIOES,Markup,IO,BMEWO 等,下面详细介绍几种常用的标注方法(如图5所示):

        (1)IOB 标注法,是 CoNLL 2003 采用的标注法,I 表示内部,O 表示外部,B 表示开始。如若语料中某个词标注 B/I-XXX,B/I 表示这个词属于命名实体的开始或内部,即该词是命名实体的一部分,XXX表示命名实体的类型。当词标注 O 则表示属于命名实体的外部,即它不是一个命名实体。

        (2)BIOES 标注法,是在 IOB 方法上的扩展,具有更完备的标注规则。其中 B 表示这个词处于一个命名实体的开始,I 表示内部,O 表示外部,E 表示这个词处于一个实体的结束,S 表示这个词是单独形成一个命名实体。BIOES 是目前最通用的命名实体标注方法。

    图5

    2

    评价指标

        对命名实体识别系统的发展来说,对系统的全面评估是必不可少的,许多系统被要求根据它们标注文本的能力来对系统进行排序。目前,通常采用的评估指标主要有查准率(Precision,亦称准确率)、查全率(Recall,亦称召回率)和 F1值,它们的定义如下:

    表1

       查准率P和查全率R分别定义为

        查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单的任务中,才可能使查全率和查准率都很高。为了综合考虑查全率和查准率,引入它们的调和平均F1值,F1值的定义如下:

     

    注:本文旨在学习和分享,如内容上有不到之处,欢迎后台批评指正。

    参考文献:

    [1]陈曙东,欧阳小叶.命名实体识别技术综述[J].无线电通信技术,2020,46(03):251-260.

    [2]刘浏,王东波.命名实体识别研究综述[J].情报学报,2018,37(03):329-340.

    [3]孙镇,王惠临.命名实体识别研究进展综述[J].现代图书情报技术,2010(06):42-47.

    [4]周志华.机器学习[M].北京:清华大学出版社,2016:30-32.

     

    本文来源微信公众号:python遇见NLP

     

    展开全文
  • 数据库实体联系模型与关系模型

    千次阅读 2020-03-02 19:11:33
    所有的课程实体组成课程实体集,所有的老师实体组成老师实体集。   绘制ER图 ER图是ER模型的图形化描述。俗话说:一张图胜过千言万语,用ER图可以清晰地描述出ER模型的结构。 规范的ER图可以帮助人们对...

    数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。例如,编程微课是在线编程教育项目,该项目涉及到课程、学生、老师、学习资料等数据,这些数据都要被存储下来,并且能够方便的增加、修改、删除和查询。这就需要规划课程、学生、老师、学习资料等数据构成以及相互之间的关系。因此,规划数据构成及数据间关系,并应用某一具体的数据库管理系统如MySQL构建数据库的过程就是数据库设计。

    由于项目需求的易变性和数据的复杂性,数据库设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程。数据库设计步骤如下图所示:

     

     

                                           

                                                                    图2-5 数据库设计过程流程图

     

    需求分析阶段主要分析项目涉及的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及在业务活动中的存储情况,确定用户对数据库系统的使用要求和各种约束条件等,形成数据库需求说明书

    概念结构设计阶段根据数据库需求说明书,创建数据库概念结构,描述概念结构的有力工具是ER模型

    ER模型表示的概念结构模型独立于任何一种数据模型,并独立于任何一个具体的数据库管理系统。因此,需要把概念结构设计阶段设计的ER模型转换为关系数据模型二维表结构,此阶段为逻辑结构设计阶段

    物理设计阶段是在计算机的物理设备上确定应采取的数据存储结构和存取方法,以及如何分配存储空间等问题。关系数据库物理设计的主要工作是由系统自动完成的,数据库设计者只要关心索引文件的创建即可

    验证设计是在上述设计的基础上,收集数据并建立数据库,运行应用任务来验证数据库的正确性和合理性,当发现设计问题时,可能需要对数据库设计进行修改。

     

    实体联系模型(ER图)

    当前常用的概念数据模型是ER模型。ER模型描述数据库的概念模式,不考虑数据库的逻辑与物理结构,它充分反映现实世界,易于理解,将现实世界的事物以信息结构的形式很方便地表示出来。

    例如,课程是编程微课的主要内容,课程涉及到老师、学生等对象等实体,进一步分析还涉及到课程视频、课程资料、课程价格等各种数据。在用ER模型对课程分析和描述中,对这些实体以及实体之间的联系给出了确切的定义。

    ER模型有四个概念,分别是实体、属性、联系、实体集

     

    实体

    实体是客观存在并且可以互相区分的事物,可以是人或物,也可以是抽象的概念。在现实世界,实体并不是孤立存在的,实体与实体之间也存在联系。例如,课程与学生之间存在学生学习课程的联系,课程与老师之间存在老师创建课程的联系。

     

    属性

    每个实体具有的特征称为属性,一个实体可以由若干属性来描述,属性都有其取值范围,称为值集或值域。例如,课程实体可以由课程编号、课程名称、授课老师、类别、简课程介、价格等属性组成。唯一地标识实体的属性或属性组称为实体的关键字。例如,属性值“20180603,Java编程基础,郎老师,编程语言,课程以浅显易懂的语言,以常见的生活场景为案例,带领大家逐步进入计算机编程世界,86”。其中20180603是课程编号的属性值,该编号在在所有的课程实体中是唯一的,该属性就是课程实体的关键字。

     

    联系

    实体不是孤立存在的,实体之间是有联系的。实体之间的联系可以分为三类:一对一(1:1)、一对多(1:n)和多对多(m:n)。例如,一个老师可以创建多个课程,老师与课程的联系就是一对多的;如果一个老师只能创建一个课程,则老师和课程的联系就是一对一的。在进行问题分析时,要根据客观实际,抓住问题实质进行现实世界的抽象

     

    实体集

    具有相同属性的实体的集合称为实体集。在同一实体集中,每个实体的属性及其值域是相同的,但可能取不同的值。例如,所有的课程实体组成课程实体集,所有的老师实体组成老师实体集。

     

    绘制ER图

    ER图是ER模型的图形化描述。俗话说:一张图胜过千言万语,用ER图可以清晰地描述出ER模型的结构。

    规范的ER图可以帮助人们对ER模型的统一认识,便于沟通和讨论,有助于工作效率的提高。它使用一组预定义的符号来表示ER模型的实体、属性、联系等概念,这些预先定义的符号已经标准化,从而让全世界的开发人员都可以采用这些符号而不会引起混淆。ER图的基本图素有如下的约定:

     

                           

                                                                              图 2-6 ER图的基本图素

    (1)用长方形表示实体,在框内写上实体名。

    (2)用椭圆表示实体的属性,并用连接线把实体与属性连接起来,属性如果是实体的关键字,可以用双线椭圆表示。

    (3)用菱形表示实体间的联系,菱形内写上联系名,用连接线把菱形分别与有关的实体相连接,在连接线旁标上连接的类型,如果联系也有属性,则联系的属性和菱形连接。

     

                                            

                                                                            图 2-7 用ER图表示的课程管理

    图2-7所示为用ER图表示一个课程管理,这是一个简化的课程管理模型,课程由老师创建并属于老师,两者之间是一对多的联系。课程与学生直接存在学习的联系,课程与学生是多对多的联系,因此联系也有属性,分别是学生编号和课程编号。双线椭圆表示的属性编号是实体的关键字。

    通过图2-7可以看出,ER模型是依赖业务运营方式的,它是企业运营方式的信息化描述。企业业务的改变直接影响着ER图的结构和实体间的联系。即使是相同的业务,数据库设计人员侧重分析的数据不同,给出的ER图也可能是不同的。

    对于设计比较复杂的系统来说,有时为了使ER图简洁明了,在ER图中可以省略属性,只画出实体和联系,将属性以表格的形式另外列出。如图2-8所示,给出的是不包含属性的ER图,

     

                                                    

                                                                     图 2-8 不包含属性的课程管理ER图

    ER图直观易懂,是系统开发人员和客户之间很好的沟通工具。对于客户来说,它概况了企业运营的方式和各种联系;对于系统开发人员来说,它从概念上描述了一个应用系统数据库的信息组织。因此,如能准确画出企业运营方式的ER图,就意味着搞清楚了企业的业务运营方式,以后可以根据ER图,结合具体的数据库管理系统,把ER图转换为数据库管理系统所能支持的数据模型。这种逐步推进的数据库设计方法已经普遍应用于数据库设计中,画出应用系统的ER图成为数据库设计的一个重要步骤。

     

    关系模型

    ER图给出了实体联系模型的图形化描述,增强了开发人员与客户的沟通能力。在需求开发阶段ER模型是非常重要的,也是从企业的业务运营方式到概念模型的映射。

    到了设计阶段。就需要在概念模型的基础上建立关系模型,关系模型是用二维表来表示实体集属性间的关系以及实体间联系的形式化模型。它将用户数据的逻辑结构ER模型归纳为满足一定条件的二维表的形式。

    ER模型中的一个实体或联系对应一张二维表,ER模型中的实体属性转换为二维表的列,也可称为属性,每个属性的名称称为属性名,也可称为列名。每个属性取值范围称为该属性的域。二维表每个属性或列取值后的一行数据称为二维表的一个元组,也可以称为一条记录。二维表可以包含有限个不重复的记录。

    图2-9给出了实体“课程”、“老师”转化为关系模型的二维表。每个课程是课程表中的一条记录或一个元组,即一行;同样,每个老师的属性也反映在老师表中的一行;课程表和老师表的联系反映在课程表属性“老师编号”字段上,该字段和老师表的编号字段为同一个字段,因此通过“老师编号”字段可以确定是哪位老师建立的课程。

     

                               

                                                                   图 2-9 由实体课程和老师转化的课程和

    二维表的不可重复性可知,关系中必然存在一个属性或属性组,能够唯一标识一个元组,该属性或属性组称为关键字。当关系中存在多个关键字时,称它们为候选关键字,指定其中一个为主关键字,简称主键。

    设计二维表时,关系应满足如下性质。

    (1)表中每一列的取值范围都是相同的,也就是数据类型相同。

    (2)不同列的取值范围可以相同,但列名称不能相同。

    (3)表中列的次序可以变换,不影响关系的实际意义。

    (4)同一个表中,不允许存在两个完全相同的元组,这是集合的一个基本性质,保证了关系中元组的唯一性。

    (5)行的次序可以任意交换。

    (6)关系中的任何一个属性值都必须是不可分的元素。

    展开全文
  • 生成的文件可用UE打开或在exlipse打开,如果使用词本打开显示格式不友好
  • 【NLP】一文了解命名实体识别

    千次阅读 2020-09-06 11:00:00
    导读:从1991年开始,命名实体识别逐渐开始走进人们的视野,在各评测会议的推动下,命名实体识别技术得到了极大地发展,从最初的基于规则和字典的方法,到现在热门的注意力机制、图神经网络等方法...
  • nlp中的实体关系抽取方法总结

    万次阅读 多人点赞 2020-07-04 21:23:00
    NER还存在嵌套实体问题(实体重叠问题),如「《叶圣陶散文选集》」中会出现两个实体「叶圣陶」和「叶圣陶散文选集」分别代表「作者」和「作品」两个实体。而传统做法由于每一个token只能属于一种Tag,无法解决这类...
  • 实体对齐(Entity Alignment)相关论文与数据集整理

    千次阅读 多人点赞 2021-03-21 21:46:13
    实体对齐(Entity Alignment)、知识图谱融合方法总结整理 年份 模型 主要思想 博文推荐 论文 代码 2019 Entity Alignment between Knowledge Graphs Using Attribute Embeddings 实体对齐数据集整理 ...
  • 【命名实体识别(NER)】(1):命名实体识别综述

    万次阅读 多人点赞 2019-03-23 09:41:44
    命名实体识别综述 什么是命名实体识别? 命名实体识别(Named Entity Recognition,简称NER),又称作**“专名识别”,是自然语言处理中的一项基础任务,应用范围非常广泛。命名实体一般指的是文本中具有特定意义...
  • NLP之中文命名实体识别

    万次阅读 2018-09-25 18:45:47
    在MUC-6中首次使用了命名实体(named entity)这一术语,由于当时关注的焦点是信息抽取(information extraction)问题,即从报章等非结构化文本中抽取关于公司活动和国防相关活动的结构化信息,而人名、地名、组织...
  • 实体消歧

    千次阅读 2019-04-19 20:38:20
    一般来说,由于自然语言存在较多的一词多义(相同的实体指称在不同的上下文中可以指向知识库中的不同实体)或多词一义(知识库中的同一个实体在文本中有不同的指称)的现象,实体识别的结果很难直接加入到知识图谱...
  • 向AI转型的程序员都关注了这个号????????????机器学习AI算法工程 公众号:datayx百度拥有全球最大的中文知识图谱,拥有数亿实体、千亿事实,具备丰富的知识标注与关联能力,不...
  • 实体链接调研总结

    千次阅读 2019-06-21 16:01:50
    实体链接什么是实体链接?实体链接的目前存在的问题实体链接的分类与流程实体链接从大类上可以分为两类:实体链接的流程: 本文是针对中文实体链接的内容做简要概述,介绍实体链接的定义、目前的挑战和问题、一般的...
  • 实体关系抽取任务方法及SOTA模型总结

    千次阅读 多人点赞 2020-05-31 21:02:08
    1 实体关系抽取方法思路 实体关系抽取是从文本中的句子里抽取出一对实体并给出实体间关系的任务。该任务的输入是一句话,输出是一个spo三元组(subject-predicate-object)。 对于实体关系抽取任务,最容易想到的...
  • C#实体类生成器

    热门讨论 2012-04-11 15:19:41
    一个C#实体类生成器,有源码。可以自动生成C#的实体类,解决VS只能一个字段一个字段的封装的弊端。
  • 知识图谱(五)——实体消歧

    万次阅读 2019-07-28 17:04:38
    多样性——同一实体在文本中会有不同的指称。eg:飞人、帮主、老大和MJ都指美国篮球运动员迈克尔·乔丹 歧义性——相同的实体指称在不同的上下文中可以指不同的实体。eg:迈克尔·乔丹指美国篮球运动员、爱尔兰政治...
  • 命名实体识别研究综述

    万次阅读 2019-04-15 00:35:18
    命名实体识别研究进展综述 1 引 言 命名实体识别(Named Entity Recognition,NER)的主要任务是识别出文本中的人名、地名等专有名称和有意义的时间、日期等数量短语并加以归类[1]。命名实体识别技术是信息抽取、信息...
  • 基于BERT预训练的中文命名实体识别TensorFlow实现

    万次阅读 多人点赞 2019-01-03 11:58:25
    BERT-BiLSMT-CRF-NER Tensorflow solution of ...使用谷歌的BERT模型在BLSTM-CRF模型上进行预训练用于中文命名实体识别的Tensorflow代码’ 代码已经托管到GitHub 代码传送门 大家可以去clone 下来亲自体验一下! g...
  • oracle数据库实体类生成器

    热门讨论 2012-06-04 01:22:48
    可生成java和C#两种语言的实体类,简单好用。提供了源代码供学习参考,代码不是很规范,请谅解!
  • 基于Neo4j 图数据库的知识图谱的关联对齐(实体对齐)——上篇 基于Neo4j 图数据库的知识图谱的关联对齐(实体对齐)——下篇 在写入图谱前先要有相关的标准库。然后就是python简单的判断+cypher语句的结合写入。...
  • 实体是知识图谱的基本单元,也是文本中承载信息的重要语言单位。 按照国际公开评测(automatic content extraction, ACE)的定义,在文本中对实体的引用(entity mention,或称“指称项”)可以有三种形式:命名性...
  • 知识图谱之实体对齐一

    千次阅读 2020-10-24 12:44:34
    知识融合一般分为两步,本体对齐和实体匹配两种的基本流程相似,如下: 一、实体对齐常见的步骤: 数据预处理:1) 语法正规化 2) 数据正规化 记录链接:把实体通过相似度进行连接 相似度计算:分成属性相似度和...
  • 什么是实体关系图(ERD)?

    千次阅读 2020-07-13 14:53:19
    什么是实体关系图(ERD)? 转载自:https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram/ 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图...
  • Python 命名实体识别(NER) 库 使用指南

    千次阅读 2019-12-21 16:55:05
    最近工作中需要使用命名实体识别来做一版人名及机构名的预识别demo,评估了独立训练一套NER模型所耗费的标注成本巨大,加上目前只是对该需求进行demo版本的开发,所以花了一段时间对目前现有的开源 NER 工具包进行了...
  • Java实体

    万次阅读 多人点赞 2019-08-18 10:00:07
    实体类~
  • JavaWeb实体类转为json对象

    千次阅读 多人点赞 2020-12-17 21:18:06
    实体类转为json对象1.创建个实体类2.使用类库 fastjson3.测试一下4.Controller代码 1.创建个实体实体类User代码: package com.neuedu.entity; import lombok.AllArgsConstructor; import lombok.Data; import ...
  • 命名实体的消歧

    千次阅读 2019-07-05 17:45:36
    文章目录定义任务基于聚类的实体消歧基本思路核心问题挑战基于链接的实体消歧主要步骤:如何进行行实体链接? 定义 命名实体的歧义指的是一个实体指称项可对应到多个真实世界实体 确定一个实体指称项所指向的真实...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,232,522
精华内容 493,008
关键字:

实体