自然语言处理(二) 新词发现或非监督词典构建

新词发现,未登录词识别,无监督词典构建

对自然语言进行处理时,经常需要维持一个词典,词典一般不会从头构建,网上有很多词典可供使用。然而有时,特别在特定领域词典就不易获得了。需要人为构建,人工成本太大,如何自动构建呢? 还有就是网上经常会出现很多新词,领域内也会因为如新产品、新技术、新应用的出现而出现很多新词,这些词都不在之前词典中。新词发现,未登录词识别,无监督词典构建几个概念相似,适用场景不同。新词一般即为未登录(out of vocabulary, OOV)词,即不在已有词典中的。本文主要从统计的角度来探讨,其它如语言模型、预训练模型暂不讨论。

什么样的短语可以称为一个“词”

什么样的短语可以称为词呢?首先,成词的短语出现的频率相对较高。不过短语频率高的却不一定是词,比如在《三体》中,“云天明”这个是个词出现309次,是一个词,而“是一”出现了1201次,却不是词。这个就涉及成词的另一个限制,凝合度,即成词的字符片断的共现情况。更确切地说是相对于各自频率的共现情况,比如上面的“云天明”的凝合度可用

[min{frac{P(云天明)}{P(云天)P(明)}quad ,quad frac{P(云天明)}{P(云)P(天明)}quad} ]

​​​ 来衡量, “是一”可用

[frac{P(是一)}{P(是)P(一)} ]

​​​来衡量,“云天明”的凝合度为5.3,而’是一‘的凝合度却只有1.6。如果阈值定为3的话,很容易判断“是一”不能成词,因为其凝合度小于3。这个比率其实就是点互信息(Point-wise Mutal Information,PMI)。然而凝合度高的短语也不一定就是词,比如“面壁者”的pmi是4.8,“壁者”的pmi是5.3,虽然“壁者”的pmi大于“面壁者”,我们知道他却不是一个词。因为词的出现,其词内部是不变的,而其周围的字、词却是经常变化的,而如果只是词的片断(半个词)那么,其周围字词就变化不大(至少一边变化不大)。也就是说判断词的另一标准就是看其周围“邻居”即字符的丰富程度。而这样的丰富度可以由熵来衡量,即词 w的丰度(也称为边界熵):

[min{sum_{w_nin {left neigbor set} }P(w_n|w)log P(w_n|w),quad sum_{w_min{right neigbor set} }P(w_m|w)log P(w_m|w) } ]

总结一下,一个短语能否成词可由三个指标来衡量,即词频凝合度边界熵共同来决定。至于每个指标的阈值需要根据场景及语料等确定。

一些工程优化

可以想见,语料越多生成的词就越多越可信,然而,因为对ngram操作,其对工程上有一些要求,比如空间需要以及计算效率等问题。比如ngram可以使用前缀树存储会省较多空间。

对于上面的三个指标,计算量是逐步提升的,比如某个词的边界熵的计算,不但要知道身短语的情况,还要知道周围词的情况,计算量惊人。经过思考,发现这个边界熵其实是可以省掉的,或者说,我们只需要词频与凝合度即可确定新词。

由上可知,成词需要短语的凝合度大于一定的阈值,那反过来,也就是说如果一个短语的凝合度小于阈值就不能成词。基于此可以将不满足阈值的短语直接分开。比如“罗辑对三体世界建立的黑暗森林威慑无疑是伟大的功绩”这句话,可以想像“辑对”,“对三”, "立的"等短语的凝合度是比较低的。因此,经凝合度的衡量,这个句子可以暂时变成“罗辑 对 三体世界 建立 的 黑暗森林 威慑 无疑 是 伟大 的 功绩”。 可以看到当变成这样的句子后,我们只需统计各个词的词频即可。这样我们还可以发现一些较长的词,长于ngram的max n 的词,比如行星防御理事会,强相互作用力等。

处理流程

新词的流程如下:

# preprocess text:
	# 剔除非汉字
	# 构建n-grams
	# 过滤掉低频n-grams
	# 根据低凝合度切分原始文本
	# 统计切分后的短语
	# 过滤低频短语
	# 剔除掉不在原来的n-grams中的短语,以及大于n的短语中,其片断有不在n-grams中。

经过处理后,三体一书中的词汇如下(选取200个):

面壁者 计算机 附近 仿佛 温暖 笼罩 参加 交流 它们 舒服 方法 中心 躺在 目标 随着 需要 使她 不是 结束 刚才 就像 航天 适应 大地上 
章北海 杨晋文 现在 广播纪元 世界 蓝色空间 风吹 视野 太空服 重力 实现 黑暗 进一步 智子 有关 这种 关系 落下 狄奥伦娜 黑洞 覆盖
 不及 加速 面前 叶文洁 科学 含义 上帝 几天 持续 状态 集中 降临 得到 进入 咱们 远处 指挥 保护 电磁波 带着 每天 生物 第三 这件事
 结果 点儿 飞机 什么 上面 同意 不要 超过 工作 本书 办公室 命运 威慑纪元 是谁 机器人 不管 存在 尘埃云 二维平面 精神 别人 尾迹 
使命 这样做 太空艇 这些 维德 起了 地球往事 运行 星云 当时 就能 面对着 意识到 诺伊曼 语言 方式 历史 失重 明显 这样 苏醒 巨大 
地面 痛苦 有人 确实 吃力 柔软 放大 立刻 阶梯计划 一个 监测 长长 亚洲 频率 移民 眼中 灾难 核弹 很快 如果 考察 失败主义 敏感 
太空城 二维化 史强说 宇宙 微观 杨卫宁 旋涡 电磁辐射 飞行器 断面 想起了 正式 理论 光速 传来 刘慈欣 核心 显示出 联邦 史晓明 亨特
 记录 提示 亚洲舰队 来说 接触 设定 文字 百分之 诡异 也许 北美 我们 设施 数字 今天 一眼 周文王 一会儿 就行了 移动 战争中 地球 
以后 冬眠者 物质 计算 信息 设备 坎特 看到 罗辑博士 数学模型 看看 赫尔辛根默斯肯 质子 东方 发生 白色 戴着 运动 经过 无法 形成

Reference:

  1. http://www.matrix67.com/blog/archives/5044
  2. https://zhuanlan.zhihu.com/p/25499358
  3. https://github.com/bifeng/nlp_paper_notes/blob/master/新词发现.md
  4. https://spaces.ac.cn/archives/6920
  5. https://spaces.ac.cn/archives/4256
  6. https://spaces.ac.cn/archives/3913
  7. https://zhuanlan.zhihu.com/p/80385615
原文地址:https://www.cnblogs.com/vpegasus/p/new_word_recognition.html