今天跟大家聊聊我最近在做的关于徐媛的一些实践记录,这名字听起来挺常见的,但这回我研究的可不是什么明星或者历史人物,而是基于一些公开信息,尝试构建一个简单的个人知识图谱。
事情是这样的,前几天我在网上闲逛,看到一些关于“徐媛”的信息,各种各样的,有运动员,有医生,还有学者。我就想,能不能把这些信息整合起来,看看能不能挖掘出点什么有趣的东西。
说干就干,我先是把能搜集到的所有“徐媛”的信息都下载了下来,保存到本地的txt文件里。光是整理这些文件,就花了我一下午的时间,各种重名,各种信息不全,真是头大。
就是要把这些信息提取出来,结构化。我用的是Python,配合一些正则表达式,先把每个“徐媛”的关键信息提取出来,比如出生年月、职业、成就等等。这一步是最麻烦的,因为信息来源太杂了,格式都不统一,需要不断调整正则表达式。
提取出来的信息,我用的是CSV格式保存的,方便后续处理。然后,我开始构建知识图谱。这里我用的是Neo4j,一个图形数据库。我把每个“徐媛”都当做一个节点,然后根据他们之间的关系,比如“就职于”、“擅长于”、“毕业于”等等,建立节点之间的边。
举个例子,如果我找到了一个信息,说“徐媛,贵州医科大学附属医院,器官移植科,副主任医师”,那么我就创建一个“徐媛”节点,再创建一个“贵州医科大学附属医院”节点,再创建一个“器官移植科”节点,然后在“徐媛”节点和“贵州医科大学附属医院”节点之间建立一个“就职于”的边,在“徐媛”节点和“器官移植科”节点之间建立一个“擅长于”的边。
这个过程相当繁琐,需要手动一条一条地添加节点和边。不过当看到图谱慢慢成型的时候,还是挺有成就感的。
图谱建好之后,我就可以开始进行一些简单的查询了。比如,我可以查询所有名叫“徐媛”的人,或者查询所有在“医院”工作的“徐媛”。由于信息有限,目前只能做一些简单的查询,但已经足够让我感受到知识图谱的威力了。
我把这个简单的知识图谱部署到了一个本地服务器上,用可视化界面展示出来。虽然界面很简陋,但至少可以方便地浏览和查询。
这回实践,让我对知识图谱有了更深入的了解。虽然只是一个简单的尝试,但让我看到了知识图谱在信息整合和挖掘方面的巨大潜力。以后有机会,我还会继续深入研究,尝试构建更复杂的知识图谱。
还没有评论,来说两句吧...