NLP信息提取工作记录

主要任务

将各个医院不同格式的病历中的信息提取出来,这些信息包括姓名、出生地、年龄、疾病史、出院情况、出院有什么症状,有哪些治疗历史等信息。信息提取后还应将这些信息按照项目一个个的存储到mysql数据库中。

 

具体实现过程

由简至繁的的描述。简单和复杂的区别主要由待提取的信息的复杂度来描述。

1,有限可穷举情况

最简单的为性别,只有两种匹配,男、女。更多的则是婚姻情况,如已婚、未婚、离异等。再多的则是职业,如工人、农民、医生等,职业的可能性可以达到几十种。再多一些的可能是手术名称,有几百种,医院名称,上千种。一般来说利用上千个医院名同时匹配时间就会很长了。

2,关键词的提取

上面的性别信息男女直接敲上去就可以了,但是你可能没有一个库,这个库包含所有的手术名或医院名。如何得到这个库呢?一般来说会针对具有某些特征的语句进行分词词频统计,通过词频来赛选出目标词库。

3,基于概率论的方法

自然语言处理最基本的算法就是n-gram,而分词1-gram则应是最基础的。基本上自然语言处理传统方法都是围绕求当前的序列的概率最大来操作。如在分词时,找到一个组合方式,让这个句子出现的概率最大;词性标注时,找到一个最优的词性标注,让此词性标注的概率最大;条件随机场、给定这句话,给出一个概率最大的词性标注。

在信息提取时,如在查找手术名称时,我们会预测截断词,如一般手术名称中,术字都是末尾字,因此会正则表达式找出所有以术字为尾的语句,然后通过统计的方法找到应在句子前面的哪里截断,找到概率最大的那个截断词,然后取截断词和术字中间的部分作为手术名称。

4,传统方法与机器学习方法的区别

传统方法如1-gram可以通过词频统计得到一个转移矩阵表格,但是有可能在实际应用中遇到没见过转移情况,遇到这种情况时一般会采用一些折中的方法来解决。因此用机器学习的术语来解释即是传统方法基本上没有泛化能力。而由于机器学习模型是连续的预测模型,因此对未见过的情况可以认为它会有相关的泛化、推理能力。

 

 

 

 

 

 

1,简单正则表达式提取

姓名、出生日期就是直接正则表达式,一般格式都是姓名:XXX,因此如此方式正则表达式提取。

 

2,关键词提取

如职业、民族信息,职业、医院名的词很少,如(工人、农民、医生、公务员。。。。)。民族也一样,因此直接匹配病历中的相关词就是病人的信息,一般是这样。

 

3,针对区域的关键词提取

提取当前医院中的手术历史情况时,有些病人的病历中会有上次在别家医院的手术记录,因此直接手术名称全文匹配会导致将上次的治疗也混入到本次治疗中。因此应首先讲搜索区域定位到治疗的那段文字上,或者删除掉治疗历史的相关部分后再进行信息提取。

 

4,找到关键词

结合固定区域的方法,再利用分词和统计方法,即可以提取到关于一个项目的关键词。如找所有病例中和出院情况这个词距离近的词(本文距离近是指在文中词与词之间中间的词的数量)。找到后分词、统计词频,再去掉的、是这些无意义的词后,按词频排序即可得到关键词。

 

5,关键词之间的相关性

可以以逗号和句号和分号将所有的语句分开,分开后,我们要得到一个人某些部位的情况,如眼睛清凉、身体是否有囊肿。简单来说就是通过查看同时出现的次数来赛选,同时出现越高说明相关性越大。复杂来说得到各个词同时出现的频率统计,得到一个矩阵,此矩阵表示了相关性

 

 

正则表达式、精通。主要用于一些模式很少或者模式很多但是拥有所有模式的元素的情况来使用,如查找文档中的性别、职业等信息时。还有就是提取某些关键词相关的信息时候可能会用,如找某些身体器官相关的疾病,限定统计范围。

概率论、条件概率、马尔科夫链、协方差矩阵、词频矩阵、PLSA、LDA算法。

PLSA、LDA相关深度学习算法为CBOW或skip-gram。这两个word embeddding的主要差异是输出部分,自然语言处理的主要难点就是词太多导致矩阵或向量的维数特别大,比如我们项目的词的数量就达到上万,赛选掉词频低的和是、的类的词还有好几千。

CBOW或skip-gram主要是训练1-gram,即是一阶马尔科夫链,训练一个模型,给定一个词,预测下一个词的概率,最后仅使用将词抽象为特征向量的矩阵。

而PLSA和LDA类似,给定一定数量的文章,再给定一个主题数量,用类似聚类的流程训练模型,最终收敛。实现过plsa模型,一开始是网上copy的,但是其中矩阵运算都是for循环,因此修改为矩阵运算,但是拟合速度仍旧很慢,修改为用gpu进行矩阵运算也是很慢,而gensim很快,查找原因是采用稀疏矩阵算的。

PLSA和LDA是项目搜索引擎要用,扩充用户的搜索词用的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章