CN112989811A - 一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法 - Google Patents
一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法 Download PDFInfo
- Publication number
- CN112989811A CN112989811A CN202110224356.3A CN202110224356A CN112989811A CN 112989811 A CN112989811 A CN 112989811A CN 202110224356 A CN202110224356 A CN 202110224356A CN 112989811 A CN112989811 A CN 112989811A
- Authority
- CN
- China
- Prior art keywords
- entity
- sequence
- name
- crf
- bilstm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于BiLSTM‑CRF的历史典籍阅读辅助***及其控制方法,使用BiLSTM‑CRF进行命名实体标注;在用户指定针对某一实体访问时,程序会在数据库中查询和该词有关的信息;本发明标注了一些隋唐时期的文本作为训练数据;之后利用这些数据对BiLSTM‑CRF模型进行训练;在实际使用过程中,本发明在读者使用应用打开一个文言文文件后,对文本进行预处理;之后,将这个表示传入BiLSTM层,计算每一个位置可能对应的各个标签的概率,之后通过CRF层计算出得分最高的标签序列;在提取出实体之后,到预设的数据库中对实体的相关信息进行查询,并将查询结果以浮窗形式显示在应用上。
Description
技术领域
本发明属于自然语言处理技术领域,具体地,涉及一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法。
背景技术
中国文化源远流长,历史典籍则是这些灿烂文化流传至今最为常见的载体。然而,文言文的学习在白话文流行的今天没有得到足够的重视;现代人阅读文化典籍时遇到的困难也越来越多。在今天,文言文学习受到的重视远不及白话文;此外,对于有良好文言文阅读基础的人,历史知识和对于事件主要人物的信息的缺乏也会大大影响文言典籍的阅读体验,对于初学者而言,这个难度更是会大大增加。
目前,对于文言文相关的命名实体识别任务研究还相对较少。如(Nadeau D,Sekine S.A survey of named entity recognition and classification[J].Lingvisticae Investigationes,2007,30(1):pages.3-26.)列举了命名实体技术发展过程中的若干方法。但是,这些方法在文言文上的实体识别效果并不好,因为文言文的结构更加紧凑,表意也更加精炼,很多实体只有一个字,同时一个字也可能包含多种实体的意思,一般的命名实体识别模型并不能很好的表示文言文中的实体。如(Morteza Ziyadi,YutingSun, Abhishek Goswami,Jade Huang,Weizhu Chen:Example-Based Named EntityRecognition) 给出了一种基于实例的命名实体识别模型,但是在文言文中,可用的标注好的语料非常少,此类方法并不能很好的发挥作用。
同时,当前软件市场中,与文言文阅读相关的应用主要分为两类:一是服务于中小学生的、包含课内文言文的教学应用,这类应用的信息全面,但文章覆盖范围小,仅包含课内内容,无法满足广大文言文爱好者的需求;第二类是文言文的翻译工具,可提供文言文对应的白话文翻译帮助读者理解,但也不能提供给读者理解所需要的详细信息。
现有技术具有以下缺点:
1.仅服务于目标群体,如中小学生等。虽然效果相对较好,但是使用范围仅限于课内的课文以及一小部分课外拓展文章,而且其中的信息大多通过存储现成的数据实现,对于数据中不包含的信息无法辅助阅读,这也是其无法为文言文爱好者辅助阅读的原因。
2.现在的可以大规模使用的阅读辅助应用,大多只提供翻译功能,无法识别出文章中的实体信息,如人名、地名和时间等,只是简单的将文言文对应的白话文显示给用户。但用户的问题往往并不是读不懂,而是在无法对已经了解的信息进行高效的组织整理。
3.现在的标注好的实体识别语料中,大多为白话文;开源的文言文的词向量也只有《四库全书》。而对于文言文来讲,不同朝代的风格差异较大,利用跨朝代的语料训练的结果不会理想。对于现有的大多数命名实体识别模型而言,文言文的未登陆词过多。以人名为例,同一个人可能有名、字、号、带姓或不带姓等多种称呼。
发明内容
本发明为了解决问题,提出了一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法。
本发明是通过以下方法实现的:
一种基于BiLSTM-CRF的历史典籍阅读辅助***,所述***包括:
基于Asp.NET Core Blazor的前端模块:所述Asp.NET Core Blazor是一个使用.NET 生成交互式客户端Web UI的框架;使用C#代替JavaScript创建的交互式UI,共享使用.NET编写的服务器端和客户端应用逻辑;所述前端模块使用现存的Web前端框架完成构建或移植;
基于.NET Core+python+飞桨的形式的后端模块:所述.NET Core部分用于预处理传输文件,再将数据传送给python+飞桨的模型部分来完成预测,再对预测结果进行处理,查询数据库后,传给前端模块进行显示;
显示模块:从后端模块传回来的数据将被渲染为html文档供用户阅读;被识别为时间、地点和人名的实体字词会被高亮显示;用户将鼠标移到高亮显示的实体字词上时,会显示悬浮信息卡,点击字词,会跳转应用到该字词相关信息的详情页面;人名对应的详情页面为人物关系图,所述人物关系图是基于Apache ECharts显示的;
Electron.NET封装模块:Electron是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序的框架,Electron.NET封装模块将所述前端模块、后端模块和显示模块构成的一个Web应用,再封装成一个跨平台的桌面应用程序。
一种应用于基于BiLSTM-CRF的历史典籍阅读辅助***的控制方法,所述方法包括以下步骤:
A、建立数据库;
B、构建基于BiLSTM-CRF的实体识别模型;
C、对模型结果测评;
D、处理特殊实体并在数据库中查询,将查询结果输出到显示模块。
进一步地、所述步骤A包括以下步骤:
采集百度百科和Wikipedia中相关词条的内容,通过使用Python Request库制作简单爬虫,将采集频率设置为5s一条;
将采集后的数据使用beautifulsoup4进行解析,提取其中与亲属关系相关的内容,对复杂格式进行手动整理与提取;
在本地建立数据库和处理检索数据,优先选择使用SQLite库进行存储和检索;
将本地数据分为两个表格,第一个表为内容表格,索引为Integer的ID,内容包括人名以及其父亲母亲兄弟姐妹子女等亲属信息;第二个为查找表格,索引为别名,内容为人名对应的ID;
当从本地数据中提取数据时,先在查找表格中根据传入的人名称检索到其对应的ID,然后在内容表格中通过ID检索到数据的对应行,将检索到的语料输出。
进一步地、所述步骤B包括以下步骤:
对步骤A中输出的语料,采用BIOES标注法,对语料中的每个字进行标注;对于不同的人名、地名和时间三种实体类型,分别用N、L和T字母标注;
将一个前向的LSTM和一个后向的LSTM相结合,构建BiLSTM双向长短时记忆网络,捕捉双向的语义信息;所述捕捉双向的语义信息具体为:首先针对输入句子的每个字符随机生成一个向量,将所有随机生成的向量分别传入前向LSTM模型和后向LSTM模型;将得到的两个输出向量综合在一起,得到包含原文本上下文信息的向量,作为CRF模型的输入序列,所述输入序列为将句子分解为若干单字后经过BiLSTM层得到的包含特征的序列;
CRF模型是一种基于判别式的无向概率图模型,用于在给定需要标记的观察序列的条件下,预测标签序列的概率分布;
CRF模型的判别式为:设P(x|y)是线性连条件随机公式形式,则在随机变量X取值为 x的条件下,随机变量Y取值为y的条件概率具有以下形式:
其中,tk(yi-1,yi,x,i)为特征函数,分别用于刻画相邻标记变量之间的相对关系以及输入序列对相邻标记变量的影响;sl(yi,x,i)是定义在输入序列的标记位置i上的状态特征函数,i的取值范围为0≤i<L,L为序列长度,输出序列与目标序列等长,用于刻画输入序列对标记变量的影响,λk和μl为参数,Z(x)为规范化因子;x为输入序列的某一个位置的内容,x∈X,X为输入序列,y为输出序列对应位置的内容,y∈Y,yi∈Y, yi-1∈Y,Y为输出序列;0≤k<M,0≤l<M,M为输入序列与某一确定位置输出值的组合的数量;
将BiLSTM得到的预测序列的得分和CRF中转移概率的得分相加为最高的序列,作为最终的输出序列,所述输出序列为将每个单字所在词的类别组成的序列。
进一步地、所述步骤C包括以下步骤:
对基于BiLSTM-CRF的实体识别模型结果分别对三个类别计算精准率P、召回率R和F值作为评测标准,计算公式如下:
其中,TP为将正类预测为正类的数量;FP为将负类预测为正类的数量;FN为将正类预测为负类的数量;计算时,剔除正确结果和预测结果都为O的字;
在实际测评中,对P和R加权计算新的F值;所述新的F值计算公式如下:
其中,α为P对于R的相对权重,α的取值范围为(0,1)。
进一步地、所述步骤D包括以下步骤:
对于识别出的时间类实体,所述时间类实体被识别出来之后,将会被自动分开,年号部分将到数据库中查询,得到此年号的开始时间;时间部分将被转换为一个偏移值,直接与开始时间相加,相加的结果将作为这个时间实体对应的公元纪年;
对于识别出的人名实体,首先利用数据库中的统一ID对照表,得到此人名的唯一ID;对于文章中的重名现象,即同一实体名有两个统一ID满足条件,则从此实体出发,找到和它距离最近的N个人名实体,分别计算这N个人名实体到各个ID对应的人物的距离;
其中s(pj,pi)的计算方式为:如果联通,则人物pj和pi相连的路径上的人物个数;否则 s(pj,pi)为k’+1,其中k’为搜索的步数:
对于识别出的地名实体,直接到对应地名库中进行查询;对于不同地点的统一地名,当在同一朝代条件下,每个地点的地名唯一时,即同一地名只能对应同一个地点;当识别到的地名在数据库中有两条记录时,将统计与此地名最近的N个时间实体和人名实体,利用这N个实体进行投票,以决定此地名所在的朝代,进而确定此地名在数据库中的子项;
最后在提取出实体之后,到步骤A中建立的数据库对实体的相关信息进行查询,并将查询结果以浮窗形式显示在应用上。
本发明有益效果
(1)本发明提出的方法并不是针对数据的,而是针对文章的,理论上可以处理任何一篇文言文,极大地扩大了应用的服务范围。此外,对于未登陆词,模型在检测时通过调整参数和阈值可以使得更多可能的实体被检测出来,之后再通过数据库的检索步骤进行过滤,大大提高了命名实体识别模型的识别效率;
(2)本发明针对于文言文中的过于简略的语言表示,提出了一套方案用于处理文言文中可能出现的主要的实体类别的信息检索过程中可能出现的问题,例如人名重名、地名重名、古代年号纪年法和公元纪年法之间的转换等;
(3)本发明数据方面,还标注了隋唐时期的NER任务的语料。这些语料将在后续开源,以供其他研究使用;
(4)本发明对于应用的构建,使用了Asp.NET Core Blazor,整个应用界面简洁明了,使用方便,读者的阅读效率将会大大提升;同时,基于.NET的框架构建的Web应用能够保证不同平台的兼容性,可以在手机端或PC段作为一个单独的应用,也可作为插件形式与其他应用一同使用,为读者提供实时的、准确的阅读辅助,填补了应用市场的空白。
附图说明
图1为本发明的程序运行过程示意图;
图2为本发明的LSTM框架示意图;
图3为本发明的人物关系示例图;
图4为本发明的识别实体标注示例图;
图5为本发明的对于人名相关实体信息显示示例图;
图6为本发明的对于地名相关实体信息显示示例图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明使用BiLSTM-CRF进行命名实体标注;在用户指定针对某一实体的访问(即,点击该词或鼠标悬停时),程序会在数据库中查询和该词有关的信息(如,人物关系网,地点信息等)。
首先,本发明标注了一些隋唐时期的文本作为训练数据。之后利用这些数据对BiLSTM -CRF模型进行训练。在实际使用过程中,读者首先选择使用应用打开一个文言文文件(可以是文本文件或pdf文件),本发明会对文本进行预处理。之后,将这个表示传入BiLSTM 层,计算每一个位置可能对应的各个标签的概率,之后通过CRF层计算出得分最高的标签序列。在提取出实体之后,到预设的数据库中对实体的相关信息进行查询,并将查询结果以浮窗形式显示在应用上,为使用者提供流畅的使用体验;具体处理流程如图1所示。
一种基于BiLSTM-CRF的历史典籍阅读辅助***,所述***包括:
基于Asp.NET Core Blazor的前端模块:所述ASP.NET Core Blazor是一个使用.NET 生成交互式客户端Web UI的框架;使用C#代替JavaScript创建的交互式UI,共享使用.NET编写的服务器端和客户端应用逻辑;Blazor的优势在于,其前端可以使用现存的诸多Web前端框架(如Bootstrap等)完成构建,能保证其美观性,本身作为Web应用,可移植性也有所保证;
前端的设计过程中,为了充分测试运行效果,还会构造一个假后端,其与最终实现的真后端有相同的接口,但是其提供的数据只作为测试使用;
基于.NET Core+python+飞桨的形式的后端模块:所述NET Core部分可以高效地预处理传输文件,再将数据传送给python+飞桨的模型部分来完成预测,再对预测结果进行处理,查询数据库后,传给前端模块进行显示;
显示模块:从后端模块传回来的数据将被渲染为html文档供用户阅读;被识别为时间、地点和人名的实体字词会被高亮显示;用户将鼠标移到高亮显示的实体字词上时,会显示悬浮信息卡,点击字词,会跳转应用到该字词相关信息的详情页面;人名对应的详情页面为人物关系图,所述人物关系图是基于Apache ECharts显示的;
本发明中,数据标注部分,可以采用文本匹配的方式进行辅助,将固定的地点或时间用文本匹配的方式标注出来;
Electron.NET封装模块:Electron是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序的框架,Electron.NET封装模块将所述前端模块、后端模块和显示模块构成的一个Web应用,再封装成一个跨平台的桌面应用程序。
一种应用于基于BiLSTM-CRF的历史典籍阅读辅助***的控制方法,所述方法包括以下步骤:
A、建立数据库;
B、构建基于BiLSTM-CRF的实体识别模型;
C、对模型结果测评;
D、处理特殊实体并在数据库中查询,将查询结果输出到显示模块。
所述步骤A包括以下步骤:
采集百度百科和Wikipedia中相关词条的内容,通过使用Python Request库制作简单爬虫,考虑到本次需要采集的数据量较小,同时考虑爬虫相关政策,将采集频率降低到5s一条;
将采集后的数据使用beautifulsoup4进行解析,提取其中与亲属关系相关的内容,对复杂格式进行手动整理与提取;
因为数据量小,在本地建立数据库和处理检索数据,优先选择使用SQLite库进行存储和检索;SQLite是一款超轻量级开源数据库,是遵守ACID的关系型数据库管理***,由约30000行C语言代码写成,只需约500k内存即可运行,存储在单一文件中,不依赖服务器的操作。保持了整体的简洁性和高效性;
将本地数据分为两个表格,第一个表为内容表格,索引为Integer的ID,内容包括人名以及其父亲母亲兄弟姐妹子女等亲属信息;第二个为查找表格,索引为别名,内容为人名对应的ID;
当从本地数据中提取数据时,先在查找表格中根据传入的人名称检索到其对应的ID,然后在内容表格中通过ID检索到数据的对应行,将检索到的语料输出。
即,例如对于唐高祖李渊,其可能被称为高祖,唐高祖,李渊,渊等。本发明通过传入的名称在表二中找到其对应的人物实体的ID,再根据ID在表一中找到其亲属信息;
本发明中的数据库查询步骤可以链接到其他朝代的信息的数据库,进而适应不同时期的文章。
所述步骤B包括以下步骤:
以“二十四史”为代表的纪传体史书,是中华民族浩如烟海的文化典籍中的明珠。在其中,本发明选择《旧唐书》作为主要的研究语料,原因有二:一是隋唐时期在历史上的地位特殊,这个时期的人物有很多跨越了隋唐两个朝代,人物关系较其他朝代相比更加复杂,研究更有意义,结果也更加实用;二是隋唐时期朝代更迭频繁,历史事件众多,而《旧唐书》与《新唐书》相比,语言朴实,且史实材料更多。
在旧唐书中,本发明选择了《本纪第一》至《本纪第五》、《列传第一》至《列传第五》、《地理第一》、《地理第二》作为待标注数据,这些语料将作为训练集和测试集供模型使用。
在实际开发过程中,由于文言文语料人工标注的效率不如预期,应用开发方向暂时以白话文为主。
对步骤A中输出的语料,采用BIOES标注法,对语料中的每个字进行标注;对于不同的人名、地名和时间三种实体类型,分别用N、L和T字母标注;将上述两种标注相结合,如下表:
例如:
高祖神尧大圣大光孝皇帝姓李氏,讳渊。
其标注结果为:
'B-N','E-N','O','O','O','O','O','O','O','O','O','O','B-N','E-N', 'O','O','S-N','O';
BiLSTM-CRF模型,通过BiLSTM进行自动的特征构造,再将词向量的序列传入CRF模型,进行序列标注。
长短时记忆网络(LSTM)由Sepp Hechreit和JurgenSchimidhuber在1997年提出,LSTM的全称为Long Short-Term Memory,是RNN的一个变种。与RNN不同的是,LSTM单元中增加了一个长期状态,如图2,因此,使用LSTM模型可以更好的捕捉到较长距离的依赖关系,而且可以通过调节训练过程,选择记忆的信息和遗忘的信息;
因为长短时记忆网络LSTM无法编码从后往前的信息,所以将一个前向的LSTM和一个后向的LSTM相结合,构建BiLSTM双向长短时记忆网络,捕捉双向的语义信息;首先针对输入句子的每个字符随机生成一个向量,将所有随机生成的向量分别传入前向LSTM模型和后向LSTM模型;模型训练之后,将得到的两个输出向量综合在一起,得到包含原文本上下文信息的向量,作为CRF模型的输入序列,所述输入序列为将句子分解为若干单字后经过BiLSTM层得到的包含特征的序列;
本发明中,词向量的训练步骤不仅可以使用BiLSTM网络,还可以采用一些预训练模型,如BERT或GPT等;
CRF模型是是Lafferty等在2001年提出的一种基于判别式的无向概率图模型,用于在给定需要标记的观察序列的条件下,预测标签序列的概率分布;加入CRF层的作用主要有两点:第一,在训练过程中,CRF会自动学习一些约束条件,以保证最后的标签预测结果合法;第二,CRF中的转移特征可以考虑到输出标签的顺序性;
CRF模型的判别式为:设P(x|y)是线性连条件随机公式形式,则在随机变量X取值为 x的条件下,随机变量Y取值为y的条件概率具有以下形式:
其中,tk(yi-1,yi,x,i)为特征函数,分别用于刻画相邻标记变量之间的相对关系以及输入序列对相邻标记变量的影响;sl(yi,x,i)是定义在输入序列的标记位置i上的状态特征函数,i的取值范围为0≤i<L,L为序列长度,输出序列与目标序列等长,用于刻画输入序列对标记变量的影响,λk和μl为参数,Z(x)为规范化因子;x为输入序列的某一个位置的内容,x∈X,X为输入序列,y为输出序列对应位置的内容,y∈Y,yi∈Y, yi-1∈Y,Y为输出序列;0≤k<M,0≤l<M,M为输入序列与某一确定位置输出值的组合的数量;
将BiLSTM得到的预测序列的得分和CRF中转移概率的得分相加为最高的序列,作为最终的输出序列,所述输出序列为将每个单字所在词的类别组成的序列。
所述步骤C包括以下步骤:
对基于BiLSTM-CRF的实体识别模型结果分别对三个类别计算精准率P、召回率R和F值作为评测标准,计算公式如下:
其中,TP为将正类预测为正类的数量;FP为将负类预测为正类的数量;FN为将正类预测为负类的数量;计算时,剔除正确结果和预测结果都为O的字;
在实际测评中,对P和R适当加权计算新的F值;因为模型识别出的数据在查找时会经过过滤,所以提高召回率的比重,以保证查找全面,公式如下:
其中,α为P对于R的相对权重,为提高召回率所占比重,α的取值范围为(0,1)。
所述步骤D包括以下步骤:
对于识别出的时间类实体,大多是“年号+时间”的形式,如“贞观三年”;这种实体被识别出来之后,将会被自动分开,年号部分将到数据库中查询,得到此年号的开始时间;时间部分将被转换为一个偏移值,直接与开始时间相加,相加的结果将作为这个时间实体对应的公元纪年;“贞观三年”将被分为“贞观”和“三年”,其中,“贞观”部分将根据数据库被转化为“627”,“三年”将转化为“3”,将二者相加得630,即“公元630年”作为“贞观三年”的相关信息进行显示;
对于识别出的人名实体,首先利用数据库中的统一ID对照表,得到此人名的唯一ID;对于文章中的重名现象,即同一实体名有两个统一ID满足条件,则从此实体出发,找到和它距离最近的N个人名实体,分别计算这N个人名实体到各个ID对应的人物的距离;
其中s(pj,pi)的计算方式为:如果联通,则人物pj和pi相连的路径上的人物个数;否则 s(pj,pi)为k’+1,其中k’为搜索的步数:
例如,设k’=3,即最多检索3层关系,则在图3中,“文献皇后”和“南阳公主”的距离为2,而“唐高祖李渊”和“南阳公主”之间的距离为4;
对于识别出的地名实体,直接到对应地名库中进行查询;对于不同地点的统一地名,当在同一朝代条件下,每个地点的地名唯一时,即同一地名只能对应同一个地点;当识别到的地名在数据库中有两条记录时,将统计与此地名最近的N个时间实体和人名实体,利用这N个实体进行投票,以决定此地名所在的朝代,进而确定此地名在数据库中的子项;
本发明中,在实体识别的步骤中,可以利用规则加以辅助;
最后在提取出实体之后,到步骤A中建立的数据库对实体的相关信息进行查询,并将查询结果以浮窗形式显示在应用上。
实施例
当用户在应用中打开文言文时,应用会读取用户选择的文本内容,并对读取到的文本内容进行预处理得到字符级的向量表示。之后将词向量传入BiLSTM层,训练之后会得到一个句子中的每个词对应各个标签的概率。将这些概率传入CRF层,计算出一条概率最大的路径作为最终的命名实体识别结果。利用已经构建好的数据库,我们可以查找到所有的识别出来的实体的相关信息,并传给前端进行显示。
以出师表为例,当用户打开对应的文件时,应用会读取《出师表》的文本内容,之后进行预处理,包括分割,初始化向量等。以第一句为例:“先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。”
将这句话的预处理后的结果传入BiLSTM层,我们将得到一个33*13的矩阵,其中33是句子长度,13是标签空间大小,每一行是对应位置的字所对应各种标签的概率。之后通过CRF层,我们可以得到一条概率最大的路径,作为序列标注的结果。对于这句话,我们得到的结果是:
'B-N','E-N','O','O','O','O','O','O','O','O','O','O','O','O','O', 'O','O','O','B-L','E-L','O','O','O','O','O','O','O','O','O','O', 'O','O','O';
将所有的句子都处理之后,将文本显示在应用界面上,并将识别出的实体用特殊颜色标注在文本中,显示之后的应用界面如图4;
在实体识别步骤之后,用户将鼠标悬停于识别出的实体上方,将会出发查询步骤。首先根据识别出的实体类型,到数据库中找到对应的实体名-统一ID表。例如,对于第一句中的“先帝”,我们在数据库中找到:
从而识别出实体“先帝”对应的统一ID为“刘备”。之后再根据“刘备”,去人物关系表中找到如下信息:
将这些信息传入应用层,直接显示即可。对于地名、时间相关的实体,直接去数据库查询即可。对于人名、地名等相关的实体信息显示分别如下图5、图6所示。
以上对本发明所提出的一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法,进行了详细介绍,本文中应用了数值模拟算例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种基于BiLSTM-CRF的历史典籍阅读辅助***,其特征在于,所述***包括:
基于Asp.NET Core Blazor的前端模块:所述Asp.NET Core Blazor是一个使用.NET生成交互式客户端Web UI的框架;使用C#代替JavaScript创建的交互式UI,共享使用.NET编写的服务器端和客户端应用逻辑;所述前端模块使用现存的Web前端框架完成构建或移植;
基于.NET Core+python+飞桨的形式的后端模块:所述.NET Core部分用于预处理传输文件,再将数据传送给python+飞桨的模型部分来完成预测,再对预测结果进行处理,查询数据库后,传给前端模块进行显示;
显示模块:从后端模块传回来的数据将被渲染为html文档供用户阅读;被识别为时间、地点和人名的实体字词会被高亮显示;用户将鼠标移到高亮显示的实体字词上时,会显示悬浮信息卡,点击字词,会跳转应用到该字词相关信息的详情页面;人名对应的详情页面为人物关系图,所述人物关系图是基于Apache ECharts显示的;
Electron.NET封装模块:Electron是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序的框架,Electron.NET封装模块将所述前端模块、后端模块和显示模块构成的一个Web应用,再封装成一个跨平台的桌面应用程序。
2.一种应用于基于BiLSTM-CRF的历史典籍阅读辅助***的控制方法,其特征在于,所述方法包括以下步骤:
A、建立数据库;
B、构建基于BiLSTM-CRF的实体识别模型;
C、对模型结果测评;
D、处理特殊实体并在数据库中查询,将查询结果输出到显示模块。
3.根据权利要求2所述方法,其特征在于:所述步骤A包括以下步骤:
采集百度百科和Wikipedia中相关词条的内容,通过使用Python Request库制作简单爬虫,将采集频率设置为5s一条;
将采集后的数据使用beautifulsoup4进行解析,提取其中与亲属关系相关的内容,对复杂格式进行手动整理与提取;
在本地建立数据库和处理检索数据,优先选择使用SQLite库进行存储和检索;
将本地数据分为两个表格,第一个表为内容表格,索引为Integer的ID,内容包括人名以及其父亲母亲兄弟姐妹子女等亲属信息;第二个为查找表格,索引为别名,内容为人名对应的ID;
当从本地数据中提取数据时,先在查找表格中根据传入的人名称检索到其对应的ID,然后在内容表格中通过ID检索到数据的对应行,将检索到的语料输出。
4.根据权利要求3所述方法,其特征在于:所述步骤B包括以下步骤:
对步骤A中输出的语料,采用BIOES标注法,对语料中的每个字进行标注;对于不同的人名、地名和时间三种实体类型,分别用N、L和T字母标注;
将一个前向的LSTM和一个后向的LSTM相结合,构建BiLSTM双向长短时记忆网络,捕捉双向的语义信息;所述捕捉双向的语义信息具体为:首先针对输入句子的每个字符随机生成一个向量,将所有随机生成的向量分别传入前向LSTM模型和后向LSTM模型;将得到的两个输出向量综合在一起,得到包含原文本上下文信息的向量,作为CRF模型的输入序列,所述输入序列为将句子分解为若干单字后经过BiLSTM层得到的包含特征的序列;
CRF模型是一种基于判别式的无向概率图模型,用于在给定需要标记的观察序列的条件下,预测标签序列的概率分布;
CRF模型的判别式为:设P(x|y)是线性连条件随机公式形式,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有以下形式:
其中,tk(yi-1,yi,x,i)为特征函数,分别用于刻画相邻标记变量之间的相对关系以及输入序列对相邻标记变量的影响;sl(yi,x,i)是定义在输入序列的标记位置i上的状态特征函数,i的取值范围为0≤i<L,L为序列长度,输出序列与目标序列等长,用于刻画输入序列对标记变量的影响,λk和μl为参数,Z(x)为规范化因子;x为输入序列的某一个位置的内容,x∈X,X为输入序列,y为输出序列对应位置的内容,y∈Y,yi∈Y,yi-1∈Y,Y为输出序列;0≤k<M,0≤l<M,M为输入序列与某一确定位置输出值的组合的数量;
将BiLSTM得到的预测序列的得分和CRF中转移概率的得分相加为最高的序列,作为最终的输出序列,所述输出序列为将每个单字所在词的类别组成的序列。
6.根据权利要求5所述方法,其特征在于,所述步骤D包括以下步骤:
对于识别出的时间类实体,所述时间类实体被识别出来之后,将会被自动分开,年号部分将到数据库中查询,得到此年号的开始时间;时间部分将被转换为一个偏移值,直接与开始时间相加,相加的结果将作为这个时间实体对应的公元纪年;
对于识别出的人名实体,首先利用数据库中的统一ID对照表,得到此人名的唯一ID;对于文章中的重名现象,即同一实体名有两个统一ID满足条件,则从此实体出发,找到和它距离最近的N个人名实体,分别计算这N个人名实体到各个ID对应的人物的距离;
其中s(pj,pi)的计算方式为:如果联通,则人物pj和pi相连的路径上的人物个数;否则s(pj,pi)为k’+1,其中k’为搜索的步数:
对于识别出的地名实体,直接到对应地名库中进行查询;对于不同地点的统一地名,当在同一朝代条件下,每个地点的地名唯一时,即同一地名只能对应同一个地点;当识别到的地名在数据库中有两条记录时,将统计与此地名最近的N个时间实体和人名实体,利用这N个实体进行投票,以决定此地名所在的朝代,进而确定此地名在数据库中的子项;
最后在提取出实体之后,到步骤A中建立的数据库对实体的相关信息进行查询,并将查询结果以浮窗形式显示在应用上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110224356.3A CN112989811B (zh) | 2021-03-01 | 2021-03-01 | 一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110224356.3A CN112989811B (zh) | 2021-03-01 | 2021-03-01 | 一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112989811A true CN112989811A (zh) | 2021-06-18 |
CN112989811B CN112989811B (zh) | 2022-09-09 |
Family
ID=76351440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110224356.3A Active CN112989811B (zh) | 2021-03-01 | 2021-03-01 | 一种基于BiLSTM-CRF的历史典籍阅读辅助***及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989811B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420296A (zh) * | 2021-07-08 | 2021-09-21 | 国网甘肃省电力公司电力科学研究院 | 一种基于Bert模型与BiLSTM的C源代码漏洞检测方法 |
CN117933245A (zh) * | 2024-03-22 | 2024-04-26 | 四川省特种设备检验研究院 | 一种特种设备维护问答***的中文分词方法 |
CN117933245B (zh) * | 2024-03-22 | 2024-06-28 | 四川省特种设备检验研究院 | 一种特种设备维护问答***的中文分词方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460013A (zh) * | 2018-01-30 | 2018-08-28 | 大连理工大学 | 一种基于细粒度词表示模型的序列标注模型 |
CN109271529A (zh) * | 2018-10-10 | 2019-01-25 | 内蒙古大学 | 西里尔蒙古文和传统蒙古文双文种知识图谱构建方法 |
CN109657239A (zh) * | 2018-12-12 | 2019-04-19 | 电子科技大学 | 基于注意力机制和语言模型学习的中文命名实体识别方法 |
CN110334300A (zh) * | 2019-07-10 | 2019-10-15 | 哈尔滨工业大学 | 面向舆情分析的文本辅助阅读方法 |
CN110347978A (zh) * | 2019-07-02 | 2019-10-18 | 深圳市数字星河科技有限公司 | 一种电子书辅助阅读的方法 |
CN111274804A (zh) * | 2020-01-17 | 2020-06-12 | 珠海市新德汇信息技术有限公司 | 基于命名实体识别的案件信息提取方法 |
CN111324742A (zh) * | 2020-02-10 | 2020-06-23 | 同方知网(北京)技术有限公司 | 一种数字人文知识图谱的构建方法 |
CN111611802A (zh) * | 2020-05-21 | 2020-09-01 | 苏州大学 | 多领域实体识别方法 |
CN111859887A (zh) * | 2020-07-21 | 2020-10-30 | 北京北斗天巡科技有限公司 | 一种基于深度学习的科技新闻自动写作*** |
CN112417880A (zh) * | 2020-11-30 | 2021-02-26 | 太极计算机股份有限公司 | 一种面向法院电子卷宗的案情信息自动抽取方法 |
-
2021
- 2021-03-01 CN CN202110224356.3A patent/CN112989811B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460013A (zh) * | 2018-01-30 | 2018-08-28 | 大连理工大学 | 一种基于细粒度词表示模型的序列标注模型 |
CN109271529A (zh) * | 2018-10-10 | 2019-01-25 | 内蒙古大学 | 西里尔蒙古文和传统蒙古文双文种知识图谱构建方法 |
CN109657239A (zh) * | 2018-12-12 | 2019-04-19 | 电子科技大学 | 基于注意力机制和语言模型学习的中文命名实体识别方法 |
CN110347978A (zh) * | 2019-07-02 | 2019-10-18 | 深圳市数字星河科技有限公司 | 一种电子书辅助阅读的方法 |
CN110334300A (zh) * | 2019-07-10 | 2019-10-15 | 哈尔滨工业大学 | 面向舆情分析的文本辅助阅读方法 |
CN111274804A (zh) * | 2020-01-17 | 2020-06-12 | 珠海市新德汇信息技术有限公司 | 基于命名实体识别的案件信息提取方法 |
CN111324742A (zh) * | 2020-02-10 | 2020-06-23 | 同方知网(北京)技术有限公司 | 一种数字人文知识图谱的构建方法 |
CN111611802A (zh) * | 2020-05-21 | 2020-09-01 | 苏州大学 | 多领域实体识别方法 |
CN111859887A (zh) * | 2020-07-21 | 2020-10-30 | 北京北斗天巡科技有限公司 | 一种基于深度学习的科技新闻自动写作*** |
CN112417880A (zh) * | 2020-11-30 | 2021-02-26 | 太极计算机股份有限公司 | 一种面向法院电子卷宗的案情信息自动抽取方法 |
Non-Patent Citations (2)
Title |
---|
DOTNET跨平台: "【译】使用Blazor构建桌面应用", 《BLOG.CSDN.NET/SD7O95O/ARTICLE/DETAILS/103081336》 * |
盛雅兰 等: "基于BiLSTM-CRF的《曹沧州医案》实体识别研究", 《第五届中国中医药信息大会——大数据标准化与智慧中医药论文集》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420296A (zh) * | 2021-07-08 | 2021-09-21 | 国网甘肃省电力公司电力科学研究院 | 一种基于Bert模型与BiLSTM的C源代码漏洞检测方法 |
CN117933245A (zh) * | 2024-03-22 | 2024-04-26 | 四川省特种设备检验研究院 | 一种特种设备维护问答***的中文分词方法 |
CN117933245B (zh) * | 2024-03-22 | 2024-06-28 | 四川省特种设备检验研究院 | 一种特种设备维护问答***的中文分词方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112989811B (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874378B (zh) | 基于规则模型的实体抽取与关系挖掘构建知识图谱的方法 | |
CN107766371B (zh) | 一种文本信息分类方法及其装置 | |
CN109271529B (zh) | 西里尔蒙古文和传统蒙古文双文种知识图谱构建方法 | |
CN102262634B (zh) | 一种自动问答方法及*** | |
CN110502621A (zh) | 问答方法、问答装置、计算机设备及存储介质 | |
CN110990590A (zh) | 一种基于强化学习和迁移学习的动态金融知识图谱构建方法 | |
CN110795543A (zh) | 基于深度学习的非结构化数据抽取方法、装置及存储介质 | |
CN110134954B (zh) | 一种基于Attention机制的命名实体识别方法 | |
CN111143672B (zh) | 基于知识图谱的专业特长学者推荐方法 | |
CN109308321A (zh) | 一种知识问答方法、知识问答***及计算机可读存储介质 | |
CN101539907A (zh) | 词性标注模型训练装置、词性标注***及其方法 | |
CN107315738A (zh) | 一种文本信息的创新度评估方法 | |
CN111858940B (zh) | 一种基于多头注意力的法律案例相似度计算方法及*** | |
CN106126619A (zh) | 一种基于视频内容的视频检索方法及*** | |
CN112632397A (zh) | 基于多类型学术成果画像及混合推荐策略的个性化推荐方法 | |
CN103886020B (zh) | 一种房地产信息快速搜索方法 | |
CN110688474B (zh) | 基于深度学习与链接预测的嵌入表示获得及引文推荐方法 | |
CN111401040A (zh) | 一种适用于word文本的关键词提取方法 | |
CN112559684A (zh) | 一种关键词提取及信息检索方法 | |
CN102955848A (zh) | 一种基于语义的三维模型检索***和方法 | |
CN115599899B (zh) | 基于飞行器知识图谱的智能问答方法、***、设备及介质 | |
CN112749265A (zh) | 一种基于多信息源的智能问答*** | |
CN116362221A (zh) | 融合多模态语义关联图谱的航空文献关键词相似度判定方法 | |
CN112966053A (zh) | 一种基于知识图谱的海洋领域专家库构建方法及装置 | |
CN111666374A (zh) | 一种在深度语言模型中融入额外知识信息的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |