《知识图谱》实验报告
目录
《知识图谱》实验报告
一、 实验内容
二、 实现方法
1、命名实体识别
2、词性标注
3、中文分词
三、 结果分析
1、命名实体识别
2、词性标注
3、中文分词
四、 结论与展望
一、 实验内容
² 命名实体识别
² 词性标注
² 中文分词
二、 实现方法
1、命名实体识别
基础概念:
命名实体识别是指从非结构化的文本中抽取出已命名的实体,包括数量、时间等简单实体和人名、地名、机构名等相对困难的实体。其被广泛应用在知识图谱、机器翻译等领域。
实现的方法主要有四个:
² 基于规则和词典的方法
² 基于统计的方法
² 混合方法
² 基于神经网络的方法
代码实现:
在代码的实现上,我们引用jieba库,在这个库的基础上实现全模式、精确模式、搜索引擎模式和关键词提取,这里主要用到的是jieba中的cut函数。
同时,也可以自己加入一些新词,采用jieba中的add_word函数即可实现该功能。jieba库中具体的实现代码在这里就不再展示了。
1. jieba.add_word('石墨烯')
2. terms = jieba.cut('python 的正则表达式是好用的')
2、词性标注
基础概念:
词性标注是为词串中的词赋予词性标记。其难点主要有兼类现象和两类约束(局部约束、上下文约束)。
上课时介绍的方法有三个:
² 基于HMM的词性标注
² 基于转换的词性标注
² 基于分类思想的词性标注
代码实现:
这里的实现方式还是采用jieba,先用cut函数进行实体识别操作,然后对识别出来的每一个单词进行词性的输出。和上面一样,jieba库中的代码就不再展示了。
1. text = "去北京大学玩"
2. seg = psg.cut(text)
3. for ele in seg: # 将词性标注结果打印出来
4. print(ele)
3、中文分词
基础概念:
分词就是将一句话切成一个个单词的过程,其目的是更加有效、准确的关键词索引。其应用领域非常广泛,如汉字处理、信息检索等。中文的词性标注相比印欧语缺少词形态变化,很难从词的形态变化上来判别。
中文分词的常用方法有:
² 基于词典的分词法:最大匹配法、最少分词法(最短路径法)
² 基于统计的分词法:生成式统计分词、判别式统计分词
² 基于理解的分词法
代码实现:
实现的方法还是利用jieba库,用cut函数来进行分词,对于特殊的词汇,调用add_word来添加自定义词典或者调整词典,用analyse中的方法来进行关键字提取,用tokenize来返回词语在原文的起止位置等等。限于篇幅,jieba库中的具体实现方法同上不展示了。
三、 结果分析
1、命名实体识别
实验结果:
结果说明:
这是全模式、精确模式、搜索引擎模式和关键词提取的结果,可以看到识别的准确率还是相当好的。
2、词性标注
实验结果:
结果说明:
其中,v代表动词,nt代表机构团体,可以看到结果是正确无误的。
3、中文分词
实验结果:
结果说明:
可以看到,各个功能的结果正确。在加入了自定义词典后,对中文的识别非常准确。
四、 结论与展望
本次实验让我受益匪浅,学习到了很多关于知识图谱的知识,包括实体识别、词性标注和中文分词等等。学姐学长为我们讲述了这些功能的概念、原理和实现方法,有一点类似之前学习的编译原理这门课,所以理解起来也相对容易。
当然,由于这里的语言是python,所以我也更加理解了python的一些知识。包括如何去运用jieba库。实际上在寒假参加数学建模美赛的时候我已经很浅地接触到了jieba这个组件,非常幸运能够在这几天去学习关于这个组件的一些原理相关的知识。
在这些知识之外我们还听了周成虎院士的讲话,其关于gis的发展等的叙述也让我印象深刻,能够听到这样的一场讲座是我的荣幸,非常感谢学校提供给我们这样的机会。