目录
任务简介:
了解信息抽取的基础知识。
详细说明:
本节引入知识图谱的概念,介绍信息抽取进行知识图谱的基础知识。通过一个具体的比赛数据,介绍知识图谱构建与信息抽取问题的定义。本节介绍知识图谱的概念,通过具体的案例理解知识图谱的应用。
一、知识图谱的概念
知识图谱是谷歌提出的,分别在谷歌和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研究进展