nlp期末概念复习
概率模型
- 隐马尔科夫,viterbi
- 贝叶斯
- 平滑技术:处理数据矩阵稀疏问题,事件可能在样本库中未出现
- 拉普拉斯平滑
- Good-Turing平滑
词性标注
- 词性标注:给定一个词序列,确定每个词的词性
- 信息来源:词本身,上下文
- 马尔科夫词性标注器,一阶马尔科夫链
- 基于转换的词性标注:让计算机学习修正错误的过程,这个过程可以用转换规则形式记录下来,然后用学习得到的转换规则进行词性标注
语言模型
- 语言模型是用来计算一个句子的概率的概率模型
- ngram
- 模型稀疏问题
- 分子平滑
- 分母回退
- 增加n加剧稀疏问题,同时增大模型体积
- 神经网络模型
- onehot -> 词向量 -> 隐藏层 -> 输出层softmax
- 无稀疏问题,不用存ngram
- 窗口太小
- RNN
- 可处理任意长度句子,第t步的计算(理论上)使用了前面多步的信息;模型体量不随着输入变长而增加;每一步使用同一个W,降低计算量。
词袋模型
文本(段落或者文档)被看作是无序的词汇集合,词与词之间概率分布条件独立。
TF-IDF
句法解析
- 句法分析的思想是能够根据某种语法给出一个句子的句法分析树
- 概率句法分析:在基于某种语法的句法分析中,以概率的形式表示每个分析结果的可能性,或者只返回最可能的分析结果
- 概率上下文无关文法:位置不变性,上下文无关性,上下文无关性
- 句子概率:可以直接由一个语言模型构造一个句法分析模型:P(s)=sumP(s,t)
- 最佳句法分析:可以通过使用内部算法寻找总体最优来构建一个Viterbi风格的算法,这个算法能够找到句子最可能的分析,同时记下给出这个总体最优的规则。
- 训练:EM训练算法,在这个体系结构内找到分配给不同语法规则的最优概率
- 分析树的概率:把构造它的各个子树的规则概率相乘即可
- 依存句法:采用词之间的依存关系来描述语言结构,这样的一个框架称为依存句法。在依存句法中,某个词是句子的中心词,其它的词或者依赖于这个词,或者依赖于那些通过一系列依存关系与中心词有联系的其它词
- 在传统的句法分析器中,作为分析结果的句法分析树通常被送到下游的语义和世界知识模型中,并由它们做出选择。一个统计句法分析器通常在运行的过程中使用各种扩展的词语符号和类别搭配来代替语义和世界知识,以进行消歧,并给出一个比率来表示各种不同的分析作为实际分析的可能性。
- 树库:经过正确句法分析的句子集合
分布式表示
-
计算机表示词意
- WordNet词典:包括近义词(synonym)和上下位关系词(hypernym——“is a”关系)。词意差别粒度太小,难以更新,专业人员手工维护,主观因素大,无法量化相似性。
- one-hot离散表示,无法体现词的含义。
- 根据上下文表示词意,分布式语义:一个词的含义可以通过常和它共同出现的词来体现。上下文是这个词周围的一组词(固定窗
口大小)。使用词的多个上下文创建一个词的表示。
-
word2vec
- 将一个固定大小的词汇表中的每一个词用向量表示,使用c(中心词)和o(上下文词)的词向量相似度,计算在给定c的前提下,o的概率(反之亦然),通过不断调整词向量来最大化这个概率。
- 目标函数(SG记错了考试写错力)
- 训练模型,梯度下降
-
两种模型
- SG 根据中心词预测上下文
- CBOW 根据上下文预测中心词
-
提高效率方法
- 层次softmax
- 负采样
-
glove
IE
NER:一种从较大的基于文本的非结构化数据中识别基本信息片段并将其分类为预定义类别(如人名、组织、位置)的方法。
- 基于模式的NER
- 基于字典的NER:将输入文本中的单词与字典中的单词进行匹配。如果找到匹配项,则将相应的实体类型分配给包含匹配词的文本段。
- 语法解析树:我们可以基于语言模式将自然语言句子解析成语法树,并使用语法树进行命名实体识别。
- 基于正则表达式的NER:我们可以使用通用模式来使用正则表达式来匹配特定类型的实体。
- Feature-based NER
- 条件随机场CRF:将NER建模为序列标记任务,为每个单词分配标签,并通过标签识别实体。特征方程\(f(x,y_i,y_{i-1},i)\),\(y_i\)是标签,\(x\)是单词,\(i\)是单词位置。
- NER子任务
- 平面NER(简单实体抽取)。
- 嵌套NER。
- 不连续NER。
- deep learning
- 序列标记方法LSTM-CRF。文本中的每个单词都被视为序列中的输入,并为每个单词分配一个标签,以指示它所属的实体类型。
无法对嵌套实体和非连续实体建模。 - 机器阅读理解(MRC)方法。该范式通过从文本中提取关键信息来回答一系列关于实体类型的问题,将NER任务转化为阅读理解问题。
将NER任务转换为MRC任务,每种实体类型用自然语言查询表示,通过回答这些查询提取实体。预测的起始点和结束点就是对应实体的起始点和结束点。
需要为每个类别添加查询,查询影响预测效果 - 令牌对方法。通过在令牌之间建立关系来识别命名实体。在该方法中,文本中每两个标记之间都有一个预测目标,表示它们之间是否存在实体边界。
用头部令牌和尾部令牌表示一个跨度,然后与交互层和分类层连接得到多头矩阵。令牌对可以很自然地解决嵌套NER和不连续NER的问题。
需要为每个实体类别生成标题,建模比较复杂。 - 生成式方法:将命名实体识别视为文本生成任务。这些方法利用生成预训练模型的功能在统一框架中处理三种不同类型的NER任务。
生成方法的推理是缓慢的,建模更为复杂。
- 序列标记方法LSTM-CRF。文本中的每个单词都被视为序列中的输入,并为每个单词分配一个标签,以指示它所属的实体类型。
- tagging scheme
- BIO format (Beginning, Inside, Outside)
- BIESO format (Beginning, Inside, Ending, Single, Outside)
RE:从文本中提取出实体之间的关系的任务。
-
手工模式。优点人类模式倾向于高精度,可以针对特定领域进行定制,易于调试:缺点人为模式通常召回率低,需要为每个关系手工构建模式,难以编写,难以维护,依赖于领域,需要更高的准确性。
-
监督学习。定义输出标签的清单,包括关系检测和关系分类;收集标记训练数据:比如ACE关系分类数据集;定义特征表示:实体类型;选择分类器:Naïve贝叶斯,SVM;评估结果。
- 基于特征的。需要标记数据,其中每对实体提及都用一种预定义的关系类型标记。
- 核方法。核函数被设计用来计算两个关系实例表示之间的相似性,序列核•语法树核•依赖树核•依赖图路径核•复合核
- 如果测试与训练足够相似,可以使用足够多的手工标记训练数据获得较高的准确性。有监督的模型很脆弱,不能很好地泛化到不同的领域
-
如何应用统计分类器进行关系提取?
- 预处理原始文档
- 运行NER
- 运行任何其他辅助工具,如POS标注、依赖解析
- 对于所有实体对(每个句子或段落内):判断它们是否相关(二元分类)
- 对于相关实体对:对关系类型进行分类
-
自举法。双迭代模式关系扩展:给定一组好的模式,可以找到一组好的元组(遵循特定关系类型的实体对);给定一组好的元组,就可以学习一组好的模式。
可以发现更多的关系。模式集在每次迭代中变得更容易出错,在生成新模式时需要找到泛化元组出现上下文的最佳实践,扩展到新的关系类型需要额外的种子模式,需要手动编写 -
基于聚类的方法。
- 对文本语料库中的命名实体进行标记(使用命名实体识别标记器)
- 形成共同出现的命名实体对并记录其上下文
- 计算步骤2中识别的对之间的上下文相似度
- 使用上一步计算的相似度值,对这些对进行聚类
- 由于这些聚类中的每个聚类代表一个关系,因此自动为每个聚类分配一个标签,描述它所代表的关系类型
- 人类模式通常召回率低,需要大量工作来考虑所有可能的模式,我们希望更好的准确性
-
deeplearning
- CNN 单词嵌入和位置嵌入连接在一起
- RNN