神经网络模型语言模型
神经网络模型
释义:
与ngram模型相似使用,前n个词预测下一个词,输出在字表上的概率分布;过程中得到了词向量这一副产品
神经网络语言模型开篇作
神经网络的分类
自回归语言模型:
用前n个字预测下一个字
单向,从左向右预测,或反向使用
有利于生成式任务
自编码语言模型:
用整段文本,预测文本中的某一个字(完形填空)
双向,更好的利用文本信息
引入了[mask],在fine-tune中不出现
神经网络模型和Ngram对比
优点:
1.对于输入长度的要求更低,更能适用;因为Ngram的参数和长度有非常大的关系,多一个字就会新增相当的参数;而神经网络模型不会
2.神经网络模型能够计算词之间的相似性,而Ngram则不行,无法识别词之间的相似性
3.神经网络模型自带平滑,即使是未出现的组合和词,计算的概率也不会为零
缺点:
1.在运算的效率上,ngram比神经网络模型要高很多;ngram计算时,只需要遍历找到概率值计算即可;神经网络模型对于每一个词都需要计算一次。
应用一-话者分离
释义: 根据说话内容判断说话人,常用于语言识别系统中,判断录音对话中角色,如客服对话录音,判断坐席或客户;本质上为文本分类任务。
步骤
1.对于每个类别,使用类别语料训练语言模型
2.对于一个新输入的文本,用所有语言模型计算成句概率
3.选取概率最高的类别为预测类别
对比优劣
相比一般文本分类模型,如贝叶斯,rf,神经网络等
优势:
1.每个类别模型互相独立,样本不均衡或样本有错误对其他模型没有影响
2.可以随时增加新的类别,而不影响旧的类别的效果
劣势:
1.效果上讲:一般不会有显著优势
2.效率上讲:一般会低于统一的分类模型
应用二-数字归一化
释义: 将一个文本中的数字部分转化成对读者友好的样式,常见于语言识别系统后,展示文本时使用。
下面举例:
1.秦皇岛港煤炭库存量在十一月初突然激增,从四百五十四点九万吨增加到七百七十三点四万吨,打破了一九九九年以来的记录
2.十一届三中全会、"十二五"规划、一贫如洗、二龙戏珠
解释:
由上面的例子,我们知道有些汉语数字是适合转阿拉伯数字的,有的情况不适合,我们需要用语言模型,去判断或者计算使用那种数字的概率高
步骤:
- 找到数字形式符合规范的文本作为原始语料
- 用正则表达式找到数字部分(任意形式)
- 将数字部分依照其格式替换为<阿拉伯数字><汉字数字><汉字连读>等token
- 使用带token文本训练语言模型
- 对于新输入的文本,同样使用正则表达式找到数字部分,之后分别带入各个token,使用语言模型计算概率
- 选取概率最高的token最为最终数字格式,按照规则转化后填入原文本
示例
中国共产党第十五次全国代表大会于一九九七年九月十二日召开,各地方代表一一发言
中国共产党第<汉字数字>次全国代表大会于<阿拉伯数字>年<阿拉伯数字>月<阿拉伯数字>日召开,各地方代表<汉字连续>发言
训练时,将当成一个字训练语言模型
预测时,中国共产党第十五次全国代表 <- 原句
中国共产党第<汉字数字>次全国代表
中国共产党第<阿拉伯数字>次全国代表
语言模型判断最高概率
中国共产党第<汉字连续>次全国代表
若需
要转化格式则通过规则完成
,模型只起到判断作用
应用三-文本打标
释义: 给文本添加标点或语气停顿等,可以理解为一种粗粒度的分词,常用于语音合成任务中,辅助做出发音的停顿。语言模型都能够实现。
示例:
我最近抽了点时间读了一本关于马尔可夫生平的书
停顿:
我最近 抽了点时间 读了一本 关于 马尔可夫生平 的书
标点:
我最近抽了点时间,读了一本关于马尔可夫生平的书。
实现逻辑:
-
需要有标注数据,在停顿处添加token:
如: -
我最近 < s > 抽了点时间 < s > 读了一本 < s > 关于 < s > 马尔可夫生平 < s > 的书
3.带token训练语言模型
4.预测过程:
选定一个窗口长度,首先预测第一次停顿位置
我< s >最近抽了点时间 ppl:10
我最< s >近抽了点时间 ppl:20
我最近< s >抽了点时间 ppl:5 <- 选择此处作为第一次停顿
....
之后从"抽了点时间"开始向后重复此过程
;就可以获得分好的句子。
总结:
本质为序列标注任务
;可以依照类似方式,处理分词、文本加标点、文本段落切分等任务;分词或切分段落只需要一种token;打标点时,可以用多种分隔token,代表不同标点