本项目是利用深度学习技术来构建知识图谱方向上的一次尝试,作为开放领域的关系抽取,算是笔者的一次创新,目前在这方面的文章和项目都很少。
No Data
spo_tagging_platform;
sequence_labeling,在测试集上的F1大约为81%;
text_classification,在测试集上的准确率大约为96%。
标注语料来源于新闻内容和小说内容。
extract_example。
现阶段的序列标注算法的样本为3211个,关系抽取的标注数据为9279,共有关系1365个,数量最多的前20个关系如下图:
序列标注算法和
文本二分类已经训练好,可以直接clone下来使用。
运行
sequence_labeling/run.py,该HTTP服务运行端口为12306;
运行
text_classification/extract_server.py,该HTTP服务运行端口为12308;
在Postman中输入如下(输入为一个句子,句子不宜过长,建议句子长度不超过128个字):
该平台标注的时候,标注内容大部分为人物头衔,人物关系,公司与人的关系,影视剧主演、导演信息等。
当句子有只有一对三元组的时候,效果相对较好。
extract_example目录中为抽取的效果,包括几本小说和一些新闻上的效果,关于这方面的演示,可以参考另一个项目:https://github.com/percent4/knowledgegraphdemo 。
一些句子也存在抽取出无用的三元组的情况,导致召回率偏高,这是因为本项目针对的是开放领域的三元组抽取,因此效果比不会有想象中的那么好,提升抽取效果的办法如下:
本项目作为笔者在开放领域的三元组抽取的一次尝试,在此之前关于这方面的文章或者项目还很少,因此可以说是探索阶段。
源码和数据已经在项目中给出。
如需要更深一步的交流,请发送消息至邮箱
[email protected],或者在Github上直接留言。
本人的微信公众号为
Python爬虫与算法,欢迎关注~