搜索
首页科技周边人工智能基于CNN的新词发现算法

基于CNN的新词发现算法

Apr 11, 2023 pm 11:01 PM
算法新词发现全卷积网络模型

​作者 | mczhao,携程高级研发经理,关注自然语言处理技术领域。

概览

随着消费热点和网红新梗的不断涌现,在电商平台的NLP任务中,经常会出现一些之前没有见过的词。这些词不在系统已有的词库中,被称为"未登录词"。

一方面,词库中词的缺失影响了一些基于词库的分词器的分词质量,间接影响了文本召回质量和高亮提示的质量,即用户文本搜索的准确性和搜索结果的可解释性。

另一方面,在主流NLP深度学习算法BERT/Transformer等等中,对中文处理时经常使用字向量来代替词向量。理论上使用词向量的效果应当是更好的,但是由于未登录词的原因,在实践过程中使用字向量的效果更好。如果词库更加完善,那么使用词向量的效果将优于使用字向量的效果。

综上,新词发现是我们当下需要解决的问题。

一、传统无监督的方法

中文新词发现这个问题,在业界已经有了较为成熟的解法。输入是一些语料,将这些文本做NGram切分以后,产生候选片段。计算这些片段的一些统计特征,再根据这些特征判断这个片段是不是一个词。

业界主流的做法是统计和观察这三个方面的指标:热度、内聚度、左右邻字丰富度。描述这三个指标的文章网上也有很多,这里简单介绍一下,细节可以参考Hello NLP和Smooth NLP的两篇新词发现文章。

1.1 热度

使用词频来表示热度。统计所有语料的所有片段的出现次数,那些高频的片段往往就是一个词。

1.2 内聚度

使用点互信息衡量内聚度:

图片

例如,我们判断汉庭是不是一个词,log(P("汉庭")/P("汉")P("庭"))。汉庭成词的概率,和"汉庭"的热度成正比,和"汉"、"庭"的单字热度成反比。这个很好理解,像是汉字中最常出现的字"的",随便一个汉字和"的"搭配的概率非常高,但是并不意味这"x的"或者"的x"就是一个词,这里"的"的单字热度就起了一个抑制的作用。

1.3 左右邻字丰富度

左右邻接熵来表示左右字的丰富程度。左右邻接熵就是候选词片段左边或者右边出现的字的分布的随机性。可以拆开看左边的熵和右边的熵,也可以把两个熵合并为一个指标。

图片

例如,"香格里拉"这个片段其热度和内聚度都非常高,对应其子片段"香格里"的热度和内聚度也很高,但是因为"香格里"后面大部分情况都出现"拉"字,它的右邻接熵很低,对其成词起抑制作用,可以判断出"香格里"三字不能单独成词。

二、经典方法的局限性

经典方法的问题在于需要人工设置阈值参数。一个NLP专家在了解当前语料中片段的概率分布以后,将这些指标通过公式组合或者独立使用,然后设定阈值来作为判断标准,使用这个标准判断的结果也可以做到很高的准确度。

但概率分布或者说词频并不是一成不变的,随着语料库越来越丰富,或者语料的加权热度(通常是对应的商品热度)波动变化,专家设定的公式中的参数和阈值也需要不断调整。这就浪费了很多人力,使人工智能工程师沦为调参侠。

三、基于深度学习的新词发现

3.1 词频概率分布图

上述业界已有算法的三个指标,根本来源的特征只有一个,就是词频。在统计学的方法中,通常会把一些简单又关键的统计量以图片的方式展示,比如直方图、箱线图等等,即使没有模型介入,光凭人看,还是能够一眼做出正确的判断。可以把语料切出所有长度限定的片段,把片段的词频归一化为0-255,映射为二维矩阵,行表示起始的字符,列表示终止的字符,一个像素点就是一个片段,像素点的明暗程度就是这个候选词片段的热度。

图片

上图是"浦东机场华美达酒店"这个短句的词频概率分布图,我们惊喜地发现,光凭我们的肉眼,也大致可以分出一些较为明亮的、等腰直角三角形的区块,比如:"浦东"、"浦东机场"、"机场"、"华美达酒店"等等。这些区块可以判断出对应的片段正是我们需要的词。

3.2 经典图像分割算法

通过观察词频概率分布图,我们可以把一个短句分词问题转变为一个图像分割问题。早期的图像分割算法,和上述的新词发现算法差不多,也是基于阈值的检测边缘灰度变化的算法,随着技术发展,现在一般使用深度学习算法,其中比较著名的是U-Net图像分割算法。

图片

U-Net的前半部分使用卷积下采样,提取多层不同粒度的特征,后半部分上采样,将这些特征在同一分辨率下concat起来,最后通过全连接层+Softmax得到像素级别的分类结果。

3.3 基于卷积网络的新词发现算法

对词频概率分布图的切分和对图的切分类似,都是将位置相邻并且灰度相近的部分切出来。所以对短句的切分,也可以参考图像分割算法,使用全卷积网络来做。使用卷积来做的原因是,无论我们在切割短句或者图像的时候,都更多的关注局部信息,就是靠近切割边缘那些像素点。使用多层网络的原因,多层的池化可以表现出对不同层特征的阈值判断,例如我们对地图地形切割的时候既要考虑坡度(一阶导/差分)还需要考虑坡度的变化(二阶导/差分),两者分别取阈值并且组合方式不仅仅是简单的线性加权而是串行的网络。

对于新词发现场景我们设计如下的算法:

  • 先把短句的词频分布图用0填充到24x24;
  • 先有两个3x3的卷积层,并输出4通道;
  • 把两个卷积层concat起来,再做一次3x3的卷积,并且输出单通道;
  • 损失函数使用logistic=T,所以最后一层不用做softmax输出即可用于分类;

图片

相比于U-Net,有如下差异:

1)放弃了下采样和上采样,原因是一般用来分割的短句比较短,词频分布图的分辨率本就不高,所以模型也随之简化了。

2)U-Net是三分类(分块1、分块2、在边缘上),此算法只需要二分类(像素点是否是一个词)。所以最后输出的结果也是不一样的,U-Net输出一些连续的分块和分割线,而我们只需要某个点是不是阳性的。

下图是训练完模型以后,用模型预测的结果。我们可以看到输出结果中,"上海"(上这一行、海这一列)、"虹桥"、"商务区"这三个词对应的像素点被识别了出来。

图片

使用训练好的模型,输入携程地标库中的地标名称,可以自动切分和发现出一些新词,如下图,虽然有个别badcase,总体上准确率还可以。

图片

将这些词导入到词库以后,搜索分词的准确率上升,分词结果的词库覆盖率上升。因为搜索分词中一般倾向过召回而杜绝漏召回,业界有更激进的按字分词召回的做法,而准确率一般通过后续的排序解决。所以分词准确率提升了,在用户看来搜索结果准确率并没有明显提升。但是可以解决部分因分词错误导致的高亮提示不正确的问题。

四、模型内部分析

如果想探究模型是怎么生效的,可以查看中间层的卷积核。我们先将模型卷积层的卷积核个数从4简化到1,训练以后,通过TensorFlow的API查看中间层:model.get_layer('Conv2').__dict__。我们发现Conv2层的卷积核如下:

图片

可以看到第一行和第二行对模型的效果是相反的,对应了该像素点的上一行减掉当前行的差分(带权重),如果灰度差异越大,这个像素点代表的字符串越有可能成词。

还可以看到第一行第二列0.04505884的绝对值比较小,可能是因为第一行减第二行的正向参数和第三列减第二列的负向参数相互抵消。

五、优化空间

本文描述的是一个结构非常简单的全卷积网络模型,还有很大的提升空间。

一是扩展特征选取范围。比如,本文中输入特征只有词频,如果把左右邻接熵也纳入输入特征,切分的效果会更加精准。

二是增加网络深度。通过模型分析,发现第一层卷积主要是为了应对那些用0填充的像素点产生的case,实际关注真实热度的卷积只有一层,如果是3x3的卷积核只能看到一阶差分结果,当前像素的的前后第二行和第二列就没有考虑到。可以适当扩大卷积核大小或者加深网络,来使模型的视野更大。但加深网络也会带来过拟合的问题。

最后,这个模型不仅仅可以用来补充词库以提高分词效果,并且可以直接用作分词的参考,在分词流程的候选词召回和分词路径打分这两个步骤中都可以应用这个模型的预测结果。

以上是基于CNN的新词发现算法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
如何使用Huggingface Smollm建立个人AI助手如何使用Huggingface Smollm建立个人AI助手Apr 18, 2025 am 11:52 AM

利用“设备” AI的力量:建立个人聊天机器人CLI 在最近的过去,个人AI助手的概念似乎是科幻小说。 想象一下科技爱好者亚历克斯(Alex)梦见一个聪明的本地AI同伴 - 不依赖

通过斯坦福大学激动人心的新计划,精神健康的AI专心分析通过斯坦福大学激动人心的新计划,精神健康的AI专心分析Apr 18, 2025 am 11:49 AM

他们的首届AI4MH发射于2025年4月15日举行,著名的精神科医生兼神经科学家汤姆·因斯尔(Tom Insel)博士曾担任开幕式演讲者。 Insel博士因其在心理健康研究和技术方面的杰出工作而闻名

2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争Apr 18, 2025 am 11:44 AM

恩格伯特说:“我们要确保WNBA仍然是每个人,球员,粉丝和公司合作伙伴,感到安全,重视和授权的空间。” anno

Python内置数据结构的综合指南 - 分析VidhyaPython内置数据结构的综合指南 - 分析VidhyaApr 18, 2025 am 11:43 AM

介绍 Python擅长使用编程语言,尤其是在数据科学和生成AI中。 在处理大型数据集时,有效的数据操作(存储,管理和访问)至关重要。 我们以前涵盖了数字和ST

与替代方案相比,Openai新型号的第一印象与替代方案相比,Openai新型号的第一印象Apr 18, 2025 am 11:41 AM

潜水之前,一个重要的警告:AI性能是非确定性的,并且特定于高度用法。简而言之,您的里程可能会有所不同。不要将此文章(或任何其他)文章作为最后一句话 - 目的是在您自己的情况下测试这些模型

AI投资组合|如何为AI职业建立投资组合?AI投资组合|如何为AI职业建立投资组合?Apr 18, 2025 am 11:40 AM

建立杰出的AI/ML投资组合:初学者和专业人士指南 创建引人注目的投资组合对于确保在人工智能(AI)和机器学习(ML)中的角色至关重要。 本指南为建立投资组合提供了建议

代理AI对安全操作可能意味着什么代理AI对安全操作可能意味着什么Apr 18, 2025 am 11:36 AM

结果?倦怠,效率低下以及检测和作用之间的差距扩大。这一切都不应该令任何从事网络安全工作的人感到震惊。 不过,代理AI的承诺已成为一个潜在的转折点。这个新课

Google与Openai:AI为学生打架Google与Openai:AI为学生打架Apr 18, 2025 am 11:31 AM

直接影响与长期伙伴关系? 两周前,Openai提出了强大的短期优惠,在2025年5月底之前授予美国和加拿大大学生免费访问Chatgpt Plus。此工具包括GPT-4O,A A A A A

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具