zoukankan      html  css  js  c++  java
  • 职业能力名称匹配去噪处理流程样例

    1.思路:
    (1)模式识别:结合uc表的title和job_title字段探索职能结构模式;
    (2)识别职能:根据识别后的模式实现title的识别;
    (3)识别方法改进调优:由于识别后的结果中仍可能存在过于细节噪音信息(如:java支付金融业务架构师),故使用title关键字构建trie森林结构,实现title的分层(如:001 001003 001003001 000000000001 java游戏架构 师——技术 架构师 java 游戏),既能提高查询效率,也能实现信息过滤。

    2.方法:
    2.1模式识别:
    (1)清除垃圾信息:如:'谢谢', '萨芬', '看看','知道'等;
    (2)职级评定:分为技术类职级和管理类职级,技术类以管理等级进行区分(如:总监、经理),技术类以技术掌握程度进行区分(如:资深、实习);
    (3)title由skill、suffix、level和other4个字段构成,对源数据进行聚类,得到出现频率高的suffix和level构建后缀和职级字典;
    (4)构建包含具有分类意义的非技能词(如:开发)的泛技能词词典;
    (4)使用泛技能词字典、suffix字典和level字典对源数据进行标注;
    (5)识别title的组成模式(如:skills + others + suffix)。

    2.2识别职能:
    (1)处理分词细节,(如:工程师——工程|师,教师——教|师)、英文技能词混写(如:javac++开发工程师);
    (2)管理类职级统一为管理(如:销售总监——销售管理(level:总监));
    (3)依据模式识别职能。

    存在的问题:
    (1)others中的噪音太多,使职能极具细化,泛化能力太弱;
    (2)只能知道是否匹配,但为什么不匹配,不匹配到什么程度无从可知;
    (3)该方法每次都需遍历整个字符串识别模式,而很多时候优先匹配某些关键词就能直接得出不匹配的结果(如:销售和工程)。

    解决办法:
    主要是如何去噪、可解释性和匹配效率三个问题。trie树可以解决可解释性和匹配效率两个问题,对于去噪问题可以对trie做一个变种。首先树的非叶节点不再是职能中所有出现的单词或词组,而是出现的关键词(如:java支付金融业务架构师——架构、金融、支付、架构师);其次,取消叶节点,变成没有父节点的散节点,用于存在职能中出现的技能或方法对象(如:java),因为技能跟职能的类别不具有一一对应的关系;最后,诸如技术、销售等职能的大类别并没有什么共性,故将树改为森林。

    2.3识别方法改进:
    (1)进一步数据清洗(删除多余空格、合并名称相同但职级不同的职能);
    (2)构建trie森林结构:
    每棵树的根节点(3位数表示):职能类别统称(可能为非职能中的特征词),如:技术(001)、市场(002) 、销售(003)等。
    每棵树的 一级节点(6位数表示) :职能关键类别(一定为职能中出现的特征词),用于做第一步匹配,如:工程(001001)、设计(001002)等。
    每棵树的 二级节点(9位数表示): 职能详细类别(一定为职能中出现的特征词),用于做第二步匹配,如:前端(001001002)、测试(001001003)
    散节点(无父节点的点):最后一层是技能节点,也就是职能中出现的技能节点或泛技能节点(如:java开发工程师中的java),之所以称为散节点是因为技能并不完全隶属于任何一种大职能(如“3dmax建筑模型师”既属于技术中的设计类,也属于建造类的设计类),故没有父节点;
    (3)使用样例;
    假设该结构用于比较B端职位名称和C端的title名称
    首先匹配B、C的一级节点(职能中出现的最高层次的关键词),如果一级节点不同则直接为不同;
    如果一级节点不同而根节点相同,那么可能是未识别的正确的一级节点;
    如果一级节点相同且二级节点相同,那么两个职能在主要方向是相同的;
    如果一级节点相同而二级节点不同,说明两者不是同一个职能,但都是一个大类型的;
    如果一级节点相同、二级节点相同、散节点也相同,那么两个职能完全一样;
    如果一级节点相同、二级节点相同、散节点不同,那么两个职能类型一样但用的技能不一样。
    例子:B端:3dmax场景设计师、C端:3dmax模型设计师
    首先匹配“设计(001002)”,两者相同,说明两个职能一级节点相同(都属于设计类);
    其次匹配“场景(001002022)”和“模型(001002016)”,两者不同,说明两个职能不是同一个职能;
    最后匹配“3dmax(000000000029)”,说明使用的技能是相同的
    结论:使用同一种技能的两个不同的技术类的设计师。

    3.优缺点:
    优点:无需匹配所有的字符即可过滤不匹配的情况;
    可解释性更强,可以清楚两个职位不同的原因;
    可以有效过滤出现的过于细节的噪音(linux后台服务器c++工程师——技术、工程、后台开发、linux、c++)。
    缺点:trie森林结构更新量庞大。

    4.成果:
    通过人工、聚合等方法,现已构建11个根节点、31个一级节点、539个二级节点、2151个散节点,共识别去噪后的7646个不同的职能。

  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/xpNLP/p/5643806.html
Copyright © 2011-2022 走看看