NLP自然语言处理:(viterbi算法、隐马科夫链、动态规划、naisy channel 模型)实现英文分词

这篇博客介绍了如何使用Viterbi算法进行英文词性标注,结合naisy channel模型和动态规划,详细阐述了算法原理和实现过程,并提供了语料库和代码资源。
摘要由CSDN通过智能技术生成

目录

一、viterbi算法

二、英文分词基础知识

2.1场景

2.2 公式推导(naisy channel model)

2.3 动态规划

三、代码

3.1数据处理

3.2 平滑处理

3.3 计算模型参数

3.4 viterbi算法


 

viterbi算法是学习自然语言处理的基础算法,已经会有很多博客写了关于viterbi算法的数学介绍。

但是对于在nlp中实践应用的博客很少,导致很多朋友在学习viterbi算法之后,对于viterbi算法在nlp领域的应用还有一些困惑。

那么这也是我写这篇博客的意图,现在对于英文词性标注都可以通过调取很多包来完成(nltk,pyhanlp,jieba之类的)

但是自己实现英文词性标注可以增加对于底层的理解,

那么这篇博客就讲解英文词性标注中的viterbi算法和动态规划,提供所有语料库和代码。



一、viterbi算法

viterbi算法其实就是多步骤每步多选择模型的最优选择问题,其在每一步的所有选择都保存了前续所有步骤到当前步骤当前选择的最小总代价(或者最大价值)以及当前代价的情况下前继步骤的选择。依次计算完所有步骤后,通过回溯的方法找到最优选择路径。符合这个模型的都可以用viterbi算法解决。

 

 

 

二、英文分词基础知识

 

2.1场景

英文词性标注语料库:https://download.csdn.net/download/qq_35883464/11463932

代码:https://download.csdn.net/download/qq_35883464/11463943

场景:给定一个英文句子S=’I like …’其中每个单词由w表示,z表示那个单词对应的词性。

目标:给定一个句子S=w1,w2,w3,w4,w5  .可以得出每个单词对应的词性

 

2.2 公式推导(naisy channel model)

naisy channel model:

我们这里的语言模型只考虑bigram,就是2元语言模型。

因为只是比较概率的大小,所以最后一步加了log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值