NLP学习笔记(2)

news/2024/7/1 2:14:31
  • 如果你的数据集比较小,最好不要自己训练词向量,容易过拟合,直接download别人在某些语料库上训练好的词向量fix下来比较好
  • 但是如果你的数据集比较大,你可以随机初始化你的词向量并且在训练过程中训练他们
  • window classification是最简单的NLP问题之一,你只是把语料库中用一个window圈起来几个单词,然后预测中间那个单词的类别,可以是情感分析,也可以是地点、时间、人名这些,网络的输入是window中单词的词向量的concatenate,输出是类别
  • max margin loss:每次计算一个正例和一个负例的分数,计算loss,希望正例的分数比负例的分数要大1,也就是说希望正例和负例的分数分得开一点,然后如果足够开,比如相差1以上,那么loss会是0,也就是网络不再更新对这部分已经能正确区分的数据集的参数,而专注于对那些还没预测得足够正确的数据进行梯度下降 在这里插入图片描述
  • 计算机科学中的context free grammars = 语言学家口中的phrase structure grammars = constituency,就是我们学英语学的名词介词形容词等等这些语法,这个是一种用于计算机科学的句法模型。另一种模型就是dependency structure,称之为依存分析,比如barking dog,barking用来修饰dog,就是barking is a dependent of dog, 可以用箭头来表示依存关系:在这里插入图片描述
  • 根据依存关系标记的数据库被广泛使用,称之为treebanks,现在主流语言模型,无论是计算机科学还是语言学,都是基于依存分析(dependency parsing)的
  • 在这里插入图片描述
  • 依存分析中通常为一个句子加一个伪结点,认为他是整个句子的root,这样句中找不到父节点的单词以root为父节点,导致每个单词都有一个父节点。同时注意,不是所有人的箭头都是从父节点指向dependent的,有的人会反过来指,所以要先注意好论文中是怎么解释箭头的方向。 在这里插入图片描述
  • 依存分析的方法有好几种,主流是下面的第四种在这里插入图片描述
  • arc-standard transition-based parsing的做法是如下,当你拿到一个句子,你有三个选择:shift、left arc、right arc,shift是把buffer中最左边的单词送入stack的最右端,left arc和rignht arc是把stack顶端两个单词之一出栈,并且确认依存关系为从右往左还是从左往右。这样就可以对一个句子确认依存关系。每一时刻到底该做shift还是right arc或者left arc,可以用机器学习实现,也就是说,我们有一堆建立好依存关系的treebanks,利用这些treebanks可以对每一个单词产生唯一的指令序列,用这些句子和对应的指令序列来训练,最终希望得到这样一个预测器,以句子为输入,以指令序列为输出,那么这个预测器就可以用于依存分析,对一个句子建立依存关系。在这里插入图片描述
  • 此外,可以对这种分析进行拓展,实际上依存关系可以利用类似于context-free grammars 的理论进一步拓展为好多类依存关系,比如主语对宾语的依存关系,定语对其修饰词的依存关系等等,这些标记被称为part of speech tags(POS),有一些treebanks是带有这些拓展的标记的,用这些treebanks可以训练出可以标记拓展关系的81类预测器,那么这个预测器就可以对句子进行拓展的依存分析。没有拓展的依存分析产生的是un-type dependency tree。
  • 这些预测器的输入特征可以有多种选择,看你建立怎样的模型去利用这样一个stack和buffer的结构来产生下一步的指令,可以是只看top of buffer和top of stack的词性(多数treebanks会给单词标注词性),等等。最简单的是NO search方法,没有细讲,反正知道有各种方法可以使用就行:在这里插入图片描述
  • 这样的依存分析有几个问题:一是特征稀疏,你可能有几百万的数据集,但是你有几千万的feature;第二个是数据集总是不能展示所有情况,你总会遇到数据集中没有的情况;第三个是在从句子的单词中取得特征是,是从一个巨大的哈希表中去查找,虽然是线性时间,但是仍然代价很高。本质上这是由于稀疏引起的而且这是传统机器学习的通病,为了解决这些问题,可以用神经网络的方法来建立紧致的特征表,实验表明用神经网络可以加快10倍左右,代价是准确率有一点点降低,所以如果你要进行的任务文本比较大,选神经网络比较好,如果比较小,选传统方法比较好。 在这里插入图片描述

http://www.niftyadmin.cn/n/3658054.html

相关文章

Silverlight 1.1正式更名为Silverlight 2.0

详情请参看下面两篇Blog:http://weblogs.asp.net/scottgu/archive/2007/11/29/net-web-product-roadmap-asp-net-silverlight-iis7.aspxhttp://blogs.msdn.com/tims/archive/2007/11/29/silverlight-1-1-is-now-silverlight-2-0.aspx

FPN阅读笔记

Feature Pyramid Networks for Object Detection arxiv链接:https://arxiv.org/pdf/1612.03144v2.pdf 网络结构示意图 核心思想是,高级语义信息在靠后的feature map,但是分辨率太小,导致小物体的特征几乎没有了,分辨…

ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)

学习整理了一下(一).功能用HttpHandler实现图片验证码(二).代码如下1. 处理程序文件 ValidateImageHandler.ashx代码如下1 <% WebHandler Language"C#"Class"ValidateImageHandler"%>2 3 usingSystem;4 usingSystem.Web;5 usingSystem.Web.SessionSt…

NLP学习笔记(3)

NMT&#xff08;nerual machine translation&#xff09;任务经常被描述为一个encode-decode过程&#xff0c;输入序列利用RNN进行encode产生一个编码&#xff08;包含句子的语义信息&#xff09;&#xff0c;将这个编码送进decode的RNN产生target的语言序列&#xff0c;这就完…

NLP学习笔记(4)

不要在RNN的水平方向使用dropout&#xff08;虽然有人这么做&#xff0c;但是是用特殊的方法的&#xff09;&#xff0c;但是经常在垂直方向使用dropout初始化参数的时候&#xff0c;LSTM的forget gate的bias给1或2确保不会一开始就遗忘&#xff0c;然后其它的参数要初始化为很…

Asp.net 2.0 自定义控件开发[创建自定义HeaderRow的GridView控件][示例代码下载]

(一). 概述1. 做了个GridViewExtend自定义控件, 通过注册扩展自定义表头事件, 可以任意设置Header的格式.2. 易重用代码, 只要将ExtendGridView.dll 文件添加到项目引用即可. 实现原理&#xff1a;增加一个自定义事件&#xff0c;并将GridView头(HeaderRow)引用作为事件参数…

NLP学习笔记(5)

传统的语音识别模型需要建立一个generative模型&#xff0c;从语言模型中产生单词序列&#xff0c;然后产生tokens&#xff08;音标&#xff09;序列&#xff0c;然后产生语音序列&#xff08;时域或频域的声音序列&#xff09;&#xff0c;然后是计算得到一些特征&#xff08;…

深入浅出话窗体(一)——窗体事件模型(上)

深入浅出话窗体&#xff08;一&#xff09;——窗体事件模型&#xff08;上&#xff09;作者&#xff1a;CSDN 刘铁猛小序&#xff1a;工作中最大的挑战并不是那些Mission Impossible&#xff0c;而是你需要一边保持安静、平衡的心态以专注于工作&#xff0c;一边对抗公司体制、…