注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
自然语言处理系列四十一
新词发现与短语提取》新词发现算法原理
新词发现是 NLP 的基础任务之一,通过对已有语料进行挖掘,从中识别出新词。新词发现也可称为未登录词识别,严格来讲,新词是指随时代发展而新出现或旧词新用的词语。同时,我认为特定领域的专有名词也可归属于新词的范畴。何出此言呢?通常我们会很容易找到通用领域的词表,但要找到某个具体领域的专有名词则非常困难,因此特定领域的专有名词相对于通用领域的词语即为新词。换言之,“新”并非只是时间上的概念,同样可以迁移到领域或空间上。因此,新词发现不仅可以挖掘随时间变化而产生的新词,也可以挖掘不同领域的专有名词。
接下来,让我们开始一场新词发现的探索之旅吧。首先,对于“新词发现”这个标题,我们可将其拆分为“发现”和“新词”两个步骤:
“发现”:依据某种手段或方法,从文本中挖掘词语,组成新词表;
“新词”:借助挖掘得到的新词表,和之前已有的旧词表进行比对,不在旧词表中的词语即可认为是新词。
“新词发现”的难点主要在于“发现”的过程——如何从文本中挖掘到词语?那么有办法回避这个问题吗?让我们思索一下“新词”的过程:比对挖掘得到的新词表和旧词表,从代码的角度来说。
for 新词 in 新词表:
if 新词 not in 旧词表:
print(“这是新词”)
简单地讲,只要不是旧词就是新词呗,那么我们在对文本进行分词时,假设分词工具可以得到旧词,那么分词工具不能切分、切分有误或切分后不在旧词表中的词语不就是新词了吗?这就是“新词发现”的传统做法——基于分词的方法。除了分词方法外,还有基于规则和基于统计的方法,下面一一讲解。
- 基于分词的方法
先对文本进行分词,余下未能成功匹配的片段(分词后的中文、连续的数字、连续的英文)就是新词。
新词发现的目标是挖掘文本中的新词,或者说未登录词,来帮助后续的分词等工作。而基于分词的方法则相当于从目标反推过程,这种方法未尝不可行,但分词的准确性本身依赖于词库的完整性,如果词库中根本没有新词,又怎么能信任分词的结果呢?自然,最终得到的效果也不会特别好。 - 基于规则的方法
根据新词的构词特征或外型特征建立规则库、专业词库或模式库,通过编写正则表达式的方式,从文章中将这些内容抽取出来,并依据相应的规则作清洗和过滤,然后通过规则匹配发现新词。因此,我们需要对已有的语料有着足够的了解,继而从语料中抽取固定的模式来匹配和发现新词。
【优点】新词挖掘的效果非常好,夹杂中文、英文和标点符号的词语(短语)也能抽取出来。
【缺点】与领域耦合过深,无法将建立的规则库、专业词库以及模式库迁移到其他领域中,需要根据领域内容重新搭建。甚至与特定类型、出版社、渠道的文章耦合过深,需要为不同的数据源搭建相应的规则库。一旦数据源的文章格式变动,规则库也需要作相应的修改。无论是搭建还是后续的维护,都需要大量的人工成本。 - 基于统计的方法
基于统计的方法根据有无标注数据可分为有监督方法和无监督方法。
1)有监督方法
有监督方法利用标注语料,将新词发现看作分类或者序列标注问题:
基于文本片段的某些统计量,以此作为特征训练二分类模型;
基于序列信息进行序列标注直接得到新词,或对得到的新词再进行判定。
通常可以用 HMM、CRF、SVM 等机器学习算法实现。但是在实际应用中,获取大量的标注语料数据是非常困难的一件事情,并且既然已经有了手工标注的数据,那么直接把标注得到的新词加入到新词词库就好了,又何必建模来解决呢?所以,探索无监督的挖掘方法在新词发现领域中更有价值。
2)无监督方法
不依赖于任何已有的词库、分词工具和标注语料,仅仅根据词的共同特征,利用统计策略将一段大规模语料中可能成词的文本片段全部提取出来,然后再利用语言知识排除不是新词语的“无用片段”或者计算相关度,寻找相关度最大的字与字的组合。最后,把所有抽取得到的词和已有的词库进行比较,就能得到新词。
实际上,利用统计策略对语料进行切分,形成若干块文本片段,这相当于一次粗浅的分词。接下来,再对这些文本片段作一次清洗与过滤,余下的文本片段即可作为新词词库。
新词发现代码示例
下一篇文章详细讲解新词发现代码示例。
总结
此文章有对应的配套新书教材和视频:
【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。
全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。
本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。
【配套视频】
自然语言处理NLP原理与实战 视频教程【陈敬雷】
视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!
上一篇:自然语言处理系列四十》条件随机场CRF》CRF开源工具实战
下一篇:自然语言处理系列四十二》新词发现与短语提取》新词发现》代码实战