1、關係抽取
1.1 專家系統
key_words = ["收購","競拍","轉讓","擴張","併購","注資","整合","併入","競購","競買","支付","收購價","收購價格","承購","購得","購進",
"購入","買進","買入","贖買","購銷","議購","函購","函售","拋售","售賣","銷售","轉售"]
1.2 句法依存
if 'SBV' in child_dict and 'VOB' in child_dict:
r = words[index]
e1 = complete_e(words, postags, child_dict_list, child_dict['SBV'][0])
e2 = complete_e(words, postags, child_dict_list, child_dict['VOB'][0])
svos.append([e1, r, e2])
1.3 遠程監督
2、知識圖譜的常見表示(Neo4j)
2.1 數據
字段 |
描述 |
Person_a |
實體a(人名,如:賈寶玉) |
Person_b |
實體b(人名,如:薛寶釵) |
Relation |
實體間關係(丈夫) |
Family_a |
實體a的家族(賈家榮國府) |
Family_b |
實體b的家族(薛家) |
2.2 導入
with open("./raw_data/relation.txt") as f:
for line in f.readlines():
rela_array=line.strip("\n").split(",")
print(rela_array)
graph.run("MERGE(p: Person{cate:'%s',Name: '%s'})"%(rela_array[3],rela_array[0]))
graph.run("MERGE(p: Person{cate:'%s',Name: '%s'})" % (rela_array[4], rela_array[1]))
graph.run(
"MATCH(e: Person), (cc: Person) \
WHERE e.Name='%s' AND cc.Name='%s'\
CREATE(e)-[r:%s{relation: '%s'}]->(cc)\
RETURN r" % (rela_array[0], rela_array[1], rela_array[2], rela_array[2])
)
2.3 查詢
match(p )-[r]->(n:Person{Name:'%s'}) return p.Name,r.relation,n.Name,p.cate,n.cate Union all match(p:Person {Name:'%s'}) -[r]->(n) return p.Name, r.relation, n.Name, p.cate, n.cate
2.4 效果
- 賈寶玉 的關係圖譜
- 李紈 的關係圖譜
- 林黛玉 的關係圖譜