许多医药企业在处理渠道流向数据时,常被流向终端匹配所困扰,不是需要匹配的字段没有,就是匹配成功率极低......
那么未名企鹅的流向终端匹配是如何做到精准、高效呢,下面我们来介绍未名企鹅流向终端名称匹配系统的成分分析功能。
这里所说的成分分析在通用的自然语言处理过程中一般是指分词后词性的标注,也就是以词为单位确定其性质的过程。确定词性是从语言学角度解析文字内容必要的过程,以便后续为语法与语义分析、机器翻译等应用提供帮助。
但从未名企鹅的流向终端名称识别的过程来看,如此的区分方式并不合理,因为我们并不关心名词、动词、形容词的区别;甚至在通用NLP处理过程中会将我们需要解析的机构名称识别为一个独立的整体,此过程叫做命名实体识别即NER。显然,流向终端匹配与通用NLP研究的重点与角度,在成分分析阶段不太一致。
匹配系统现阶段对成分的分析较为固定,主要利用特征集对成分进行分类从而确定成分类别,但实际情况还是比较复杂的,下面我们只拿医疗机构的名称来做一下改进方案的分析。之所以拿医院数据来说明,是因为医院整体数据量相对较小,较容易进行抽样分析。
按照逻辑认知方式,我们使用大约2000个抽样的医疗机构名称进行归纳,用以下产生式表示:
("[]"代表可选、""代表必选、"|"表或者、 "+"表连结,H代表医疗机构)
H = W+ G + [W'+ G']
W = [地名1|人名|医学院名] + [普通医院专有名词 | ] +[医院类型1]+[常见疾病名|医学科室|序数词|基数词|地名2]+[医院类型2]
G = 医疗机构中心词
W' = W
G’= 医疗分支机构中心词
以上分析与总结均来自于抽样数据且符合一般性逻辑思维方式,即人们常规分析此类问题的推演方法。
一般采用产生式系统来实现,辅助外部知识能力,对输入数据进行处理,通过操作规则集合,挑选合适的处理规则,把可能性的组合变为确定性结果。这样做的长处是解释性强、容易理解,对已知数据集处理能力较好;短处是数据集较大时过程繁琐,也需要应对规则冲突的情况,并且对未知的预测能力有限。
另外一种处理方案是基于标记数据的训练对输入进行序列标注的预测。前面内容提到的分词技术可以使用序列标注来实现,以单个“字”为预测对象,输出每个字的分类用来标记“词”的开始与结束,最终达到分词的效果。那么类似的道理,以单个“词”为预测对象,输出每个词在序列中的分类标记,用来预测成分信息。
这类问题一般可通过概率图模型来实现,常用的有隐马科夫(HMM)与条件随机场(CRF),区别只是两者出发角度不同,前者更注重因何而来所以需要估计联合概率分布(生成式模型),后者更注重判别结果所以只需计算条件概率(判别式模型)。从实际应用效果来讲,限制颇多的HMM不如CRF灵活,毕竟正确的结论比合理的过程更重要。
相较于产生式系统,以上面总结的医院名称解析过程为例,公式W代表了各个成分信息,具体到哪些成分可以搭配出现即可表示为产生式系统的某一个具体规则,也可将规则拆分成若干个CRF的特征函数用于“打分”,最终依据分数计算的概率值最大的序列作为预测的标注序列。
CRF也可以联合神经网络来辅助上下文信息进行编码,进而更好的表示各个成分之间的依赖关系(BiLSTM+CRF)。
当分析了问题并初步选择了模型后,接下来更细致的工作就是数据的特征工程,记得AI工业界大牛吴恩达曾说过“机器学习的成败在于特征工程”。因为从现实世界得到的数据复杂而多样,如何利用这些数据提取有用的特征数据就成了一个难题。
对于流向终端名称匹配问题,原始数据就是名称短语,可用信息量非常有限。好在流向数据也包含上游、地理位置甚至药品等信息,而待匹配的未名企鹅标准Live行业库也具有丰富的原生数据,人工处理的数据,这些数据都是巨大的资源。
那么未名企鹅行业库又是一个什么样子呢?敬请搜索内容“企鹅独有的Live行业库”。
领取专属 10元无门槛券
私享最新 技术干货