-
使用子字(subword)构建单词向量的原因分析---学习笔记
- 传统空格分隔的tokenization技术:不利于模型学习词缀之间的关系。E.g. 模型学到的“old”, “older”, and “oldest”之间的关系无法泛化到“smart”, “smarter”, and “smartest”。
- OOV:out of vocabulary.
- Character embedding作为OOV的解决方法粒度太细
- 补充:Character embedding 字符嵌入
- 提出原因:
- 词向量机制中的词和词之间是独立的,这种独立性假设是有问题的,词之间形式上的相似性会一定程度造成功能的相似性,尤其是在形态丰富的语言中。
- 词表大小的问题:即使有丰富的数据可用,实际存储所有单词类型的向量也是不切实际的。
- 输入是一个单词,输出是该单词的词向量表示
- 字符嵌入模型先训练得到每个字符的字符向量,如果想要得到一个单词的词向量,需要将组成该单词的每一个字符的字符向量输入BiLSTM模型,最终得到该单词的词向量
- 优点:
- 能够解决OOV词问题;
- 可以捕获字符间的结构信息;
- 可以推理出相似结构的词表示
- 缺点:
- 模型必须“从头开始”学习大量词汇(训练时还需要通过LSTM生成词表示,速度比词向量机制要慢)。
- 自然文本表现出数百或数千个时间步长的长距离依赖性。
- 字符序列比字序列长,因此需要更多的计算步骤。
- 测试时虽然可以通过缓存的方法预先生成一些词向量,但是对于OOV词的词表示生成依旧速度慢;
- Subword粒度在词与字符之间,能够较好的平衡OOV问题
-
相关阅读:
JRebel
狂神说Spring学习笔记
Android 系统高度修改定制开机动画显示时间
手把手教你开发律师法律咨询小程序
数据分析知识点搜集(纯粹的搜集)
ROS学习(26)动态参数配置
案例分析背诵点
【步态识别】GaitMPL
Go学习笔记 -- 函数和高阶函数
Linux常用命令— 目录和文件都能操作的命令
-
原文地址:https://blog.csdn.net/weixin_45647721/article/details/126590528