目录

一、知识图谱的概念

​二、信息抽取

1. 信息抽取案例

2. 信息抽取概念

三、自然语言理解的本质

四、信息抽取的主要任务

五、知识图谱的构建 

​构建糖尿病知识图谱

​1. 实体体系 

2. 关系体系 

​3. 标注工具:brat 

4. 实体分布分析 

​5. 实体内容探索

六、AC自动机 

1. KMP算法

​2. Trie树 

​3. AC自动机原理

4. pyahocorasick 

七、正则表达式 

​1. 正则表达式语法

八、基于规则的信息抽取

​九、NER研究进展


任务简介:

了解信息抽取的基础知识。

详细说明:

本节引入知识图谱的概念,介绍信息抽取进行知识图谱的基础知识。通过一个具体的比赛数据,介绍知识图谱构建与信息抽取问题的定义。本节介绍知识图谱的概念,通过具体的案例理解知识图谱的应用。

一、知识图谱的概念

知识图谱是谷歌提出的,分别在谷歌和Bing中搜索迪丽热巴的身高。谷歌直接将迪丽热巴的身高输出,从语义上更好地理解查询的内容;Bing基于关键字匹配的搜索,将搜索的词与文本内容进行匹配再展示出来。

二、信息抽取

1. 信息抽取案例

2. 信息抽取概念

三、自然语言理解的本质

四、信息抽取的主要任务

 

任务简介:

了解信息抽取的基础知识

详细说明:

本节引入知识图谱的概念,介绍信息抽取进行知识图谱的基础知识。通过一个具体的比赛数据,介绍知识图谱构建与信息抽取问题的定义。本节介绍信息抽取问题的定义,通过工业界的一个实际的案例,如何通过信息抽取的方式构造知识图谱。

五、知识图谱的构建 

构建糖尿病知识图谱

1. 实体体系 

2. 关系体系 

3. 标注工具:brat 

文件标注工作基于brat软件,http://brat.nlplab.org/。其中.txt文件为原始文档,.ann文件为标注信息,标注实体以T开头,后接实体序号,实体类别,起始位置和实体对应的文档中的词。如果需要在brat软件中查看标注结果,需要添加.conf文件。 

4. 实体分布分析 

5. 实体内容探索

实体之间有重叠:
每日2次和2次/d其实是一样的。
低血糖既可以出现在症状,又可以出现在疾病名称中。 

思考:如何通过已标注的结果的规律,进行实体抽取? 

 

任务简介:

如何通过规则进行信息抽取

详细说明:

本节将介绍规则系统中常用的正则表达式与AC自动机,首先对其算法的原理与应用场景进行详细讲解,然后结合正则表达式与AC自动机开发一个信息抽取系统。

六、AC自动机 

用到了两个东西,一个是KMP的思想(注意是思想不是算法),一个是Trie树
Trie树在这里是用来放字典中的单词的,这样可以使得我们一次匹配多个单词,然后用KMP的算法来使得匹配失败后不进行根结点的回溯。

1. KMP算法

2. Trie树 

3. AC自动机原理

4. pyahocorasick 

调用开源的pyahocorasick进行匹配

测试代码:

import ahocorasick as ah
A = ah.Automaton()
words = ['口服','注射','皮下注射','腹腔注射','静脉','静脉注射','静滴','CSII']
for idx , key in enumerate(words):
    A.add_word(key,(idx,key))
A.make_automaton()
haystack = '胰岛素强化治疗方案包括基础-餐食胰岛素治疗方案[多次皮下注射胰岛素或持续皮下胰岛素输注(CSII)]或预混胰岛素每天注射'
for end_index ,(insert_order,original_value) in A.iter(haystack):
    start_index = end_index - len(original_value)+1
    print(start_index,end_index+1,original_value)
    assert haystack[start_index:start_index+len(original_value)] == original_value
 

七、正则表达式 

1. 正则表达式语法

这个在JS中进行网页信息校验的时候用的比较多,例如:注册邮箱是否填写规范、身份证是否合法。
具体教程:点这里 

八、基于规则的信息抽取

九、NER研究进展

 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐