[New Paper]A Joint Model for Word Embedding and Word Morphology

2024-01-08 13:50

本文主要是介绍[New Paper]A Joint Model for Word Embedding and Word Morphology,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家端午节快乐!本文将分享一篇关于词向量模型最新研究的文章,文章于6月8号提交到arxiv上,题目是A Joint Model for Word Embedding and Word Morphology,作者是来自剑桥大学的博士生Kris Cao。


本文最大的贡献在于第一次将词形联合词向量一同进行训练,从某种程度上解决了未登录词(OOV)的词向量表示问题,同时也得到了一个效果不错的词形分析器。


介绍本文模型之前先简单介绍下本文中采用的词向量训练方法,skip-gram with negative sampling(SGNS)。这个方法是word2vec中的一种方法,大概的思路是可参见下图:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


通过用dog这个词来预测其上下文,比如cute、fluffy、barked、loudly,为了更快地收敛,增加负样本,即图中的bicycle和Episcopal这两个与dog无关的词。skip-gram的思路就是通过word来预测上下文context,而negative sampling则是根据当前词构造出一些与之无关的词,作为负样本加速收敛。


接下来介绍本文的模型Char2Vec,将字符作为最小的单元进行研究,因为对于字符这个层次来说,并不会出现OOV词的情况。具体看下图:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在每个单词的首和尾分别添加符号^和$作为标记,将词看作是一个字符序列。在这个序列上用一个正向LSTM和一个反向LSTM得到两组hidden state,每个位置上的字符都对应着两个hidden state,将其拼接起来,然后用一个单层前馈神经网络进行处理,得到该位置上的hidden state,记为h(i)。有了每个字符的表示,接下来用attention机制来构造出词的表示,即学习一个权重系数,来表明这个词的语义与哪个h(i)关系更大,一般来说词干所在的h(i)权重会大一些,词前缀或者后缀并不能表示语义,所以权重会小很多。见下图:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


图中的单词malice、hatred、greed会与序列中的词干spit、spite,前缀^、后缀ful关系就会紧密一些,而与其他错误的字符串关系不大。


通过attention model我们得到了词向量f(w)。剩下的过程就是用skip-gram with negative sampling来训练词向量了。先前的工作都是用lstm处理字符序列来表示整个单词向量,本文并没有这样做,而是将直接使用attention model来获取每个h(i)中的信息,包括一个正向的lstm和反向的lstm,正向的lstm包含了词干和词前缀,反向的lstm包含了词后缀。当我们处理未知的词时,可以将这个词分解为已知的部分和未知的部分,这个模型就可以通过已知的部分来预测整个词的词向量,因此解决了OOV的问题。


实验中测试了该模型的词形分析的能力,尤其是在单词词形很丰富(包括词干、前缀、后缀)的情况下,效果优于一些成熟的分词器。看下图:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在词向量效果测试中,本文模型在semantic测试中表现很差,但在syntactic测试中表现非常好。看下图:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


看得出来本文模型的优势非常明显,优势在于解决了大量处于长尾尾端的合成词的词向量表示问题,通过用未知词的已知部分(词干)来预测该词的词向量,从而解决了word2vec等一系列前人工作中未解决的问题,在英语语境中效果可能没那么好,如果换作是德语或者土耳其语这种词形非常丰富的语言会有更好的效果。在整个任务评测中,可以更好地解决syntactic相似问题,因为引入了词形这个feature可以很好地解决syntactic任务;而在semantic任务中却表现非常差,原因是char-level的词向量模型在捕捉语义上效果本身就不如word-level的模型。可以说,本文在传统词向量模型的基础上考虑加入feature来提升性能,是一种非常积极的尝试,虽然并没有在方方面面上都得到改善,但毕竟是一个探索性的、且非常有意义的工作,值得学习。


来源:paperweekly


原文链接

这篇关于[New Paper]A Joint Model for Word Embedding and Word Morphology的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583663

相关文章

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方