自然语言处理中的Character Embedding技术
发布时间
阅读量:
阅读量
于2013年时,Tomas Mikolov提出了一种称为Word Embedding的技术,这种技术能够更有效地表达了单个词的意义,即为Word2Vec方法,并获得了语法与语义相似性上的最佳成绩。随后,提出了Doc2Vec方法,由此得到了Word以及Doc层面相应的嵌入方式。而比单个词更细致层次上,则是单个字符层面的存在
什么是character embedding?
引用量573
引用量573
文中定义了70个字符,包括26个英文字母、10个数字、33个特殊字符和换行字符。
abcdefghijklmnopqrstuvwxyz0123456789 -,;.!?:’’’/|_@#$%ˆ&*˜‘±=<>()[]{}

引用量906
引用次数为906

在英语中(所有字母由26个构成),当考虑大小写字母时(数量变为52),而加入特殊符号则会增加更多的词汇数量。一旦这些字符被嵌入到模型中(每个词都能生成向量),即便是一个OOV词也能被表示出来。尽管如此,在这种情况下(模型仅能处理已见过的词汇),它仍然无法理解未见过的新词汇或拼写错误的情况。此外还具有很好的适应性特点(能够纠正拼写错误)、以及能够识别新的符号和未知术语的能力。
它胜过word2vec嵌入,在处理不常见的单词方面表现更为出色;这是因为后者由于缺乏足够的训练机会而难以有效处理这些罕见词汇。除了这点之外,在字符嵌入方面仅拥有少量向量元素的存在,则有助于降低整体模型复杂度的同时显著提升了性能(尤其是在速度指标上)。
什么时候用character embedding?
- Text Classification
- Language Model
- Named Entity Recognition
如何使用?
Character Embedding
- 为字符列表创建一个索引。例如字母表中的A-Z字母以及一些特殊符号如@和#。
- 将每个字符映射为其对应的1-hot向量表示以构建序列模型。识别不清或空白的字符,则将其映射为全零向量。
- 通过三层一维卷积层(参数可调)来捕捉序列中的局部特征。
Sentence Embedding
- CNN层后添加双向LSTM
- LSTM之后添加dropout层
参考链接
Additionally, why is it essential to understand Character Embedding besides Word Embedding?
全部评论 (0)
还没有任何评论哟~
