事件知识图谱项目整理

一、PyCharm连接MongoDB

(一)MongoDB

1、启动MongoDB

  • win+R cmd
  • 首先使用 mongod --dbpath E:\MongoDB\bin
    (mongod.exe的存放路径)启动
  • win+R cmd(再开一个)
  • mongo

2、向 MongoDB Compass 导入json文件

  • 注意导入文件时务必注意空值问题(不要选择 ignore 选项)

(二)PyCharm连接MongoDB

'''基于给定语料与模板的事件抽取,假定你选择的是Mongodb数据库'''
class TextMining:
    def __init__(self):
        mongo_host = 'localhost'  # '127.0.0.1' 你数据库的ip
        mongo_port = 27017  # 你数据库端口  原来是28017
        mongo_db = 'news'  # 数据库名称
        mongo_col = 'news'  # 数据表名称
        username = urllib.parse.quote_plus("root")  # 用户名
        password = urllib.parse.quote_plus("12345678")  # 密码
        client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(username, password, mongo_host, mongo_port))

        self.db = client[mongo_db]
        self.col = self.db[mongo_col]
        self.extractor = EventsExtraction()
``

在这里插入图片描述导出的文件在event_extract中

二、Pycharm 连接 Neo4j(Community)

(一)Neo4j Desktop

1、csv文件导入

  • 将event_extract中导出的文件改成 csv 格式
    注意:CSV 格式文件必须利用记事本转换为 UTF-8 的编码格式再导入Neo4j中,否则会出现中文乱码现象
    注意:若第一次导入出现乱码,第二次导入可以改换结点的命名,否则会多次重复导入,即多次结果存在在一张图中
  • 语句:LOAD CSV WITH HEADERS FROM “file:///event_extract.csv” AS line
    CREATE (:Event_extract {_id:line._id,sent:line.sent, post_part:line.post_part,post_wd:line.post_wd,pre_part:line.pre_part,pre_wd:line.pre_wd,type:line.type})
    注意:对文件格式进行修改,避免出现过多后缀 .XX.XX
    注意:文件导入的位置,根据提示将.csv文件导入对应的 import 文件夹下
    在这里插入图片描述导入成功后可以看到有一些结点啦

2、 Neo4j的语法及相应操作

https://www.w3cschool.cn/neo4j/neo4j_need_for_graph_databses.html

(二)Neo4j Community

1、启动Neo4j Community

  • win+R cmd
  • 首先cd E:\neo4j-community-5.3.0\bin
  • 键入neo4j console在这里插入图片描述出现图片所示的提示即为成功
    注意:
  • Neo4j 的用户名一般不允许修改,都为 neo4j ,但密码必须牢记,否则在连接时很容易出问题。密码修改参考文章 https://blog.csdn.net/weixin_42560812
  • Neo4j 与 Pycharm 的连接中 jdk 的版本对应是非常重要的,否则在运行时会报错,出现提示,只要去安装对应的版本 jdk 版本并配置环境变量即可(我的是 jdk 17)且安装完需要重启

2、登录网页端

http://localhost:7474/browser/

(三)Pycharm 连接 Neo4j(Community)

1、配置 Pycharm 环境

在 Pycharm 中导入 py2neo 的安装包,版本选最新版即可。

2、进行连接尝试

参考项目:https://blog.csdn.net/RHJlife/article/details/108586578?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167425999916800213051757%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=167425999916800213051757&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-108586578-null-null.142v71one_line,201v4add_ask&utm_term=%E7%BA%A2%E6%A5%BC%E6%A2%A6%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1&spm=1018.2226.3001.4187

import csv
import py2neo
from py2neo import Graph,Node,Relationship,NodeMatcher
#账号密码改为自己的即可
g=Graph('http://localhost:7474',user='neo4j',password='这里写自己的密码',name='neo4j')
with open('C:/Users/dell/Desktop/data.csv','r',encoding='utf-8') as f:
    reader=csv.reader(f)
    for item in reader:
        if reader.line_num==1:
            continue
        print("当前行数:",reader.line_num,"当前内容:",item)
        start_node=Node("Person",name=item[4])
        end_node=Node("Person",name=item[2])
        relation=Relationship(start_node,item[5],end_node)
        g.merge(start_node,"Person","name")
        g.merge(end_node,"Person","name")
        g.merge(relation,"Person","name")
#以下为neo4j代码,如需代码运行,请放入g.run(...)内运行,将...替换为下列代码
# MATCH (p: Person {name:"贾宝玉"})-[k:丫鬟]-(r)
# return p,k,r
# MATCH (p1:Person {name:"贾宝玉"}),(p2:Person{name:"香菱"}),p=shortestpath((p1)-[*..10]-(p2))
# RETURN p

# 删除所有结点以及关系
# g.delete_all()

在这里插入图片描述这是目前得到的效果

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向大蒜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值