| import pandas as pd |
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| def merge_data(data): |
| name_list = [] |
| data_list = [] |
|
|
| for each in data: |
| if each["text"] not in name_list: |
| name_list.append(each["text"]) |
| data_list.append(each) |
| else: |
| index = name_list.index(each["text"]) |
| data_list[index]["spo_list"].append(each["spo_list"][0]) |
|
|
| return data_list |
|
|
|
|
| def process_data(file_path): |
| data = pd.read_csv(file_path) |
| |
| processed_data = [] |
|
|
| for index, line in data.iterrows(): |
| dct = { |
| "text": [], |
| "spo_list": [], |
| } |
| spo = { |
| "subject": "", |
| "object": "", |
| "predicate": "" |
| } |
| dct["text"] = line["text"] |
|
|
| spo["object"] = line["effect"] |
| spo["subject"] = line["drug"] |
| spo["predicate"] = "causes" |
|
|
| dct["spo_list"].append(spo) |
| processed_data.append(dct) |
|
|
| return merge_data(processed_data) |
|
|
|
|
|
|
|
|
|
|