**一、架构设计**
![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3464\wps1.jpg)
**二、环境搭建**
1、Windows操作系统
2、安装JDK
3、Mysql——关系型数据库管理系统
4、Python
5、PyCharm
6、Scrary爬取网站数据的应用框架
7、Deepdive Deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统。它通过弱监督学习,从非结构化的文本中抽取结构化的关系数据 。
8、D2RQ 将Mysql数据库数据转化成RDF三元组数据
9、安装Neo4j Neo4j是一个高效能图数据库,用于网络上储存结构化数据,搭建数据库中的实体关系,构建图谱。
**三、数据采集**
1、Mysql建库
库内包含:演员、电影、电影类型、演员与电影、电影与类型五张表:
(1)演员表格中应该爬取内容为:演员ID, 简介,中文名,外文名,国籍,星座,出生地,出生日期,代表作品,主要成就,经纪公司;
(2)电影表中应该爬取的内容为:电影ID,简介,中文名,外文名,出品时间,出品公司,导演,编剧,类型,主演,片长,上映时间,对白语言,主要成就;
(3)电影类型表应该爬取的内容为:爱情,喜剧,动作,剧情,科幻,恐怖,动画,惊悚,犯罪,冒险,其他;
(4)演员与电影表中应该爬取的内容为:演员ID,电影ID;
(5)电影与类型表中应该爬取的内容为:电影ID,类型ID。
2、基于scrapy构建爬虫
本项目基于scrapy构建了百度百科爬虫和互动百科爬虫,通过对目录下的item.py进行修改,添加要爬取的内容;通过修改pipelines.py ,将爬取的数据存放到MySQL库中;通过settings.py 文件设置item数据存储的pipeline;通过编写 baidu_baike.py,完善爬虫程序,爬取电影类数据,包含电影35000多部,演员20000多人,演员电影间联系3000左右,电影与类别间联系38000多个,其中类别为‘其他’的电影有10个。
3、纯文本数据
针对非结构化数据,我们通过deepdive进行数据知识的抽取,首先从已经获得的结构化数据抽取一部分作为先验数据,通过简单处理,将其导入到数据库之中再进行处理,而后通过命令行编译及生成数据表。编译完成后,执行deepdive do db命令,将输入的文本数据导入到postgresql数据库之中。然后通过上述爬虫,进行非结构化数据的爬取工作,通过 爬取数据、数据的转换、定义数据表、编译生成数据表将爬取的数据导入到postgresql数据库中。
**四、数据处理**
电影知识图谱的数据来源,一般可分为三种类型:结构化数据、半结构化数据、纯文本数据。
针对非结构化数据(纯文本数据),通过构建deepdive环境,使用deepdive中的stanford_nlp 对纯文本数据进行处理,通过函数的定义、构造、调用,分析文本之中的句子结果,将结果存于数据表中。再通过定义数据库并调用函数,生成候选实体对,而后通过deepdive进行特征抽取、数据处理、预标记、变量表定义,构建因子图,将最终的数据储储存到数据库中。
我们所使用的电影数据一般均为结构化数据,因此,我们针对所爬取到的数据需要经过一定的处理,将其储存到Mysql数据库,使其成为结构化数据。再通过手段,将关系数据转化成RDF三元组,将其导入到NEO4j数据库之中。
本项目使用d2rq工具把我们Mysql中的数据转为RDF,通过Mysql数据库自动生成了mapping文件,通过对文件的修改,将数据映射到本体来。
运行d2rq工具,通过以下命令自动生成mapping文件:
![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3464\wps4.jpg)
根据定义修改mapping文件;
通过以下命令,将数据转化成RDF三元组:
![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3464\wps5.jpg)
**五、算法开发**
由于自然语言存在复杂性、模糊性等特性,因此,如果想大面积使用知识图谱,还需要进行知识实体的链接与消歧,即将文本中所得到的实体与数据库中的实体进行链接,消除实体歧义的过程。
基于知识库算法:
![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3464\wps6.jpg)
流程图如上图所示:首先在一个知识库里,将所得到的RDF三元组数据转化成实体向量,进而计算各个实体向量之间的相似度,根据所得到的相似度构建实体关联图,基于图动态PageRank算法不断更新实体关联图。
基于实体向量相似度进行关联图的构建:
![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3464\wps7.jpg)
上图给出了RDF三元组数据如何转化成实体向量和向量相似度的计算,相似度的度量公式为:
![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3464\wps8.jpg)
候选实体之间的转换概率为:
![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3464\wps9.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
知识图谱是一种结构化的知识表达形式,它以图形的方式组织和存储了大量实体(如人、地点、事件等)及其相互关系。在知识图谱中,实体作为节点,实体之间的各种语义关联则通过边进行连接,形成了一个庞大的数据网络。 知识图谱的核心价值在于其能够精确、直观地表示复杂世界中的知识,并支持高效的知识查询与推理。例如,在搜索引擎中,知识图谱可以提升搜索结果的相关性和准确性,为用户提供直接的答案而非仅仅是网页链接。同时,知识图谱还能支撑高级的人工智能应用,比如问答系统、推荐系统、决策支持等领域。 构建知识图谱的过程通常包括数据抽取、知识融合、实体识别、关系抽取等多个步骤,涉及到自然语言处理、机器学习、数据库技术等多种技术手段。知识图谱的不断完善有助于实现从海量信息中挖掘深层次、有价值的知识,从而推动人工智能向着更加理解人类世界的智慧方向发展。 总之,知识图谱是一个大规模、多领域、多源异构知识集成的载体,是实现智能化信息系统的基础工具和关键基础设施,对于提升信息检索质量、推动智能应用研发具有重要作用。
资源推荐
资源详情
资源评论
收起资源包目录
构建电影知识图谱.zip (133个子文件)
__init__ 0B
get_ttl.bat 1KB
scrapy.cfg 273B
scrapy.cfg 270B
scrapy.cfg 267B
scrapy.cfg 266B
scrapy.cfg 265B
scrapy.cfg 265B
scrapy.cfg 265B
deepdive.conf 128B
app.ddlog 5KB
.gitignore 390B
silk.iml 467B
README.md 5KB
creat_mysql.md 599B
creat_mysql.md 598B
readme.md 72B
kg_movie_tultle.owl 5KB
views.py 15KB
gen_re_from_baidu.py 14KB
batch_link.py 9KB
craw.py 9KB
hudong_baike.py 8KB
hudong_baike.py 8KB
weixin_spiders.py 8KB
baidu_baike.py 6KB
pipelines.py 5KB
baidu_baike.py 5KB
pipelines.py 5KB
baidu_baike-10.py 5KB
baidu_baike-2.py 5KB
baidu_baike-9.py 5KB
baidu_baike-7.py 5KB
baidu_baike-6.py 5KB
baidu_baike-8.py 5KB
baidu_baike-4.py 5KB
baidu_baike-3.py 5KB
baidu_baike-5.py 5KB
middlewares.py 5KB
middlewares.py 5KB
middlewares.py 5KB
middlewares.py 5KB
middlewares.py 5KB
middlewares.py 5KB
run.py 4KB
settings.py 4KB
settings.py 4KB
settings.py 4KB
rules.py 4KB
settings.py 4KB
complete_mysql.py 3KB
settings.py 3KB
settings.py 3KB
get_json.py 3KB
settings.py 3KB
pipelines.py 3KB
pipelines.py 3KB
gen_disambi_infobox.py 3KB
get_total_val.py 3KB
cleanFile.py 3KB
basic_info.py 2KB
baidu_baike.py 2KB
clean_mysql.py 2KB
clean_actor.py 2KB
clean.py 2KB
get_actor_movie.py 2KB
pipelines.py 2KB
clean.py 2KB
middlewares.py 2KB
build_dict.py 2KB
supervise_play.py 2KB
huxiu_spider.py 2KB
map_actor_mention.py 2KB
map_movie_mention.py 2KB
crawlall.py 2KB
crawlall.py 2KB
extract_play_features.py 2KB
word2vec.py 1KB
get_subject.py 1KB
items.py 1KB
items.py 1KB
query.py 1KB
word_tagging.py 1017B
insert.py 1015B
pipelines.py 896B
pipelines.py 763B
remove_disambi.py 689B
items.py 672B
items.py 669B
map_play_candidate.py 616B
get_ac_attr.py 589B
items.py 531B
items.py 492B
trans.py 448B
query.py 367B
items.py 343B
setup.py 222B
setup.py 218B
__init__.py 161B
__init__.py 161B
共 133 条
- 1
- 2
资源评论
JJJ69
- 粉丝: 6222
- 资源: 5780
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功