人才库自然语言处理系统

项目核心技术

1. 文本降噪

文本降噪技术用于对原始文本进行净化和简化, 常用的降噪包括:

  1. 符号降噪
    1. 把全角符号变为半角符号, 例如全角空格变半角空格
    2. 把特殊符号替换为常用符号, 比如 “①⑨⑧⑤年” 替换为 “1985年”
    3. 简化符号的使用, 例如对tab符号替换为空格, 对大括号和中括号统一替换为小括号, 对顿号替换为逗号等, 甚至可以将所有符号变为逗号和句号来最大程度的简化. 这个在文本降噪技术中不是一定要做的, 但本系统会使用
  2. 文本降噪
    1. 错别字订正, 例如 “气水” 改为 “汽水”, “其它” 改为 “其他” 等
    2. 简繁体转换, 例如 “國家” 改为 “国家” 等
    3. 用词统一化, 例如 “圣巴巴拉分校” 改为 “圣芭芭拉分校” 等, 这个在文本降噪技术中不是一定要做的, 而且对词典的依赖比较严重. 本系统会把这部分的工作放在另外的模块去实现

下面以 赵东元教授的百科词条 的节选文本为例, 进行一次完整的 “从原始文本到最终入库格式” 的过程讲解.

首先选取一段原始文本如下:

1984年赵东元毕业于吉林大学化学系;1987年、1990年先后获该校硕士、博士学位;1990年博士毕业后进入沈阳化工学院精细化工系任教,先后担任讲师、副教授;1993年开始先后在以色列魏茨曼科学研究所化学物理系、美国休斯顿大学化学系、美国加州大学圣芭芭拉分校材料系和化学系材料研究室,从事博士后研究;1998年12月回国后进入复旦大学化学系任教,担任教授、博士生导师;2000年被聘为教育部“长江学者奖励计划”特聘教授。同年获得国家杰出青年科学基金资助;2005年作为学术带头人获得国家自然科学基金委员会创新研究群体基金 [4] ;2006年入选新世纪百千万人才工程国家级人选;2007年当选为中国科学院院士 [5] ;2010年当选为第三世界科学院院士;2017年获得第一届中国分子筛成就奖 [6] 。

在上述文本中, 主要包含注释符号等杂讯. 通过文本降噪技术, 我们将得到:

1984年赵东元毕业于吉林大学化学系. 1987年, 1990年先后获该校硕士, 博士学位. 1990年博士毕业后进入沈阳化工学院精细化工系任教, 先后担任讲师, 副教授. 1993年开始先后在以色列魏茨曼科学研究所化学物理系, 美国休斯顿大学化学系, 美国加州大学圣芭芭拉分校材料系和化学系材料研究室, 从事博士后研究. 1998年12月回国后进入复旦大学化学系任教, 担任教授, 博士生导师. 2000年被聘为教育部 长江学者奖励计划 特聘教授. 同年获得国家杰出青年科学基金资助. 2005年作为学术带头人获得国家自然科学基金委员会创新研究群体基金. 2006年入选新世纪百千万人才工程国家级人选. 2007年当选为中国科学院院士. 2010年当选为第三世界科学院院士. 2017年获得第一届中国分子筛成就奖.

注意在降噪后的文本中, 采用以下标点规则:

  1. 所有标点均转化为英文标点
  2. 英文标点只使用逗号和句号
  3. 在接下来的分词工作中, 机器将只对句号为间隔的文本认定为独立的句子. 比如 “1987年, 1990年先后获该校硕士, 博士学位.” 不会看作3个句子, 而是当作一个句子

2. 中文分词

分词的意思就是把文本段落以词语为间隔进行 “切分”.

针对上述降噪后的文本的中文分词后的效果如下:

1984年 赵东元 毕业 于 吉林大学 化学系 . 1987年 , 1990年 先后 获 该校 硕士 , 博士 学位 . 1990年 博士 毕业 后 进入 沈阳化工学院 精细化工系 任教 , 先后 担任 讲师 , 副教授 . 1993年 开始 先后 在 以色列 魏茨曼科学研究所 化学物理系 , 美国 休斯顿大学 化学系 , 美国 加州大学 圣芭芭拉分校 材料系 和 化学系 材料 研究室 , 从事 博士后 研究 . 1998年12月 回国 后 进入 复旦大学 化学系 任教 , 担任 教授 , 博士生导师 . 2000年 被 聘为 教育部 长江学者奖励计划 特聘教授 . 同年 获得 国家杰出青年科学基金 资助 . 2005年 作为 学术带头人 获得 国家自然科学基金委员会 创新研究群体基金 . 2006年 入选 新世纪百千万人才工程 国家级 人选 . 2007年 当选 为 中国科学院 院士 . 2010年 当选 为 第三世界科学院 院士 . 2017年 获得 第一届 中国分子筛成就奖 .

简要说一下该文本中涉及到的分词规则:

  1. 表示时间的词, 将被当成一个词块. 这是本系统区别于主流分词系统的一个特征点. 比如在jieba分词工具 (一款主流的中文分词工具) 中, “1998年12月” 默认会被分割为 “1998 年 12 月”, 而本系统则仅看为 一个 词块: “1998年12月”
  2. 表示组织/机构/奖项的词, 将被当成一个词块. 比如:
    1. “第三世界科学院” 不会被分割成 “第三 世界 科学院” 或 “第三世界 科学院”
    2. “魏茨曼科学研究所” 不会被分割成 “魏茨曼 科学研究所”
    3. “创新研究群体基金” 不会被分割成 “创新 研究 群体 基金” 等

3. 词性标注

中文分词和分词标注我把它们分开来讨论. 对上述文本进行词性标注后的结果如下:

{time:1984年}{name:赵东元}{event:毕业}{omit:于}{univ:吉林大学}{faculty:化学系}.
{time:1987年}, {time:1990年}{order:先后}{event:获}{univ:该校}{title:硕士}, {title:博士学位}.
{time:1990年}{title:博士}{event:毕业}{order:后}{omit:进入}{univ:沈阳化工学院}{faculty:精细化工系}{event:任教}, {order:先后}{event:担任}{title:讲师}, {title:副教授}.
{time:1993年}{order:开始}{order:先后}{omit:在}{location:以色列}{inst:魏茨曼科学研究所}{faculty:化学物理系}, {location:美国}{univ:休斯顿大学}{faculty:化学系}, {location:美国}{univ:加州大学圣芭芭拉分校}{faculty:材料系}{omit:和}{faculty:化学系}{faculty:材料研究室}, {event:从事}{title:博士后研究}.
{time:1998年12月}{event:回国}{order:后}{event:进入}{univ:复旦大学}{faculty:化学系}{event:任教}, {event:担任}{title:教授}, {title:博士生导师}.
{time:2000年}{omit:被}{event:聘为}{org:教育部}{prj:长江学者奖励计划}{title:特聘教授}.
{order:同年}{event:获得}{org:国家杰出青年科学基金}{event:资助}.
{time:2005年}{omit:作为}{title:学术带头人}{event:获得}{org:国家自然科学基金委员会}{award:创新研究群体基金}.
{time:2006年}{event:入选}{prj:新世纪百千万人才工程}{title:国家级人选}.
{time:2007年}{event:当选}{omit:为}{inst:中国科学院}{title:院士}.
{time:2010年}{event:当选}{omit:为}{inst:第三世界科学院}{title:院士}.
{time:2017年}{event:获得}{award:第一届中国分子筛成就奖}.

注: 以上格式是方便大家阅读美化后的格式, 真正的格式 (给机器阅读的格式) 如下:

1984年 time
赵东元 name
毕业 event
于 omit

4. 语法机与格式机

语法机和格式机是本系统为了处理文本信息格式化入库而制作的工具.

语法机 用于中文语法解构 (将复杂的结构降解为简单的结构), 举个最典型的例子, 文中有一句:

{time:1987年}, {time:1990年}{order:先后}{event:获}{univ:该校}{title:硕士}, {title:博士学位}.

语法机工作过程为:

  • {order:先后} --> 触发 “顺序语法机”:
    • 假定 句子中至少有两个时间词且这两个时间不相同
    • 假定 句子中的其他成分含有与时间数目相对应的实体词
    • 若不满足以上假定条件, 则报语法错误
  • {univ:该校} --> 触发 “指代语法机”:
    • 向前搜索最近一次提到的univ标记
    • 假定 向前步进不超过3句 (这个阈值是虚拟值, 具体值将由相关函数决定)
    • 若不满足假定条件, 则报语法错误

以上是语法机的工作流程, 经过语法机处理后的结果如下:

分支1: {time:1987年} {order:先} {event:获} {univ:吉林大学}(因为前一句提到了"吉林大学") {title:硕士}
分支2: {time:1990年} {order:后} {event:获} {univ:吉林大学} {title:博士学位}

句子由语法机处理完成后, 才能交给格式机进行最终处理.

格式机 可以将句子中的成分按照人才库要求的字段格式进行统一化, 规范化的入库工作.

例如按照人类的工作流程, 我们在看到上面那句话时, 可以在excel中这样记录: (注: 第一行是人才库要求的字段)

在这里插入图片描述

那么交给格式机, 要想实现上面的结果, 是怎么做到的呢?

这里说一下大致的实现逻辑:

格式机由 “触发器” 和 “格式器” 两个子模块构成, 首先触发器会根据句子来匹配需要的格式器, 然后调用相应的格式器对字段进行规范化的转换和缺省值的补充:

  1. 触发器
    1. 触发方式a: 根据标注特征触发: 由于句中有 “univ” 和 “title”, 且 “吉林大学” 和 “硕士/博士” 分别能在学校字典和学历字典中能找到, 因此将交给 “教育经历格式器”
      1. 该触发方式仅适用于结构简单, 特征明显且常见, 词库中有记录的情况, 优点是触发快, 效率优, 缺点是应对范围有限, 且容易出错
    2. 触发方式b: 根据语义环境触发: 待开发中
  2. 格式器: 调用 “教育经历格式器”
    1. 字段头生成: “入学年份”, “毕业年份”, “学校”, “专业”, “学历”, “毕业论文/毕业设计”
    2. 格式规范化:
      1. 1987年 --> 1987-00-00
      2. 吉林大学 --> 吉林大学
      3. 博士学位 --> 博士
    3. 缺省值统一用 “-” 填充
    4. 组装数据, 生成结果:
入学年份毕业年份学校专业学历毕业论文/毕业设计
0000-00-001987-00-00吉林大学-硕士-
0000-00-001990-00-00吉林大学-博士-

ps: 未来可改进的地方:

  1. 缺省年份根据逻辑推断补充, 例如博士学历的入学年份未知, 但硕士的毕业年份已知, 则可以推断, 博士入学年份应该和硕士毕业同年 (同年不同月, 一个在上半年, 一个在下半年). 同理专业也可以进行类似的推断
  2. 增加 “国家” 和 “城市” 字段, 比如 “| 0000-00-00 | 1987-00-00 | 中国 | 吉林 | 吉林大学 | - | 硕士 | - |”, 这两个字段可以通过调用内置字典来补上, 也就是预先建立起 “国家 - 城市 - 机构” 的关联字典. 该工作可以作为一个长期维护和更新的旁支任务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值