neo 4 jエンティティ整列知識スペクトルエンティティ整列とエンティティ関係の属性補完
3234 ワード
pythonは、neo 4 jベースのNeo 4 j図データベースの知識スペクトルの関連付け(エンティティの位置合わせ)--前編のNeo 4 j図データベースの知識スペクトルの関連付け(エンティティの位置合わせ)--次編は、スペクトルを書き込む前に関連する標準ライブラリが必要です.そしてpythonの簡単な判断+cypher文の結合書き込みです.次の直接コード:def companys_relation():
if name == ‘main’: companys_relation()
# -> , 。
dat = session.run("MATCH (m:COMPANY)-[]->(n:PERSON) RETURN m.name as me, m.cid as cid, n.name as ne") # neo4j
for d in dat:
com = d[0]
cids = d[1]
nn = d[2]
for item in collect1.find({"cid": "%s" % (cids)}): # neo4j 。
if item:
org_name = item["org_name"]
highest_edu = item["highest_edu"]
birthday = item["birthday"]
# cids = item["cid"]
gender = item["gender"]
date = str(item["dimission_date"])
yy = date[:4]
mm = date[4:6]
dd = date[6:8]
ends = yy + "-" + mm + "-" + dd
end = str(ends).replace("None--", "-")
person_name = item["names"]
print("person_name: ", person_name)
pos_type = item['pos_type']
positions = item["position"]
position = str(positions).replace("(", "").replace(")", "")
# profess_title = item["profess_title"]
dat = str(item["start"])
ys = dat[:4]
ms = dat[4:6]
ds = dat[6:8]
starts = ys + "-" + ms + "-" + ds
start = str(starts).replace("None--", "-")
if nn == person_name: #
query = "merge(e{name: '%s'}) set e.company = '%s',e.relation = '%s',e.name = '%s',e.birthday = '%s',e.highest_edu = '%s',e.gender = '%s',e.pos_type = '%s',e.start = '%s',e.end = '%s' " % (
nn, org_name, position, nn, birthday, highest_edu, gender, pos_type, start, end)
session.run(query)
else: #
session.run("merge (a:PERSON {name:'%s'})" % (person_name))
query = "merge(e{name: '%s'}) set e.relation = '%s',e.name = '%s',e.birthday = '%s',e.highest_edu = '%s',e.gender = '%s',e.pos_type = '%s',e.start = '%s',e.end = '%s' " % (
person_name, position, person_name, birthday, highest_edu, gender, pos_type, start, end)
session.run(query)
query = "MATCH(p:COMPANY),(q:PERSON) where p.name='%s' and q.name='%s' create unique (p)-[:%s {relation:'%s',name:'%s',birthday:'%s',highest_edu:'%s',gender:'%s',pos_type:'%s',start:'%s',end:'%s' }]->(q)" % (
com, person_name, position, position, person_name, birthday,highest_edu, gender, pos_type, start, end)
session.run(query)
if name == ‘main’: companys_relation()