本篇内容:
- 实体抽取内容的初步数据处理
(之后会发关于导入neo4j数据库的相关内容)
初始数据:进行实体抽取之后的结果数据↓
(这里方便举例,只拿出了小部分数据。这里解释一下数据含义,最左边是每个旅游产品的ID,第二列表示的是旅游产品中包含的景点,第三列是途径城市,第四列是住宿地点。后边同理)
下面我们就正式开始!
1. 实体内容抽取
我们知道,图数据库的基本数据结构是“实体-关系-实体”。将这些原始数据构建成图网络,首先应该根据需要确定我们需要提取的实体和关系。
在这里,我们确定具体需求为:
- 每个产品作为一个实体;每一列中所有出现的景点、地点等名称都是实体
- 我们需要建立的关系是产品与Attraction、City…之间的关系,共六个。
(1)统计每个分类下总共出现的实体个数:
由于后边需要建立实体间的关系,我们在这里为每个实体都加入了编号。我们在这里借助字典完成,知识很基础,在这里就不赘述啦~
attra_e={
}
city_e={
}
accom_e={
}
country_e={
}
shop_e={
}
trans_e={
}
product_e={
} #创建每个实体的字典
#字典函数
def set_dic(entity_name,dic_name,startBy):
number = 1
for i in df[entity_name]:
a = pd.isnull(i)#判断单元格是否为空
if a == False:
i = i.split(';')