Github 项目推荐 | 农业知识图谱(KG):农业领域的信息检索,命名实体识别

2018 年 4 月 9 日 AI研习社 孔令双

Github 链接:

https://github.com/qq547276542/Agriculture_KnowledgeGraph

Demo:

http://p2052x6533.iok.la:44910/

  目录结构:

.
├── MyCrawler      // scrapy爬虫项目路径(已爬好)
│   └── MyCrawler
│       ├── data
│       └── spiders
├── data\ processing    // 数据清洗(已无用)
│   └── data
├── demo     // django项目路径
│   ├── Model  // 模型层,用于封装Item类,以及neo4j和csv的读取
│   ├── demo   // 用于写页面的逻辑(View)
│   ├── label_data    // 标注训练集页面的保存路径
│   │   └── handwork
│   ├── static    // 静态资源
│   │   ├── css
│   │   ├── js
│   │   └── open-iconic
│   ├── templates   // html页面
│   └── toolkit   // 工具库,包括预加载,命名实体识别
│   └── KNN_predict  
├── KNN_predict    // KNN算法预测标签
├── dfs_tree_crawler     // 爬取互动百科农业实体树形结构的爬虫
└── wikidataSpider    //  爬取wiki中的关系

  可复用资源

  • hudong_pedia.csv : 已经爬好的农业实体的百科页面的结构化csv文件

  • labels.txt: 5000多个手工标注的实体类别

  • predict_labels.txt: KNN算法预测的13W多个实体的类别

  项目配置

系统需要安装:

  • scrapy ---爬虫框架

  • django ---web框架

  • neo4j ---图数据库

  • thulac ---分词、词性标注

  • py2neo ---python连接neo4j的工具

  • pyfasttext ---facebook开源的词向量计算框架

  • pinyin ---获取中文首字母小工具

  • 预训练好的词向量模型wiki.zh.bin(仅部署网站的话不需要下载) ---下载链接:http://s3-us-west-1.amazonaws.com/fasttext-vectors/wiki.zh.zip

(以上部分除了neo4j在官网下,wiki.zh.bin在亚马逊s3下载,其它均可直接用pip3 install 安装)

项目部署:

1、将hudong_pedia.csv导入neo4j:开启neo4j,进入neo4j控制台。将hudong_pedia.csv放入neo4j安装目录下的/import目录。在控制台依次输入:

// 将hudong_pedia.csv 导入
LOAD CSV WITH HEADERS  FROM "file:///hudong_pedia.csv" AS line  
CREATE (p:HudongItem{title:line.title,image:line.image,detail:line.detail,url:line.url,openTypeList:line.openTypeList,baseInfoKeyList:line.baseInfoKeyList,baseInfoValueList:line.baseInfoValueList})  

// 新增了hudong_pedia2.csv
LOAD CSV WITH HEADERS  FROM "file:///hudong_pedia2.csv" AS line  
CREATE (p:HudongItem{title:line.title,image:line.image,detail:line.detail,url:line.url,openTypeList:line.openTypeList,baseInfoKeyList:line.baseInfoKeyList,baseInfoValueList:line.baseInfoValueList})

// 创建索引
CREATE CONSTRAINT ON (c:HudongItem)
ASSERT c.title IS UNIQUE

以上两步的意思是,将hudong_pedia.csv导入neo4j作为结点,然后对titile属性添加UNIQUE(唯一约束/索引)

(如果导入的时候出现neo4j jvm内存溢出,可以在导入前,先把neo4j下的conf/neo4j.conf中的dbms.memory.heap.initial_size 和dbms.memory.heap.max_size调大点。导入完成后再把值改回去)

进入/wikidataSpider/wikidataProcessing中,将new_node.csv,wikidata_relation.csv,wikidata_relation2.csv三个文件放入neo4j的import文件夹中(运行relationDataProcessing.py可以得到这3个文件),然后分别运行

// 导入新的节点
LOAD CSV WITH HEADERS FROM "file:///new_node.csv" AS line
CREATE (:NewNode { title: line.title })

//添加索引
CREATE CONSTRAINT ON (c:NewNode)
ASSERT c.title IS UNIQUE

//导入hudongItem和新加入节点之间的关系
LOAD CSV  WITH HEADERS FROM "file:///wikidata_relation2.csv" AS line
MATCH (entity1:HudongItem{title:line.HudongItem}) , (entity2:NewNode{title:line.NewNode})
CREATE (entity1)-[:RELATION { type: line.relation }]->(entity2)

LOAD CSV  WITH HEADERS FROM "file:///wikidata_relation.csv" AS line
MATCH (entity1:HudongItem{title:line.HudongItem1}) , (entity2:HudongItem{title:line.HudongItem2})
CREATE (entity1)-[:RELATION { type: line.relation }]->(entity2)

以上步骤是导入爬取到的关系

2、下载词向量模型:http://s3-us-west-1.amazonaws.com/fasttext-vectors/wiki.zh.zip将wiki.zh.bin放入 KNN_predict 目录 。 (如果只是为了运行项目,步骤2可以不做,预测结果已经离线处理好了)

3、进入demo/Model/neo_models.py,修改第9行的neo4j账号密码,改成你自己的

4、进入demo目录,然后运行脚本:

sudo sh django_server_start.sh

这样就成功的启动了django。我们进入8000端口主页面,输入文本,即可看到以下命名实体和分词的结果(确保django和neo4j都处于开启状态)。

4 月 AI 求职季

8 大明星企业

10 场分享盛宴

20 小时独门秘籍

4.10-4.19,我们准时相约!



新人福利



关注 AI 研习社(okweiwu),回复  1  领取

【超过 1000G 神经网络 / AI / 大数据资料】



上交大 Acemap 团队发布学术知识图谱 AceKG,涵盖 1 亿多个学术实体

登录查看更多
55

相关内容

“知识神经元网络”KNN(Knowledge neural network)是一种以“神经元网络”模型 为基础的知识组织方法。 在“知识神经元网络”KNN 中,所谓的“知识”,是描述一个“知识”的文本,如一个网页、Word、PDF 文档等。
斯坦福2020硬课《分布式算法与优化》
专知会员服务
118+阅读 · 2020年5月6日
2020年中国《知识图谱》行业研究报告,45页ppt
专知会员服务
239+阅读 · 2020年4月18日
【论文推荐】文本分析应用的NLP特征推荐
专知会员服务
33+阅读 · 2019年12月8日
史上最大规模:这有一份1.4亿的中文开源知识图谱
机器之心
25+阅读 · 2019年10月17日
史上最大规模1.4亿中文知识图谱开源下载
专知
39+阅读 · 2019年10月14日
Github六个知识图谱实战项目推荐
专知
382+阅读 · 2019年6月2日
Github项目推荐 | 知识图谱文献集合
AI研习社
26+阅读 · 2019年4月12日
论文浅尝 | 知识图谱相关实体搜索
开放知识图谱
14+阅读 · 2018年12月18日
领域应用 | 知识图谱的技术与应用
开放知识图谱
17+阅读 · 2018年6月14日
GitHub上12月份最热门开源项目
程序猿
4+阅读 · 2018年1月9日
项目实战:如何构建知识图谱
PaperWeekly
30+阅读 · 2017年9月14日
Arxiv
29+阅读 · 2020年3月16日
Arxiv
102+阅读 · 2020年3月4日
Arxiv
6+阅读 · 2019年9月4日
Arxiv
12+阅读 · 2019年2月26日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Adversarial Reprogramming of Neural Networks
Arxiv
3+阅读 · 2018年6月28日
Arxiv
4+阅读 · 2017年10月30日
VIP会员
相关资讯
史上最大规模:这有一份1.4亿的中文开源知识图谱
机器之心
25+阅读 · 2019年10月17日
史上最大规模1.4亿中文知识图谱开源下载
专知
39+阅读 · 2019年10月14日
Github六个知识图谱实战项目推荐
专知
382+阅读 · 2019年6月2日
Github项目推荐 | 知识图谱文献集合
AI研习社
26+阅读 · 2019年4月12日
论文浅尝 | 知识图谱相关实体搜索
开放知识图谱
14+阅读 · 2018年12月18日
领域应用 | 知识图谱的技术与应用
开放知识图谱
17+阅读 · 2018年6月14日
GitHub上12月份最热门开源项目
程序猿
4+阅读 · 2018年1月9日
项目实战:如何构建知识图谱
PaperWeekly
30+阅读 · 2017年9月14日
相关论文
Arxiv
29+阅读 · 2020年3月16日
Arxiv
102+阅读 · 2020年3月4日
Arxiv
6+阅读 · 2019年9月4日
Arxiv
12+阅读 · 2019年2月26日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Adversarial Reprogramming of Neural Networks
Arxiv
3+阅读 · 2018年6月28日
Arxiv
4+阅读 · 2017年10月30日
Top
微信扫码咨询专知VIP会员