自然语言处理系列三十三》 语义相似度》同义词词林》算法原理

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书 《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

自然语言处理系列三十三

同义词词林算法原理

同义词词林主要用来衡量词和词之间的语义相似度,是人工整理的一个词典。《同义词词林》(亦称《义类词典》,以下简称《词林》)是由梅家驹等学者编纂的一部对汉语词汇按语义全面分类的词典,收录词语近7万条。《词林》根据汉语的特点和使用原则,确定了词的语义分类原:以词义为主,兼顾词类,并充分注意题材的集中。它将词义分为大类、中类、小类三级,共分12个大类(A类为人,B类为物,C类为时间与空间,D类为抽象事物,E类为特征,F类为动作,G类为心理活动,H类为活动,I类为现象与状态,J类为关联,K类为助语,L类为敬语),94个中类,1 428个小类,小类下再以同义词原则划分词群,每个词群以一标题词立目,共3 925个标题词。《词林》语义结构可用树型结构来表示,如图8.1所示。

图8.1 《词林》语义空间

编纂《词林》的初衷是提供从词义查词的工具,以便从中挑选适当的词语。作为一个语义分类体系,它也存在一些局限,如词典收词数量有限、复合词收录很少、词典更新滞后等等。若直接采用它作为同义词词典,显然不能满足实际需要。本书进行同义词的挖掘,是利用《词林》语义体系,并且将《词林》作为同义词底表来实现的。这样不仅可以依据《词林》作为底表的功能,直接识别出大量的、以词素形式出现的同义词,还可以依据其作为语义体系的功能,挖掘出大量的复合词形式的同义词。

同义词词林扩展版的词典比较大,这里给大家截取前面一部分展示:

Aa01A01= 人 士 人物 人士 人氏 人选

Aa01A02= 人类 生人 全人类 新人

Aa01A03= 人手 人员 人口 人丁 口 食指 生齿 职员

Aa01A04= 劳力 劳动力 工作者 血汗

Aa01A05= 匹夫 个人 个体 局部 片面 私人 一面 个别 小我 小我私家 部分 一边 一壁 私家 单方

Aa01A06= 家伙 东西 货色 厮 崽子 兔崽子 狗崽子 小子 杂种 畜生 混蛋 王八蛋 竖子 鼠辈 小崽子 用具 器材 器械 对象 牲畜 货品 货物 物品 忘八 工具 牲口 器具 方向 目标 宗旨

Aa01A07= 者 手 匠 客 主 子 家 夫 翁 汉 员 分子 鬼 货 棍 徒 份子

Aa01A08= 每人 各人 每位 大家 人人 众人 大众

Aa01A09= 该人 此人 这人

Aa01B01= 人民 民 国民 公民 平民 黎民 庶 庶民 老百姓 苍生 生灵 生人 布衣 白丁 赤子 氓 群氓 黔首 黎民百姓 庶人 百姓 全民 全员 萌 黔黎 子民 匹夫 平易近 新人 选民

Aa01B02= 群众 大众 公众 民众 万众 众生 千夫 公家 全体 大家 人人 众人 专家 公共 大伙 团体 人民 集体 全数 所有 大师 全部 一概 悉数 满堂 一切 黎民 整体 合座 完全 十足 全豹 百姓 美满 总共 举座 理想 齐备 扫数 世人 内行 统统 通盘 公民 全面 具体 一共 整个 全盘 行家 各人 国民

Aa01B03# 良民 顺民

Aa01B04# 遗民 贱民 流民 游民 顽民 刁民 愚民 不法分子 孑遗 余存 难民 灾民

Aa01C01= 众人 人人 人们 专家 世人 大家 大师 行家 大众 各人 内行

Aa01C02= 人丛 人群 人海 人流 人潮

Aa01C03= 大家 大伙儿 大家伙儿 大伙 一班人 众家 各户 人人 大师 专家 行家 众人 民众 大众 各人 群众 公共 老手 内行 世人 巨匠 熟稔

Aa01C04= 们 辈 曹 等

Aa01C05@ 众学生

Aa01C06# 妇孺 父老兄弟 男女老少 男女老幼

Aa01C07# 党群 干群 军民 工农兵 劳资 主仆 宾主 僧俗 师徒 师生 师生员工 教职员工 群体 爱国志士 党外人士 民主人士 爱国人士 政群 党政群 非党人士 业内人士 工农分子 军警民 党政军民

Aa01D01@ 角色

Aa02A01= 我 咱 俺 余 吾 予 侬 咱家 本人 身 个人 人家 斯人 个体 局部 片面 私人 一面 个别 小我 小我私家 部分 一边 一壁 私家 单方

Aa02A02= 区区 仆 鄙 愚 鄙人 小人 小子 在下 不才 不肖 戋戋

Aa02A03@ 老子

Aa02A04= 老朽 老汉 老夫 老拙

Aa02A05@ 老娘

Aa02A06@ 愚兄

Aa02A07= 小弟 兄弟 昆仲 昆季 手足 伯仲 昆玉

Aa02A08= 奴 妾 妾身 民女

Aa02A09= 朕 孤 寡人

Aa02A10= 职 卑职 下官 奴婢 奴才 仆从 仆众 奴仆 奴隶 跟班 跟随 奴役 跟从

Aa02A11= 贫道 小道

Aa02A12@ 贫僧

Aa02A13@ 下臣

Aa02B01= 我们 咱 咱们 吾侪 吾辈 俺们 我辈 咱俩

Aa03A01= 你 您 恁 而 尔 汝 若 乃 卿 君 公

Aa03A02= 老兄 仁兄 世兄 兄长 大哥 年老 老大 垂老 老迈 年迈

Aa03A03= 老弟 贤弟 仁弟 兄弟 昆仲 昆季 手足 伯仲 昆玉

Aa03A04= 大嫂 大姐 老大姐

Aa03A05= 阁下 足下 驾 同志 老同志 旁边 左右 安排 控制 操纵 傍边 同道 驾御 摆布 当中 台端 掌握 把握 大驾 驾驭 尊驾 独揽

Aa03A06= 陛下 主公 大王 万岁

Aa03A07= 您老 你咯

Aa03B01= 你们 尔等

Aa03B02= 诸位 各位 诸君 列位

Aa04A01= 他 她 彼 其 渠 伊 人家

Aa04B01= 他们 她们 他俩 她俩

Aa05A01= 自己 自家 自个儿 自各儿 自身 本身 自我 本人 小我 我 自 己 己方 我方 私人 个人

Aa05B01= 别人 旁人 他人 人家

Aa05B02= 谁 哪个 哪位 张三李四 哪一个 张王赵李

Aa05B03@ 其他人

Aa05C01= 某人 某 或人

Aa05D01@ 任何人

Aa05E01@ 克隆人

Aa06A01= 谁 孰 谁人 谁个 何人 哪个 哪位 何许人也 那个 哪一个 阿谁

Aa06B01@ 有人

Ab01A01= 男人 男子 男子汉 男儿 汉子 汉 士 丈夫 官人 男人家 光身汉 须眉 壮汉 男士 夫君 外子 良人

Ab01A02= 爷儿 爷们 爷儿们

Ab01A03= 先生 子 君 郎 哥 小先生 教师 教员 老师 师长教师 师长 教授 教练 西宾 西席

Ab01B01= 女人 女子 女性 女士 女儿 女 娘 妇 妇女 妇道 妇人 女人家 小娘子 女郎 巾帼 半边天 娘子军 石女 红装 家庭妇女 农妇 才女 密斯 小姐 姑娘 少女

Ab01B02= 女流 女人家 妇道人家 娘儿们 妞儿

Ab01B03= 少妇 婆娘 婆姨 娘子 小娘子

Ab01B04= 姑娘 少女 丫头 千金 小姐 闺女 室女 姑子 黄花闺女 大姑娘 小姑娘 童女 老姑娘 春姑娘 密斯 蜜斯 女士 令嫒 掌珠 令媛 女郎 仙女 女仆 梅香 婢女 使女 丫鬟

同义词词林扩展版详细说明如下:

《同义词词林》的第一版和第二版的词表完全一样,收词 53,859 条。其中有很多的词已经很不常用,成为所谓的罕用词。参照多部电子词典资源,并按照人民日报语料库中词语的出现频度,只保留频度不低于 3(小规模语料的统计结果)部分词语,可剔除 14,706 个罕用词和非常用词。经过这样的处理,《同义词词林》还剩下 39,099 个词条。为了满足自然语言处理的需要,这样规模的词典显然是少了一些,可以说远远不够。为了扩充《同义词词林》,本实验室利用很多词语相关资源,并投入了大量的人力和物力,完成了一部具有汉语大词表的《哈工大信息检索研究室同义词词林扩展版》。最终的词表包含 77,343 条词语。《同义词词林》按照树状的层次结构把所有收录的词条组织到一起,把词汇分成大、中、小三类,大类有 12 个,中类有 97 个,小类有 1,400 个。每个小类里都有很多的词,这些词有根据词义的远近和相关性分成了若干个词群(段落)。每个段落中的词语有进一步分成了若干个行,同一行的词语要么词义相同(有的词义十分接近),要么词义有很强的相关性。例如,"大豆"、"毛豆"和 "黄豆"在同一行;"西红柿"和"番茄"在同一行;"大家"、"大伙儿"、"大家伙儿"在同一行。另外,"将官"、"校官"、"尉官"在同一行,"雇农"、"贫农"、"下中农"、"中农"、"上中农"、"富农"在同一行, "外商"、"官商"、"坐商"、"私商"也在同一行,这些词不同义,但很相关。为了将词义相关的行和同义的行区分开,词典《同义词词林》在行的左端加上"* *"作为标记。小类中的段落可以看作第四级的分类,段落中的行可以看作第五级的分类。这样,词典《同义词词林》就具备了 5 层结构。随着级别的递增,词义刻画越来越细,到了第五层,每个分类里词语数量已经不大,很多只有一个词语,已经不可再分,可以称为原子词群 、原子类或原子节点。不同级别的分类结果可以为自然语言处理提供不同的服务,例如第四层的分类和第五层的分类在信息检索 、文本分类 、自动问答等研究领域得到应用。有研究证明,对词义进行有效扩展,或者对关键词做同义词替换可以明显改善信息检索、文本分类和自动问答系统的性能。词典《同义词词林》中保留下来的 39,099 条词语也保留了原有的分层结构,而新增的 36,267 条词语没有这样的结构。对于这些词,按照《同义词词林》的结构体系进行分类,工作量十分巨大。分类的某些环节可以使用机器自动完成,但是自动完成的结果不是很理想,各个环节主要还是依靠人工来完成。

《同义词词林》只提供了三层编码,即大类用大写英文字母表示,中类用小写英文字母表示,小类用二位十进制整数表示。例如:"Ae 07 农民 牧民 渔民","Ae 07"是编码,"农民 牧民 渔民"是该类的标题。标题是由一个或者多个第四层的"段首(即每个段的第一个词)"组成。根据标题词可以知道小类有分成多少个第四级类,如图8.2所示。

图8.2 词典结构

为了使用上的方便,对于第四级和第五级的分类也需要编码。新增的第四级

和第五级的编码与原有的三级编码和并构成一个完整的编码,唯一的代表词典中

的出现的词语。如:

Ba01A02= 物质 质 素

Cb02A01= 东南西北 四方

Ba01A03@ 万物

Cb06E09@ 民间

Ba01B08# 固体 液体 气体 流体 半流体

Ba01B10# 导体 半导体 超导体

编码的方法说明如下:

第四级用大写英文字母表示,第五级用二位十进制整数表示。由于第五级的

分类结果需要特别说明,例如,有的行是同义词,有的行是相关词,有的行只有

一个词,可以分出具体的三种情况。在使用上,有时需要对这三种情况进行区别

对待,所以有必要再增加标记来分别代表着几种情形。具体的标记如表8.3所示。

表8.3词语编码表

图中的编码位是按照从左到右的顺序排列。第八位的标记有 3 种,分别是

"="、"#"、"@","="代表"相等"、"同义"。末尾的"#"代表"不等"、"同

类",属于相关词语。末尾的"@"代表"自我封闭"、"独立",它在词典中既没

有同义词,也没有相关词。

代码实战

HanLP本身就提供了语义相似度的方法,下一篇文章给大家演示代码。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。

全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。

本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。

【配套视频】
自然语言处理NLP原理与实战 视频教程【陈敬雷】

视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!

上一篇:自然语言处理系列三十二》 语义相似度》语义相似度概念及入门
下一篇:自然语言处理系列三十》文本相似度算法》余弦相似度》Java代码实现

相关推荐
IT古董32 分钟前
【深度学习】常见模型-Transformer模型
人工智能·深度学习·transformer
沐雪架构师1 小时前
AI大模型开发原理篇-2:语言模型雏形之词袋模型
人工智能·语言模型·自然语言处理
python算法(魔法师版)2 小时前
深度学习深度解析:从基础到前沿
人工智能·深度学习
小王子10243 小时前
设计模式Python版 组合模式
python·设计模式·组合模式
kakaZhui3 小时前
【llm对话系统】大模型源码分析之 LLaMA 位置编码 RoPE
人工智能·深度学习·chatgpt·aigc·llama
struggle20254 小时前
一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI
人工智能·深度学习·目标检测·语言模型·自然语言处理·数据挖掘·集成学习
佛州小李哥4 小时前
通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)
人工智能·科技·ai·语言模型·云计算·aws·亚马逊云科技
Mason Lin4 小时前
2025年1月22日(网络编程 udp)
网络·python·udp
清弦墨客4 小时前
【蓝桥杯】43697.机器人塔
python·蓝桥杯·程序算法
云空5 小时前
《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
运维·人工智能·web安全·网络安全·开源·网络攻击模型·安全威胁分析