需要源码请点赞关注收藏后评论区留言私信~~~

一、统计分词

统计分词基本逻辑是把每个词语看做由单字组成,利用统计学原理计算连接字在不同文本中出现的次数,以此判断相连字属于特定词语的概率。

二、隐马尔可夫模型

当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态,那么此随机过程通常称之为马尔可夫过程。隐马尔可夫模型(Hidden Markov Model:HMM)是含有隐含且未知参数的马尔可夫过程。

下图表示了隐马尔可夫模型隐藏变量和观测变量相互之间的依赖关系,在任意时刻,观测变量仅仅依赖于隐藏变量,与其他隐藏状态变量和观测变量的取值没有直接关联,同时,特定时刻隐藏状态仅依赖于紧邻上一时刻隐藏状态,与其他状态无关

三、商务问题描述

假定某公司销售竞赛指导委员会从n个部门选取员工参加销售业务竞赛,每个部门有m类不同销售能力的员工组成,初始状态下随机选择一个部门后再随机挑选一名职工,职工的类型可以观测,但职工所在的部门为未知信息,第一名员工选择完后,继续按照随机概率选择下一个部门和下一名员工,依次循环知道选择的员工数量满足竞赛人员挑选要求为止

在这个实例中,隐马尔可夫模型可以表示为

1:部门状态信息 n

2:员工的销售能力状态 m

3:从一个部门迁移到另一个部门的转移概率

4:从特定部门选择特定类型的员工概率

5:初始概率分布

隐马尔可夫模型重点解决的问题包括

1:如何确定观测序列的生成概率

2:观测序列已知的前提下 如何优化参数并最大化观测序列的生成概率

3:如何优化隐藏状态序列 从而实现输出期望值观测序列

四、维特比算法

维特比算法主要用于解决优化隐藏状态序列从而实现输出和期望值观测序列的问题

维特比算法的基本逻辑:

(1)如果最短(或概率最大)路径P经过特定节点G,那么从这条路径起点S到节点G的子路径M,是起点S到节点G之间的最短路径。

(2)从起点S到终点E路径必定经过i时刻的某个状态,如果记录起点S到该状态所有节点的最短路径集合,整体最短路径必经过集合中的某一条。

(3)假定从状态i到状态i+1,起点S到状态i各节点的最短路径已知,计算S到i+1状态的节点的最短路径可以分解为从S到i状态的最短路径,以及从i状态节点到i+1状态节点的最短路径。

下面是利用维特比算法解决上面的商务问题的结果

由结果可知 最优化的部门选择序列应该是先从第二个部门开始,其次是第一个部门,最后是第三个部门(索引从0开始)

五、代码

部分代码如下 需要全部代码请点赞关注收藏后评论区留言私信~~

import numpy as np#维特比算法
def viterbi_algorithm(H, B, rho, O):#隐马尔科夫模型隐藏状态数 N=3,总共有三个班级,分别用0,1,2表示N = np.shape(H)[0] #观测序列时间序列T = np.shape(O)[0]#特定时刻隐藏状态对应最优状态序列概率 mu = np.zeros((T,N))#特定时刻隐藏状态对应最优状态前导序列概率 index = np.zeros((T,N))for t in range(T):if 0 == t:mu[t] = np.multiply(rho.reshape((1, N)), np.array(B[:,O[t]]).reshape((1, N)))continuefor i in range(N):temp = np.multiply(np.multiply(mu[t-1], H[:,i]), B[i, O[t]])mu[t,i] = max(temp)index[t][i] = np.argmax(temp)hs = np.zeros((T,))t_range = -1 * np.array(sorted(-1*np.arange(T)))for t in t_range:if T-1 == t:hs[t] = np.argmax(mu[t])else:hs[t] = index[t+1, int(hs[t+1])]print('最优隐藏状态序列为:', hs)return hsdef Viterbi_init():#H是隐藏状态转移概率分布)#初始状态概率分布rho = np.array([[0.2],[0.4],[0.4]])#学生的计算机水平观测序列:0-低水平,1-高水平O = np.array([[1],[1],[0]]) viterbi_algorithm(H,B,rho,O)if __name__=='__main__':Viterbi_init()

 创作不易 觉得有帮助请点赞关注收藏~~~

【Python自然语言处理】隐马尔可夫模型中维特比(Viterbi)算法解决商务选择问题实战(附源码 超详细必看)相关推荐

  1. 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列

    人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型 人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态 ...

  2. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

  3. Android Studio App开发入门之在活动之间传递消息(附源码 超详细必看)(包括显示和隐式Intent,向上一个和下一个Activity发送数据)

     运行有问题或需要源码请点赞关注收藏后评论区留言~~ 显示Intent和隐式Intent Intent是各个组件之间的信息沟通的桥梁,既能在Activity之间沟通,又能在Activity与Servi ...

  4. 【JavaScript+自然语言处理+HTML+CSS】实现Web端的智能聊天问答客服实战(附源码 超详细必看)

    需要源码请点赞关注收藏后评论区留言私信~~~ 智能客服的部署方式比较多样化,可以作为组件嵌入到其他应用程序,也可以部署到定制网站,下面分别介绍如何新创建智能客服应用,从而使其能够集成为网站功能的一部分 ...

  5. 【机器学习】【隐马尔可夫模型-3】后向算法:算法详解+示例讲解+Python实现

    0.前排提示 csdn有些数学公式编辑不出来,所以本博用容易书写的表达式来表示专业数学公式,如: (1)  在本博客中用α<T>(i)来表示 (2)在本博客中用[i=1, N]∑来表示 注 ...

  6. 隐马尔可夫模型中的Viterbi算法zz

    隐马尔可夫模型中的Viterbi算法zz 这篇文章简单描述一下Viterbi算法--一年之前我听过它的名字,直到两周之前才花了一点时间研究了个皮毛,在这里做个简单检讨.先用一句话来简单描述一下:给出一 ...

  7. 隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)

    隐马尔科夫模型(前向后向算法.鲍姆-韦尔奇算法.维特比算法) 概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概 ...

  8. 机器学习算法总结(七)——隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)...

    概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概率相关关系.根据边的性质不同,可以将概率图模型分为两类:一类是 ...

  9. 中文分词与马尔科夫模型之二:隐马尔科夫模型与维特比

    转载自:http://blog.sina.com.cn/s/blog_68ffc7a40100uebv.html 前面一篇博客讲到了中文分词的机械分词算法,这种算法实现相对比较简单,但是分词效果还是有 ...

最新文章

  1. mysql怎么加全局锁_MySQL锁机制/管理(并发锁,行锁,表锁,预加锁,全局锁等等)
  2. 小白学数据分析-----从购买记录分析道具支付环节
  3. 设置安全性根据Folder关联的条目模板设置上传文档安全性
  4. Spring MVC:资源
  5. 怎样在C语言程序中使用功能键和箭头键?
  6. 按照层次序列创建二叉树,并判断二叉树是否为二叉搜索树
  7. Leetcode: Excel Sheet Column Number
  8. php7.0-fpm.sock
  9. 为程序使用内存缓存(MemoryCache)
  10. Win11系统安装 WSA
  11. 机械工程和人工智能关系
  12. 乘业绩创新高的东风,董明珠续任格力董事长几无悬念
  13. gvim【一】【安装和基本使用】
  14. C语言中向量的加法,向量的加减法运算法则
  15. (泰勒展开式/欧拉公式)证明:e^x推导及e^(iπ) = -1展开过程
  16. 实验吧-PHP大法-eregi()函数
  17. STM32 DS18B20温度传感器实验(HAL库)
  18. DIY兼容机装苹果系统
  19. 微信小程序导航栏怎么写
  20. java程序设计实践教程张永常_java程序设计实用教程

热门文章

  1. [翻译]Looking Back at Postgres,Postgres 过往
  2. 阿里云天池AI龙珠计划-Python训练营 最终测试
  3. matlab三角窗函数,【matlab】矩形窗/三角窗/hanning窗/hamming窗/blackman窗的频率响应图...
  4. Win10管理右键新建菜单(添加菜单项---详细)
  5. 三菱Q系列plc,11轴标准程序,包含轴回零,相对定位,绝对定位,程序有两轴直线插补
  6. 【测试技能分享】xmind思维导图导出excel层级表格转换为测试场景案例分享实践附脚本
  7. Java并发编程书籍推荐,丹丹学妹哭着对我说:学长(1)
  8. 5.12汶川地震,19楼逃生
  9. 7-4 后天 (5分)
  10. unix系统之进程间通信