主体类 MedicalGraph 介绍
class MedicalGraph:
def __init__(self):
pass
def read_file(self):
psss
def create_node(self, label, nodes):
pass
def create_diseases_nodes(self, disease_info):
pass
def create_graphNodes(self):
pass
def create_graphRels(self):
pass
def create_relationship(self, start_node, end_node, edges, rel_type, rel_name):
pass在这里插入代码片
主体类 MedicalGraph 中关键代码讲解
def read_file(self):
"""
读取文件,获得实体,实体关系
:return:
"""
diseases = []
aliases = []
symptoms = []
parts = []
departments = []
complications = []
drugs = []
diseases_infos = []
disease_to_symptom = []
disease_to_alias = []
diseases_to_part = []
disease_to_department = []
disease_to_complication = []
disease_to_drug = []
all_data = pd.read_csv(self.data_path, encoding='gb18030').loc[:, :].values
for data in all_data:
disease_dict = {}
disease = str(data[0]).replace("...", " ").strip()
disease_dict["name"] = disease
line = re.sub("[,、;,.;]", " ", str(data[1])) if str(data[1]) else "未知"
for alias in line.strip().split():
aliases.append(alias)
disease_to_alias.append([disease, alias])
part_list = str(data[2]).strip().split() if str(data[2]) else "未知"
for part in part_list:
parts.append(part)
diseases_to_part.append([disease, part])
age = str(data[3]).strip()
disease_dict["age"] = age
infect = str(data[4]).strip()
disease_dict["infection"] = infect
insurance = str(data[5]).strip()
disease_dict["insurance"] = insurance
department_list = str(data[6]).strip().split()
for department in department_list:
departments.append(department)
disease_to_department.append([disease, department])
check = str(data[7]).strip()
disease_dict["checklist"] = check
symptom_list = str(data[8]).replace("...", " ").strip().split()[:-1]
for symptom in symptom_list:
symptoms.append(symptom)
disease_to_symptom.append([disease, symptom])
complication_list = str(data[9]).strip().split()[:-1] if str(data[9]) else "未知"
for complication in complication_list:
complications.append(complication)
disease_to_complication.append([disease, complication])
treat = str(data[10]).strip()[:-4]
disease_dict["treatment"] = treat
drug_string = str(data[11]).replace("...", " ").strip()
for drug in drug_string.split()[:-1]:
drugs.append(drug)
disease_to_drug.append([disease, drug])
period = str(data[12]).strip()
disease_dict["period"] = period
rate = str(data[13]).strip()
disease_dict["rate"] = rate
money = str(data[14]).strip() if str(data[14]) else "未知"
disease_dict["money"] = money
diseases_infos.append(disease_dict)
return set(diseases), set(symptoms), set(aliases), set(parts), set(departments), set(complications), \
set(drugs), disease_to_alias, disease_to_symptom, diseases_to_part, disease_to_department, \
disease_to_complication, disease_to_drug, diseases_infos