隐马尔可夫

NLPChina_ansj_seg JAVA 实现热词及分词统计

那年仲夏 提交于 2020-10-08 10:24:40
前言: 笔者最近遇到一个需求:将文章输入后输出文章中的高频词,这是个简短的需求,但细分下便会出现许多细节重点。笔者细化需求后确定了这几个步骤:1. 文章分词(包括中英文混词)——> 2. 分词统计——>3. 推荐热词。 根据上述的简单需求,我就想用原生JAVA通过某些数据结构实现,由于知识面有限且笔者目前是名在校的学生,实现了英文下的分词、中文下的分词。但是遇到中英文混排的怎么也合并不了。经过两天的各种思考各种分析结果以失败告终。在查阅资料的时候发现了阿帕奇的OpenNLP 工具,然后仔细的看了看源码。。看的也是云里雾里的,但基本思想也了解了。虽然阿帕奇的OpenNLP很牛逼,但是我还是选择了一个国人自产基于n-Gram+CRF+HMM的分词JAVA实现。具体开发文档和源码可以访问 GITHUB 。 废话不多说上源码。 工具类: package com.sim; import org.ansj.splitWord.analysis.ToAnalysis; import java.io.*; import java.util.*; public class NLPTools { public static Map<String,String> wordFrequency(String article) { Map<String, Integer> map = new HashMap

阿里开源自研语音识别模型DFSMN

一曲冷凌霜 提交于 2020-10-02 04:57:03
转自: https://zhuanlan.zhihu.com/p/37846011 阿里妹导读:近日,阿里巴巴达摩院机器智能实验室开源了新一代语音识别模型DFSMN,将全球语音识别准确率纪录提高至96.04%(这一数据测试基于世界最大的免费语音识别数据库LibriSpeech)。 对比目前业界使用最为广泛的LSTM模型,DFSMN模型训练速度更快、识别准确率更高。采用全新DFSMN模型的智能音响或智能家居设备,相比前代技术深度学习训练速度提到了3倍,语音识别速度提高了2倍。 开源地址: https://github.com/tramphero/kaldi 本文作者:张仕良 阿里开源语音识别模型DFSMN 在近期举行的云栖大会武汉峰会上,装有DFSMN语音识别模型的“AI收银员”在与真人店员的PK中,在嘈杂环境下准确识别了用户的语音点单,在短短49秒内点了34杯咖啡。此外,装备这一语音识别技术的自动售票机也已在上海地铁“上岗”。 著名语音识别专家,西北工业大学教授谢磊表示:“阿里此次开源的DFSMN模型,在语音识别准确率上的稳定提升是突破性的,是近年来深度学习在语音识别领域最具代表性的成果之一,对全球学术界和AI技术应用都有巨大影响。” 图:阿里在GitHub平台上开源了自主研发的DFSMN语音识别模型 语音识别声学模型 语音识别技术一直都是人机交互技术的重要组成部分

强化学习(二)马尔科夫决策过程(MDP)

烂漫一生 提交于 2020-10-01 03:40:44
    在 强化学习(一)模型基础 中,我们讲到了强化学习模型的8个基本要素。但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策过程(Markov Decision Process,以下简称MDP)来简化强化学习的建模。     MDP这一篇对应Sutton书的第三章和UCL强化学习课程的第二讲。 1. 强化学习引入MDP的原因     强化学习的8个要素我们在第一节已经讲了。其中的第七个是环境的状态转化模型,它可以表示为一个概率模型,即在状态$s$ 下采取动作$a$ ,转到下一个状态$s'$ 的概率,表示为$P_{ss'}^a$。     如果按照真实的环境转化过程看,转化到下一个状态$s'$ 的概率既与上一个状态$s$有关,还与上上个状态,以及上上上个状态有关。这一会导致我们的环境转化模型非常复杂,复杂到难以建模。因此我们需要对强化学习的环境转化模型进行简化。简化的方法就是假设状态转化的马尔科夫性,也就是假设转化到下一个状态$s'$ 的概率仅与上一个状态$s$有关,与之前的状态无关。用公式表示就是:$$P_{ss'}^a = \mathbb{E}(S_{t+1}=s'|S_t=s, A_t=a)$$     对于马尔科夫性本身,我之前讲过的 隐马尔科夫模型HMM(一)HMM模型 ,

60分钟看懂HMM的基本原理

为君一笑 提交于 2020-09-29 04:53:20
作者 | 梁云1991 来源 | Python与算法之美 HMM模型,韩梅梅的中文拼音的缩写,所以又叫韩梅梅模型,由于这个模型的作者是韩梅梅的粉丝,所以给这个模型取名为HMM。开玩笑! HMM模型,也叫做隐马尔科夫模型,是一种经典的机器学习序列模型,实现简单,计算快速,广泛用于语音识别,中文分词等序列标注领域。 下面通过一个村民看病的故事理解什么是HMM模型。 想象一个乡村诊所,村民的身体状况要么健康要么发烧,他们只有问诊所的医生才能知道是否发烧。 医生通过询问村民的感觉去诊断他们是否发烧。村民自身的感觉有正常、头晕或冷。 假设一个村民每天来到诊所并告诉医生他的感觉。村民的感觉只由他当天的健康状况决定。 村民的健康状态有两种:健康和发烧,但医生不能直接观察到,这意味着健康状态对医生是不可见的。 每天村民会告诉医生自己有以下几种由他的健康状态决定的感觉的一种:正常、冷或头晕。 于是医生会得到一个村民的感觉的观测序列,例如这样:{正常,冷,冷,头晕,冷,头晕,冷,正常,正常}。 但是村民的健康状态这个序列是需要由医生根据模型来推断的,是不可直接观测的。 这个村民看病的故事中由村民的健康状态序列和村民的感觉序列构成的系统就是一个隐马尔科夫模型(HMM)。 其中村民的健康状态序列构成一个马尔科夫链。其每个序列值只和前一个值有关,和其它值无关。由于这个马尔科夫链是隐藏的,不可以被直接观测到

Lyft推出一种新的实时地图匹配算法

蓝咒 提交于 2020-09-28 08:28:20
点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 打车有时也会职业病发作,琢磨一下车辆调度是怎么做的,路径规划算法要怎么写,GPS偏移该怎么纠正等等。不过就是想想而已,并没有深究。这篇是Lyft(美帝第二大打车平台)工程师分享的最近上线的地图匹配算法,非常有参考价值。 作者:Marie Douriez 编译:McGL 当你要求打车时,Lyft 会试着找一个最适合你路线的司机。要做出调度决定,我们首先需要问: 司机在哪里?Lyft 使用司机手机的 GPS 数据来回答这个问题。然而,我们得到的 GPS 数据往往是有噪音的,和道路并不匹配。 位置数据经常有噪音,和道路不匹配。 为了从这些原始数据中得到一个更清晰的图像,我们运行一个算法,输入原始位置并返回道路网中更准确的位置。这个过程称为地图匹配(map-matching)。我们最近开发并发布了一个全新的地图匹配算法,发现它提高了驾驶员定位的准确性,并使 Lyft 的市场更有效率。在这篇文章中,我们将讨论这个新模型的细节。 什么是地图匹配? 地图匹配是这样一个过程,匹配原始GPS的位置到道路网路段,以产生一个车辆路线的估计。 我们为什么需要地图匹配? 在 Lyft,我们有两个主要的地图匹配用例: 在行程结束时,计算司机所行驶的路程以计算车费。 为 ETA 团队实时地提供准确的位置,做出调度决定,并在乘客的app上显示司机的车。

《统计学习方法》第二版的代码实现

女生的网名这么多〃 提交于 2020-08-19 23:14:40
《统计学习方法》的代码实现 下载地址:https://github.com/fengdu78/lihang-code 打包下载: 链接:https://pan.baidu.com/s/13Ob6SoAnRCYEkipIwiDHZQ 提取码:arqo “机器学习初学者”公众号 李航老师编写的《统计学习方法》全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。 《统计学习方法》可以说是机器学习的入门宝典,许多机器学习培训班、互联网企业的面试、笔试题目,很多都参考这本书。 今天我们将李航老师的《统计学习方法》第二版的代码进行了整理,并提供下载。 非常感谢各位朋友贡献的自己的笔记、代码! 2020年6月7日 代码更新地址: https://github.com/fengdu78/lihang-code 代码目录 第1章 统计学习方法概论 第2章 感知机 第3章 k近邻法 第4章 朴素贝叶斯 第5章 决策树 第6章 逻辑斯谛回归 第7章 支持向量机 第8章 提升方法 第9章 EM算法及其推广 第10章 隐马尔可夫模型

用hmmlearn学习隐马尔科夫模型HMM

ぃ、小莉子 提交于 2020-08-17 10:25:45
    在之前的 HMM系列 中,我们对隐马尔科夫模型HMM的原理以及三个问题的求解方法做了总结。本文我们就从实践的角度用Python的hmmlearn库来学习HMM的使用。关于hmmlearn的更多资料在 官方文档 有介绍。 1. hmmlearn概述     hmmlearn安装很简单,"pip install hmmlearn"即可完成。     hmmlearn实现了三种HMM模型类,按照观测状态是连续状态还是离散状态,可以分为两类。GaussianHMM和GMMHMM是连续观测状态的HMM模型,而MultinomialHMM是离散观测状态的模型,也是我们在HMM原理系列篇里面使用的模型。     对于MultinomialHMM的模型,使用比较简单,"startprob_"参数对应我们的隐藏状态初始分布$\Pi$, "transmat_"对应我们的状态转移矩阵$A$, "emissionprob_"对应我们的观测状态概率矩阵$B$。     对于连续观测状态的HMM模型,GaussianHMM类假设观测状态符合高斯分布,而GMMHMM类则假设观测状态符合混合高斯分布。一般情况下我们使用GaussianHMM即高斯分布的观测状态即可。以下对于连续观测状态的HMM模型,我们只讨论GaussianHMM类。     在GaussianHMM类中,"startprob_

谷歌联手伯克利给机器人上网课!观看8位医生手术视频学缝合

巧了我就是萌 提交于 2020-08-16 23:59:34
      大数据文摘出品    来源:Techxplore    编译:张睿毅、Andy   前段时间,文摘菌曾提过价值53万一只的波士顿动力机器狗,也有进行太空探索的昆虫机器人,万万没想到的是,这次来了一个和大家一样上网课的机器人。   不知道你有没有想过这种场景,去医院做手术时,医生助手已经不是可爱的护士小姐姐,而是 两只冷冰冰的机械臂,以快准狠的手法帮你缝合伤口 。   最近在Google Brain,英特尔还有UC伯克利的合作研究中,研究人员通过用手术教学视频来对机器人进行“训练”,让其能模仿手术过程。      之前,UC伯克利的教授有用过YouTube视频指导机器人学习各种动作(比如跳跃和跳舞), 而Google则是有训练机器人理解场景中的深度还有动作。   于是这次的团队,决定 将之前的研究成果结合起来,应用于最新项目Motion2Vec。   Motion2Vec:机器人也要上网课   Motion2Vec算法,能用真实手术视频来指导机器人学习相关手术动作。   在最近发布的论文里,研究人员简单介绍了他们如何用YouTube视频来训练 两臂达芬奇(da Vinci)机器人在针刺机上进行缝合操作。   它从模仿学习的视频演示中,获得以运动为中心的操作技能。其中表示的算法一致性、可解释性和监督学习的负担是该项目模仿学习中的关键问题

三个小白是如何在三个月内搭一个基于kaldi的嵌入式在线语音识别系统的

五迷三道 提交于 2020-08-16 08:23:52
前面的博客里说过最近几个月我从传统语音(语音通信)切到了智能语音(语音识别)。刚开始是学语音识别领域的基础知识,学了后把自己学到的写了PPT给组内同学做了presentation( 语音识别传统方法(GMM+HMM+NGRAM)概述 )。一段时间后老板就布置了具体任务:在我们公司自己的ARM芯片上基于kaldi搭建一个在线语音识别系统,三个人花三个月左右的时间完成。由于我们都是语音识别领域的小白,要求可以低些,就用传统的GMM-HMM来实现。说实话接到这个任务我们心里是有点没底的,不知道能不能按时完成,毕竟我们对语音识别不熟,对kaldi不熟。既然任务下达了,硬着头皮也要上,并尽最大努力完成。我本能的先在网上用百度/google搜了搜,看有没有一些经验可供参考,好让我们少走弯路。遗憾的是没搜到有价值的东西。没办法,我们只能根据自己以前的经验摸索着前进。最终我们按计划花了不到三个月的时间完成了嵌入式平台上在线语音识别系统的搭建。虽然只是demo,但是为后面真正做商用的产品打下了良好的基础,累积了不少的经验。今天我就把我们怎么做的分享出来,给也想做类似产品的朋友做个参考。 既然作为一个项目来做,就要有计划,分几个阶段完成这个项目。我在学习语音识别基础知识时对kaldi有一个简单的了解(在做语音识别前就已知kaldi的大名,没办法这几年人工智能(AI)太热了

强化学习(二)马尔科夫决策过程(MDP)

无人久伴 提交于 2020-08-16 03:47:19
    在 强化学习(一)模型基础 中,我们讲到了强化学习模型的8个基本要素。但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策过程(Markov Decision Process,以下简称MDP)来简化强化学习的建模。     MDP这一篇对应Sutton书的第三章和UCL强化学习课程的第二讲。 1. 强化学习引入MDP的原因     强化学习的8个要素我们在第一节已经讲了。其中的第七个是环境的状态转化模型,它可以表示为一个概率模型,即在状态$s$ 下采取动作$a$ ,转到下一个状态$s'$ 的概率,表示为$P_{ss'}^a$。     如果按照真实的环境转化过程看,转化到下一个状态$s'$ 的概率既与上一个状态$s$有关,还与上上个状态,以及上上上个状态有关。这一会导致我们的环境转化模型非常复杂,复杂到难以建模。因此我们需要对强化学习的环境转化模型进行简化。简化的方法就是假设状态转化的马尔科夫性,也就是假设转化到下一个状态$s'$ 的概率仅与上一个状态$s$有关,与之前的状态无关。用公式表示就是:$$P_{ss'}^a = \mathbb{E}(S_{t+1}=s'|S_t=s, A_t=a)$$     对于马尔科夫性本身,我之前讲过的 隐马尔科夫模型HMM(一)HMM模型 ,