知识图谱搭建 学习笔记(四):数据获取

优采云 发布时间: 2022-05-27 18:33

  知识图谱搭建 学习笔记(四):数据获取

  前面我们学了neo4j 数据库的基础操作语言,以及Python 链接 neo4j!这表示Python后端从neo4j 数据库提数这条通道已经打通。接下来我们真正的可以开始搭建知识图谱了!

  

  一般来说搭建知识图谱有两种方式,一种是自顶而下,另一种是自底向上。

  类似于金字塔结构!大部分知识图谱的构建都是自底向上进行搭建的。

  数据获取是建立知识图谱的第一步。目前,知识图谱数据源按来源渠道的不同可分为两种:一种是业务本身的数据,这部分数据通常包含在行业内部数据库表并以结构化的方式存储,是一种非公开或半公开的数据;另一种是网络上公开、抓取的数据,这些数据通常是以网页的形式存在,是非结构化的数据。

  按数据结构的不同,可分为三种:结构化数据、半结构化数据和非结构化数据,根据不同的数据类型,我们采用不同的方法进行处理。貌似说得有点复杂了,详细的也可以去百度搜索 看看吧!现在就开始正题吧!

  

  

  

  对于数据获取,自然是要用到爬虫了,咱们就可以在一些开源的知识信息上获取到数据!简单地说下爬虫怎么获取数据!

  以Python语言为列,爬虫的两个灵魂:

  一个是xpath规则、css选择器;另一个是网页解析库,一般就是bs(BeautifulSoup)、lxml。

  eg:

  以百度搜索结果为例子:

  粮食

  搜索结果如下:

  

  然后对结果进行提取,打开f12,使用xpath定位导数据,用lxml中的etree进行解析

   r = response.text html = etree.HTML(r, etree.HTMLParser())   r1 = html.xpath('//h3') r2 = html.xpath('//*[@class="c-abstract"]') r3 = html.xpath('//*[@class="t"]/a/@href')

  紧接着利用循环保存数据

  for i in range(10): r11 = r1[i].xpath('string(.)') r22 = r2[i].xpath('string(.)') r33 = r3[i] with open('ok.txt', 'a', encoding='utf-8') as c: c.write(json.dumps(r11,ensure_ascii=False) + '\n') c.write(json.dumps(r22, ensure_ascii=False) + '\n') c.write(json.dumps(r33, ensure_ascii=False) + '\n') print(r11, end='\n') print('------------------------') print(r22, end='\n') print(r33)

  最后运行,看运行结果:

  

  保存的文件内容如下:

  

  这样的话现在咱们数据也获取到了,处理完之后,就可以进行下一步知识图谱的搭建了!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线