Skip to content

足球领域的时间知识图谱:包括了本体的构建,数据的爬取,数据的解析,rdf/xml格式的数据生成,jena-fuseki用于存储,基于语义解析的问答系统

Notifications You must be signed in to change notification settings

NewBerd/soccer-temporal-knowledge-graph

Repository files navigation

soccer-temporal-knowledge-graph

足球领域的时间知识图谱:包括了本体的构建,数据的爬取,数据的解析,推理,rdf/xml格式的数据生成,jena-fuseki用于存储,基于语义解析的问答系统

本体构建

使用工具protege构建一个足球时间知识图谱的本体。对于(内马尔,效力于,巴塞罗那,[2012,2017])这样一个时间三元组,如何使用rdf表示是一个令人头疼的问题,之前的知识图谱都将这类动态的时间知识默认为是静态知识,从而忽略了时间信息。如何给三元组添加时间信息是一个重要的问题,我的想法是,一个三元组由主体-关系-客体组成,时间添加在主体上显然不合适,例如对于上面提到的关于内马尔的三元组,2012-2017添加到内马尔身上显然是不合适的,因为这更像是在说内马尔的出生与死亡时间,同样地加在巴塞罗那身上也不合适。那么现在就只有两个做法,一个是加在效力于这个关系上,因为这个时间确实是这个效力于持续的时间;二是加在整个三元组上,这样时间就表示整个三元组的有效时间。我采取了第一种方式,将时间加在关系上。 为了将时间加在关系上,本体中的关系大多都被实体化了。

数据爬取

爬取的是懂球帝,但是懂球帝的url不是很好获取,因此用到了webdriver无头浏览器,采取了模拟点击的手段,但是这样的效率太低了,因此又使用了多进程爬取。

数据解析

使用的是bs4.将基本信息解析成三元组,将转会信息进行计算解析成时间三元组,同理还有伤病,荣誉信息

推理

推理用于挖掘出知识图谱中蕴藏的知识

rdf生成

使用的库是rdflib,生成xml格式

jena-fuseki存储

下载安装配置fuseki,然后将rdf文件上传

问答系统

问答系统分为实体与关键词识别,问题分类,查询图映射,答案搜索,答案返回。

  1. 实体识别 采用ac-tree,识别出问句中出现的实体以及其类别
  2. 问题分类 根据问句中实体的类别和关键词,确定问题的类别
  3. 查询图映射 对于每一类问题都有一个查询图与之对应
  4. 答案搜索 将查询图模板与识别出的实体结合,组成完整的查询语句,使用SPARQLWrapper库发送查询语句到fuseki服务器,执行查询
  5. 答案返回 将查询结果与回答模板结合,返回答案

About

足球领域的时间知识图谱:包括了本体的构建,数据的爬取,数据的解析,rdf/xml格式的数据生成,jena-fuseki用于存储,基于语义解析的问答系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published