传统的命名实体识别中,主要是基于规则和词典的方法,在实体识别过程中没有给出具体的语义信息,因此会存在一词多义和多词一义的问题,对实体的消歧就是提升实体识别准确率的关键部分。
主题模型是对文档隐含的主题进行建模的方法,是语义挖掘的利器,既可以衡量文档之间的语义相似性,还可以解决多义词的问题。在主题模型中,主题是一个概念,表现为一系列相关的词,通过命名实体在不同主题下的条件概率分布来达到实体消歧的目的。如“苹果”这个词可能是水果,也可能指苹果公司。通过求出的“词语-主题”概率分布,我们就可以知道“苹果”都属于哪些主题。LDA(Latent Dirichlet Allocation)是其中应用最广泛的模型。
二、开发环境
l Windows7 i5处理器,2.50GHz
l Python3.6
l Genism主题模型库
l Sklearn机器学习库
l Jieba中文分词
l Hadoop集群
三、语料库与预处理
1. 语料库的获取:
a) 语料库的数据主要来自58招聘职位新增日志
b) 数据位于集群中的位置:/home/hdp_lbg_supin/middata/fuxiaohan/ds_zp_info_content/
2. 处理文本:
中文分词、词性标注、命名实体识别
a) 采用已有的jieba分词工具(或部门分词工具)对语料库分词和标注
b) 调用分词工具编程实现分词标注的MapReduce程序
c) 打包上传到Hadoop集群运行
3. 分词标注过程:
a) 基于词典的最长切分组合进行分词
b) 分词过程涉及剔除停用词,去除特殊标点,空格
c) Jieba基于Viterbi算法进行词性标注
d) 添加自定义招聘词典、可动态调整词典进行标注
4. 分词标注得到的结果
a) 分词标注好的招聘职位的形式:类目词典和地域词典
b) 类目:全站类别查询表来源于cmc中ds_dict_cmc_category
c) 地域:全站类别查询表来源于cmc中ds_dict_cmc_local
四、对已分词标注数据抽取主题
1. 主题两种形式:具体主题和抽象主题
2. 具体主题:如体育,音乐,计算机,军事,政治等已给出的具体概念
3. 抽象主题:由一系列相关的词以及对应的条件概率分布共同定义
4. 具体主题采用已有的类目和地域词典来构建
5. 抽象主题需要采用主题模型(如LDA)来抽取
五、抽象主题抽取技术
1. 常用的主题模型包括PLSA和LDA,我们采用LDA模型
2. 对LDA算法原理的理解
3. 分别采用gensim库,sklearn库训练LDA主题模型
4. TFIDF计算及词频TF计算
5. 调参:隐含主题数K,参数α,参数η等
6. 实现分布式LDA算法,部署到集群分布式上(hadoop)
7. LDA算法结果是选定主题个数下,每个主题包含一些词的组合及对应概率,结果的形式是:1:p*word + p*word+…+p*word;
六、具体主题的抽取技术
1. 应用已有的招聘职位的类别和地域词典统计词频TF
2. 采用hadoop分布式集群部署
3. 采用java语言
4. 结果的形式:主题:概率*词+…+概率*词
七、实体的过滤消歧
1. 传统的实体消歧根据上下文语义进行消歧,基于主题模型的实体消歧,利用整个文档作为一个单词的上下文,从而进行实体消歧
2. 需要做一定的数据分析,可通过主题模型计算得到的“主题—词”的概率分布,设计特定的策略来确定实体属于那些主题。
3. 实体消歧的评价方法:
a) 召回率(Recall Rate)
b) 准确率(Precision Rate)
c) F1-Measure