Lecture 6 Sequence Tagging: Hidden Markov Models

news2025/1/11 17:58:00

目录

      • Problems with POS Tagging 词性标注的问题
      • Probabilistic Model of HMM HMM的概率模型
      • Two Assumptions of HMM HMM的两个假设
      • Training HMM 训练HMM
      • Making Predictions using HMM (Decoding) 使用HMM进行预测(解码)
      • Viterbi Algorithm
      • HMMs in Practice 实际中的HMM
      • Generative vs. Discriminative Taggers 生成式vs判别式标签器

Problems with POS Tagging 词性标注的问题

  • Exponentially many combinations: |Tags|M, for length M 组合数量呈指数级增长:|Tags|M,长度为M

  • Tag sequences of different lengths 标记不同长度的序列

  • Tagging is a sentence-level task but as humans we decompose it into small word-level tasks 标注是句级任务,但作为人类,我们将其分解为小型的词级任务

  • Solution:

    • Define a model that decomposes process into individual word-level tasks steps. But this takes into account the whole sequence when learning and predicting. 定义一个模型,将过程分解为单个词级任务步骤。但在学习和预测时,考虑整个序列
    • This is called sequence labelling, or structured prediction 这被称为序列标注,或结构预测

Probabilistic Model of HMM HMM的概率模型

  • Goal: Obtain best tag sequence t from sentence w 目标:从句子w中获取最佳标签序列t

    The formulation 表述公式:

    Applying Bayes Rule 应用贝叶斯定理:

    Decomposing the Elements 分解元素:

    Probability of a word depends only on the tag 单词的概率只取决于标签:

    Probability of a tag depends only on the previous tag 标签的概率只取决于前一个标签:

Two Assumptions of HMM HMM的两个假设

  • Output independence: An observed event(word) depends only on the hidden state(tag) 输出独立性:观察到的事件(词)只取决于隐藏状态(标签) ->

  • Markov assumption: The current state(tag) depends only on the previous state 马尔科夫假设:当前状态(标签)只取决于前一个状态->

Training HMM 训练HMM

  • Parameters are individual probabilities: 参数是单个概率

    • Emission Probabilities 发射概率 (O):
    • Transition Probabilities 转移概率 (A):
  • Training uses Maximum Likelihood Estimation: Done by simply counting word frequencies according to their tags. 训练使用最大似然估计:只需根据标签计算单词频率

  • E.g.

  • The tag for the first word: 第一个单词的标签

    • Assume there is a <s> symbol at the start of the sentence 假设句子开始处有一个符号
    • E.g.
  • Unseen (word, tag) and (tag, previous_tag) combinations: Applying smoothing techniques 未见过的(word, tag) 和 (tag, previous_tag) 组合:应用平滑技术

  • Output:

    • Transition Matrix 转移矩阵:

    在这里插入图片描述

    • Emission(Observation) Matrix 发射(观察)矩阵:

    在这里插入图片描述

Making Predictions using HMM (Decoding) 使用HMM进行预测(解码)

  • Simple idea: For each word, take the tag that maximizes . Do it left-to-right greedily 简单的想法:对于每个单词,选择使最大的标签。从左到右贪婪地执行

  • However this is wrong. The goal is to find , not individual terms. 但这是错误的。目标是找到,而不是单个项。

  • Correct way: Consider all possible tag combinations, evaluate them, take the max. 正确的方法:考虑所有可能的标签组合,评估它们,取最大值。

Viterbi Algorithm

  • Use Dynamic Programming. 使用动态规划。

    • We can still proceed sequentially but need to be careful. 我们仍然可以顺序进行,但需要小心。
  • POS tag: can play 词性标签:can play

  • Best tag for can is: can的最佳标签是:

  • Suppose best tag for can is NN. To get the tag for play, we can take , but this is wrong 假设can的最佳标签是NN。为了得到play的标签,我们可以取,但这是错误的

  • Instead, we keep track of scores for each tag for can and check them with the different tags for play 相反,我们记录下can的每个标签的分数,并用play的不同标签检查它们

  • E.g.

    在这里插入图片描述

  • Complexity: O(T2N), where T is the size of the tagset, and N is the length of the sequence. 复杂度:O(T2N),其中T 是标签集的大小,N 是序列的长度。

    • T * N matrix, each cell performs T operations T * N矩阵,每个单元执行T次操作
  • Viterbi Algorithm works because of the independence assumptions that decompose the problem Viterbi算法之所以有效,是因为独立性假设将问题分解了

  • PsuedoCode: 伪代码

alpha = np.zeros(M, T)
for t in range(T):
    alpha[1, t] = pi[t] * O[w[1], t]

for i in range(2, M):
    for t_i in range(T):
        for t_last in range(T):
            s = alpha[i-1, t_last] * A[t_last, t_i]
            if s > alpha[i, t_i]:
                alpha[i, t_i] = s
                back[i, t_i] = t_last
best = np.max(alpha[M-1, :])
return backtrace(best, back)
  • Good practices:
    • Work with log probabilities to prevent underflow 使用对数概率防止下溢
    • Vectorization (User matrix-vector operations) 向量化(用户矩阵-向量运算)

HMMs in Practice 实际中的HMM

  • Examples previously are based on bigrams called first order HMM 前面的例子是基于二元的,称为一阶HMM

  • State-of-the-art model use tag trigams called second order HMM 最先进的模型使用标签三元组,称为二阶HMM

    • Viterbi is now O(T3N)
  • Need to deal with sparsity: Some tag trigram sequences might not be present in training data 需要处理稀疏性:一些标签三元组序列可能在训练数据中不存在

    • Use interpolation 使用插值:

    • where

  • With additional features, HMM model can reach 96.5% accuracy on Penn Treebank 带有额外特征的HMM模型可以在Penn Treebank上达到96.5%的准确率

Generative vs. Discriminative Taggers 生成式vs判别式标签器

  • HMM is generative HMM是生成式的:

    • Training HMM can generate data (sentences) 训练HMM可以生成数据(句子)
    • Allows for unsupervised HMMs: Learn model without any tagged data 允许无监督HMM:无需任何标注数据即可学习模型
  • Discriminative models describe 判别模型直接描述 directly

    • Supports richer feature set, generally better accuracy when trained over large supervised datasets 支持更丰富的特征集,在大型监督数据集上准确性更高:

    • E.g. Maximum Entropy Markov Model (MEMM), Conditional Random Field (CRF) 最大熵马尔可夫模型(MEMM),条件随机场(CRF)。

    • Most deep learning models of sequences are discriminative 大多数序列的深度学习模型是有区别的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/608441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地震勘探基础(五)之地震资料数字处理

地震资料数字处理 地震勘探主要包括地震资料野外采集&#xff0c;地震资料数字处理和地震资料地质解释三大部分。其中地震资料数字处理需要利用高性能的超级计算机和先进的处理软件系统。地震资料的质量和成像精度直接决定了油、气勘探的成功率。 地震资料数字处理的主要目的…

快速解读GC日志

本文介绍GC日志的输出格式, 以及如何解读GC日志, 从中提取有用的信息。我们通过 -XX:UseSerialGC 选项,指定JVM使用串行垃圾收集器, 并使用下面的启动参数让 JVM 打印出详细的GC日志: -XX:PrintGCDetails -XX:PrintGCDateStamps -XX:PrintGCTimeStamps 这样配置以后&#xff…

postgreSQL/kingbase limit分页查询,结果乱序

postgres/kingbase limit分页查询&#xff0c;结果乱序 现象排查总结解决办法1.session中关闭synchronize_seqscans2.查询时带上order by 现象 我使用kingbase8&#xff0c;使用select * from xx limit 0,1000 每次查出来的结果都不一样。 排查 1.由于kingbase的文档较少&am…

Zinx框架学习 - 读写协程分离

Zinx - V0.7 读写协程分离 之前connection使用StartReader对客户端的数据接下来我们就要对Zinx做⼀个⼩⼩的改变&#xff0c;就是与客户端进修数据交互的Gouroutine由⼀个变成两个&#xff0c;⼀个专⻔负责从客户端读取数据&#xff0c;⼀个专⻔负责向客户端写数据。这么设计有…

Vue3 | Element Plus resetFields不生效

Vue3 | Element Plus resetFields不生效 1. 简介 先打开创建对话框没有问题&#xff0c;但只要先打开编辑对话框&#xff0c;后续在打开对话框就会有默认值&#xff0c;还无法使用resetFields()重置。 下面是用来复现问题的示例代码和示例GIF。 <script setup> import…

javascript基础二十一:说说你对BOM的理解,常见的BOM对象你了解哪些?

一、是什么 BOM (Browser Object Model)&#xff0c;浏览器对象模型&#xff0c;提供了独立于内容与浏览器窗口进行交互的对象 其作用就是跟浏览器做一些交互效果,比如如何进行页面的后退&#xff0c;前进&#xff0c;刷新&#xff0c;浏览器的窗口发生变化&#xff0c;滚动条…

Redis入门到实战笔记-Java客户端

这里写目录标题 哪些好用的客户端Jedis连接池 Spring Data Redis依赖修改默认序列化方式修改序列化代码&#xff1a;反序列化方式 哪些好用的客户端 Jedis 依赖&#xff1a; <dependency><groupId>redis.clients</groupId><artifactId>jedis</artif…

原来!自动化测试项目--的完整测试流程是这样的……

目录 需求分析&#xff1a; 整体流程图&#xff1a; 分析流程&#xff1a; 测试设计&#xff1a; 测试分析&#xff1a; 测试设计&#xff1a; 用例设计&#xff1a; 用例执行和回归 用例执行标准 bug回归标准 补充用例 质量分析 bug定位 前端定位&#xff1a; …

Axios后端程序员快速入门简述

axios 它的底层是用了 XMLHttpRequest&#xff08;xhr&#xff09;方式发送请求和接收响应&#xff0c;xhr 相对于之前讲过的 fetch api 来说&#xff0c;功能更强大&#xff0c;但由于是比较老的 api&#xff0c;不支持 Promise&#xff0c;axios 对 xhr 进行了封装&#xff0…

qt5.15.2 配置 android

第一步 安装jdk&#xff0c;最好安装 jdk11&#xff0c;因为他是与qt5.15.2这个能匹配上的 右击电脑&#xff0c;选择属性&#xff0c;选择高级系统设置&#xff0c;选择环境变量。 点击新建&#xff0c;变量名为JAVA_HOME,变量值为java安装的路径。我的如下图 JAVA_HOME D:\P…

Lecture 4 Text Classification

目录 Classification 分类Text Classification Tasks 文本分类任务Topic Classification 主题分类Sentiment Analysis 情感分析Native-Language Identification 母语识别Natural Language Inference 自然语言推理 Building a Text Classifier 构建文本分类器Choosing a Classif…

JDK、Tomcat、Redis、MySQL集齐,教你如何搭建高效性能测试项目!

目录 前言&#xff1a; 1. JDK 的安装 2. Tomcat 的安装 3. Redis 环境搭建 4. 数据库的安装 5. WEB 项目搭建 6. 性能测试 7. 总结 前言&#xff1a; 作为一个软件工程师&#xff0c;怎能不知道如何搭建一个性能测试项目呢&#xff1f;性能测试是一个软件工程师不可或…

【Python从入门到进阶】23.urllib使用post请求百度翻译

接上篇《22、urllib库基本使用》 上一篇我们介绍了实现爬虫的必备基础——urllib库的学习。本篇我们来使用urllib实现百度翻译的效果。 一、在线翻译服务 当我们需要翻译一段文字时&#xff0c;百度翻译是一个很常用的工具。它是由百度公司开发的一款在线翻译服务&#xff0c…

k8s pv与pvc

1.前言 PV 是 Kubernetes 集群中的一种资源对象&#xff0c;它代表着一块物理存储设备&#xff0c;例如磁盘、网络存储或云存储等。PV 可以被多个 Pod 共享&#xff0c;并且可以独立于 Pod 存在。PV 可以配置不同的访问模式 (Access Modes)&#xff0c;例如 ReadWriteOnce、Re…

传输优化是非谈

曾倾向于优化异常流的做法竟然最保守&#xff0c;异常是小概率事件&#xff0c;处理它只保障可用性&#xff0c;而不是优化性能&#xff0c;恰恰需要加速大概率的正常流处理&#xff0c;数据中心传输优化投入大量精力在丢包检测和重传上的思路需重估。 为 1% 的可能性而增加的…

uniapp注册模板

注册模板 学生注册 <template><view class"content"><uni-forms ref"from" :modelValue"formData"><uni-forms-item label"学号" name"num" :rules"[{required: true,errorMessage: 学号不能为…

华为OD机试真题 Java 实现【比赛评分】【2023 B卷 100分】,附详细解题思路

一、题目描述 一个有N个选手参加比赛&#xff0c;选手编号为1~N&#xff08;3<N<100&#xff09;&#xff0c;有M&#xff08;3<M<10&#xff09;个评委对选手进行打分。打分规则为每个评委对选手打分&#xff0c;最高分10分&#xff0c;最低分1分。 请计算得分最…

OpenMMLab-AI实战营第二期——3.基于RTMPose的耳朵穴位关键点检测(Colab+MMPose)

文章目录 1. Colab和Google云端硬盘1.1 建立项目文件和jupyter文件1.2 Colab运行时选择1.3 关联Colab中的文件和Google云端硬盘的文件 2. Colab和MMPose2.1 环境配置2.2 配置文件修改 3. Colab相关知识 1. Colab和Google云端硬盘 参考&#xff1a; 利用Colab上的TPU训练Keras…

RVOS操作系统内存管理简单实现-02

RVOS操作系统内存管理简单实现-02 内存管理分类内存映射表&#xff08;Memory Map)Linker Script 链接脚本语法基于符号定义获取程序运行时内存分布 基于 Page 实现动态内存分配代码讲解调试 扩展 本系列参考: 学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春 整理而来&#x…

6-3 简单贪心(思想!不难)(看看这就这?)

贪心入门 贪心概念 贪心算法(又称贪婪算法)是指&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解&#x…