当前位置: 首页 > news >正文

01-语言模型+维特比

1. 什么是语言模型?

语言模型的目标是计算一个句子(或一串词序列)出现的概率。比如,判断“我爱你”和“爱我你”哪个更像人话。

  • 核心思想:利用链式法则,一句话的概率等于每个词在给定前面所有词时出现概率的乘积。
    P(我, 爱, 你) = P(我) × P(爱|我) × P(你|我, 爱)

  • 实际简化(N-gram模型):计算“条件概率”时,不可能回溯无限长的历史。通常假设一个词只与它前面的N-1个词相关。

    • Uni-gram (1-gram):词与词完全独立。P(我,爱,你) ≈ P(我)P(爱)P(你)(不考虑上下文,效果差)
    • Bi-gram (2-gram):只与前一个词相关。P(我,爱,你) ≈ P(我)P(爱|我)P(你|爱)
    • Tri-gram (3-gram):与前两个词相关。这是最常用的折中选择。
  • 应用

    • 机器翻译:译成“苹果很好吃”还是“苹果很吃好”?

2. 维特比算法——经典案例:词性标注

我们有一个隐马尔可夫模型(HMM),它由两部分构成:

  1. 转移概率:一个词性后面跟另一个词性的可能性。这部分由语言模型(通常是Bi-gram)提供。
  2. 发射概率:某个词性“产生”出当前单词的可能性。

任务:给句子“我 爱 编程”标注词性(我/代词,爱/动词,编程/名词)

  1. 定义状态:词性集合 {代词, 动词, 名词, 形容词…}
  2. 定义观测:单词 {我, 爱, 编程…}
  3. 定义概率
    • 转移概率 (语言模型)P(动词|代词)= 0.4,P(名词|动词)= 0.3…
    • 发射概率P(我|代词)= 0.8,P(爱|动词)= 0.9,P(编程|名词)= 0.7…
  4. 维特比算法执行过程
    • 初始化 (第1个词“我”):计算“我”是各种词性的概率。V(代词) = P(代词) × P(我|代词)。假设“代词”得分最高。
    • 迭代 (第2个词“爱”):对每个可能的当前词性(如“动词”),计算:
      上一最佳路径概率 × P(当前词性|上一词性) × P(爱|当前词性)
      关键:假设上一词性是“代词”时分数最高,那么到达“动词”的最佳路径就是...代词→动词。其他如...名词→动词的路径就被丢弃。
    • 终止:处理完最后一个词后,回溯,得到整条最优路径:代词 → 动词 → 名词。

如果没有维特比:枚举代词/动词/名词代词/名词/动词… 共27种,手工可行,但真实情况有上百种词性,句子有20个词时,组合数远超宇宙原子数。

有了维特比:每次只保留N条候选路径(N=词性个数),计算量线性增长,秒出结果。

总结与核心要点

概念角色定位解决的问题输出
语言模型定义“什么是合理的序列”
(提供打分标准
计算某条路径(词序列、词性序列)的合理程度。即P(序列)一个概率分数
维特比算法寻找“得分最高的序列”
(提供搜索方法
在指数级爆炸的可能性中,高效找到全局最优路径。最优的隐藏状态序列
http://www.cnnetsun.cn/news/2086914.html

相关文章:

  • 不只是安装:用VSCode在Windows 10上配置ROS开发环境,实现高效调试
  • Vue Infinite Loading深度解析:高性能无限滚动架构优化策略
  • 为什么92%的嵌入式团队卡在LLM插件安装环节?揭秘GCC 11.4符号重定义陷阱与__attribute__((section))绕过方案
  • 抖音无水印下载工具:3分钟快速掌握批量下载技巧
  • Vivado FFT IP核配置避坑指南:从数据格式到AXI时序的实战经验分享
  • Qwen3-TTS语音设计世界开源大模型部署:MIT协议下企业可用方案
  • BilibiliDown终极指南:5个步骤轻松下载B站任何视频
  • 如何快速创建Unity透明窗口:终极桌面悬浮效果指南
  • CentOS 6老系统维护指南:当阿里云镜像源失效后,如何手动切换到vault.centos.org源
  • Jmeter压力测试前,如何用Java代码快速准备1000个有效登录Token?
  • Flux2-Klein-9B-True-V2新手指南:Negative Prompt避坑与高质量提示词写法
  • 【嵌入式进阶】告别“屎山”代码!资深老鸟都在用的5个C语言神级技巧
  • 从零配置一个UVC摄像头:手把手解析VC和VS接口描述符(附Wireshark抓包分析)
  • PHP V6 单商户常见问题——数据库模式修改 sql-mode
  • 部署模型总爆显存?保姆级教程:用PyTorch Profiler和简单公式预估你的最大Batch Size
  • 用树莓派5的串口做个智能硬件小项目:读取传感器数据并发送到电脑
  • 云原生入门系列|第6集:Ingress网关全网保姆级教程!零基础搞懂K8s外部域名流量入口
  • 避开这些坑!蓝桥杯单片机操作24C02存储器的5个常见错误与调试技巧
  • 告别编译报错:Keil工程路径中文用户名终极处理指南
  • 科学Python开发环境:从代码编辑到数据分析的无缝工作流
  • 告别配置地狱:Seata 1.4.2 + Nacos 单DataId配置实战,让你的微服务事务管理清爽起来
  • 别再死记硬背了!用PowerDesigner/MySQL Workbench实战ER图转关系模式(附完整SQL脚本)
  • LangChainHub实战:从Prompt、Chain到Agent的完整应用指南与案例解析
  • 如何高效使用炉石传说自动化脚本:从入门到精通
  • LightGlue:自适应剪枝如何重塑深度特征匹配的性能边界
  • iPad 应专注触摸操作,MacBook 以键盘优先,苹果产品定位该明确了!
  • 告别拥挤度计算:用Python从零实现NSGA-III算法(附完整代码与可视化)
  • GetQzonehistory终极指南:如何完整备份你的QQ空间记忆
  • python regex
  • Vue无限滚动终极实战:3大高效加载策略深度解析