[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

相关文章

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

Java利用poi实现word表格转excel

《Java利用poi实现word表格转excel》这篇文章主要为大家详细介绍了Java如何利用poi实现word表格转excel,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、每行对象类需要针对不同的表格进行对应的创建。package org.example.wordToEx

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

Python中__new__()方法适应及注意事项详解

《Python中__new__()方法适应及注意事项详解》:本文主要介绍Python中__new__()方法适应及注意事项的相关资料,new()方法是Python中的一个特殊构造方法,用于在创建对... 目录前言基本用法返回值单例模式自定义对象创建注意事项总结前言new() 方法在 python 中是一个

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`