没有合适的资源?快使用搜索试试~ 我知道了~
首页掌握自然语言处理:算法详解与深度解读
"《文本上的算法:深入浅出自然语言处理》是一本由路彦雄编著的专业书籍,旨在帮助读者系统地理解和掌握自然语言处理领域的核心理论和技术。作者结合自身的丰富经验和实际工作背景,以通俗易懂的方式讲解复杂的算法和机器学习原理,使非专业背景的读者也能轻松入门。 该书分为两大部分:理论篇和应用篇。理论篇涵盖了基础数学知识(如概率论、统计学)、最优化理论以及机器学习的基本概念,这些都是自然语言处理的基础,对于理解算法的工作原理至关重要。这部分内容通过摒弃冗长的证明,提炼出关键概念,便于读者快速掌握。 应用篇则更侧重于实践应用,包括计算性能优化、文本处理中的术语解析、相似度计算方法、搜索引擎技术、推荐系统设计、以及自然语言理解和对话系统构建等内容。这些章节通过实例和案例分析,让读者看到算法在实际场景中的应用,并学会如何运用所学解决实际问题。 本书不仅适合已经在自然语言处理领域进行研究或工作的专业人士,对于对机器学习和自然语言处理感兴趣,尤其是希望系统学习相关技术的初学者来说,也是一本极具价值的参考书。全书共计13.25印张,约368千字,以720x960开本呈现,适合长期阅读和学习。 此外,读者在阅读过程中可以随时联系出版社获取更多服务和支持,如读者服务热线、印装质量热线以及反盗版热线,以确保获得优质的阅读体验。《文本上的算法:深入浅出自然语言处理》是一本实用性强、内容丰富的指南,对于提升个人在自然语言处理领域的技能具有显著帮助。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/11225943/bg10.jpg)
第
1
章
你必须知道的一些基础知
识
分词来说说这个公式如何应用的。
中文分词在中文自然语言处理中可以算是最底层、最基本的一个技术
了,因为几乎所有的文本处理任务都要首先经过分词这步操作,那么到底
要怎么对一句话分词呢?最简单的方法就是查字典,如果这个词在字典中
出现了,那么就是一个词。当然,查字典要有一些策略,最常用的就是最
大匹配法。最大匹配法是怎么回事呢?举个例子来说,要对“中国地图”
来分词,先拿“中”去查字典,发现“中”在字典里(单个词肯定在字典
里),这时肯定不能返回,要接着查,“中国”也在字典里,然后再查“中
国地”,发现它没在字典里,那么“中国”就是
一
个词了;然后以同样的
方法处理剩下的句子。所以,最大匹配法就是匹配在字典中出现的最长的
词。查字典法有两种
:
正向最大匹配法和反向最大匹配法,一个是从前向
后匹配,一个是从后向前匹配。但是查字典法会遇到
一
个自然语言处理中
很棘手的问题
:
歧义问题。如何解决歧义问题呢?
我们就以“学历史知识”为例来说明,使用正向最大匹配法,我们把
“学历史知识”从头到尾扫描匹配一遍,就被分成了“学历\史\知识”,
很显然,这种分词不是我们想要的结果;但是如果我们使用反向最大匹配
法从尾到头扫描匹配一遍,那就会分成“学/历史/知识”,这才是我们想
要的分词结果。可以看出用查字典法来分词,就会存在二义性,一种解决
办法就是分别从前到后和从后到前匹配。在这个例子中,我们分别从前到
后和从后到前匹配后,将得到“学历\史\知识”和“学/历史/知识”,
很显然,这两个分词都有“知识”,那么说明“知识”是正确的分词,然
后就看“学历\史”和“学/历史”哪个是正确的。从我们的角度看,恨
自然想到“学/历史”是正确的,为什么呢?因为
Cl
)在“学历\史”中
“史”这个词单独出现的概率很小,在现实中我们几乎不会单独使用这个
词:(
2
)“学历”和“史”同时出现的概率也要小于“学”和“历史”同
时出现的概率,所以“学/历史”这种分词将会胜出。这只是我们人类大
脑的猜测,有什么数学方法证明呢?有,那就是基于统计概率模型。
![](https://csdnimg.cn/release/download_crawler_static/11225943/bg11.jpg)
才
3
贝叶斯法则
我们的数学模型表示如下:假设用户输入的句子用
S
表示,把
S
分词
后可
能的结果表示为
A:
Al>
A2;··,
Ak
(A
;表示词),那么我
们就是求条件
概率
p(A
IS
)达到最大值的那个分词结果。这个概率不好求出,这时贝叶
斯法则就用上派场了,根据贝叶斯公式改写为
p(SI
A)p(A)
p(A
IS)=
p(S)
显然,
p(S
)是
一
个常数,那么公式相当于改写成
p(A
IS
)使
p(SI
A)p(A)
其中,
p(S
I
A
)表示(
A
)这种分词生成句子
S
的可能性;
p(A
)
表示(
A)
这
种分词本身的可能性
。
下面的事情就很简单了
。
对于每种分词计算
一
下
p(S
I
A)p(A
)
这个值,
然后取最大的,得到的就是最靠谱的分词结果。比如“学历史知识”(用
S
表示)可以分为如下两种(当然,实际情况就不止两种情况了)
:“学历\
史\知识”(用
A
表示,
A1
=学历
,
A
z
=史
,
A3
=知识
〉
和“学
/历史/知识”(用
B
表示
,
B1
=学,
B2
=历史,
B3
=知识),那么我们分别计算一下
p(S
I
A)
p(A
)
和
p(S
I
B)p(B
),哪个大,就说明哪个是好的分词结果。
但是
p(SIA1
,鸟,
.
.
.
Ak)p(A1
,鸟,
...
Ak
)
这个公式并不是很好计算,
p(S I A1,A2, ...
Ak
)可以认为就是
l
,因为由肉,
Az
,
...
,Ak
必然能生成
S
,那
么剩
下的问题就是如何计算
p(A1,Az,
...
,Ak
) 。
在数学中,要想简化数学模型,就要利用假设
。我
们假设句子中
一个
词的出现概率只依赖于它前面的那个词(当然可以依赖于它前面的
m
个
词),这样,根据全概率公式
p(A1,Az, ...
,Ak)
=
p(A1)p(A2 I A1)p(A3 I Az,A1) ...
p(Ak
I A1,Az, ... ,Ak-1)
就可以改写为
p(A1,A2, ...
,Ak)
=
p(A1)p(A2 I A1)p(A3 I
A2) ...
p(Ak
I Ak-1)
接下来的问题就是如何估计
p(A;
I
Ai-1
)
。然
而,
p(A;
I Ai-1)
=
p(Ai-1,A;)I
![](https://csdnimg.cn/release/download_crawler_static/11225943/bg12.jpg)
第
1
章
你必须知道的一些基础知识
p(A
;-1
),这个问题变得很简单,只要数
一
数(
A;
_
1,A
;)这对词在统计的
文
本中前后相邻
出现
了多少次,以及
A;
-
1
本身在同样的文本中出现了多少
次,
然后用两个数除以它就可
以了
。
上面计算
p(A1
,
A
2,
...
Ad
的过
程其实就是
统计语言模型,
然而真正
在
计算语言模型的时候,要对公式进行平滑操作
。
Zipf
定律指出:
一
个 单词
出现的频率与它在频率表里的排名(按频率从大到小)成反比
。
这说
明
对于语言中的大多数词,它们在语料中的出现是稀疏的,数据稀疏会导
致
所估计的分布不可靠,更严重的是会出现零概率问题,因为
p(A;
_
1
,
A
;
)
的
值有可能为
0
,这
样整个公式的值就为
0
,
而这种情况是很不公平的,
所
以平滑解决了这种零概率问题。具体的平滑算法读者可以参考论文
《
An
Empirical Study
of
Smoothing Techniques for Language
Modeling
》。
然而在实际系统中,由于性能等因素,很少使用语
言
模型来分词
消
歧,而是使用序列标注模型(后面章节会讲到〉、语料中词与词的共现
信
息、词的左蛐(该词左边出现过的所有词的信息
;
脑之和)和右
;
脑(该词
右
边出现过的所有词的信息:墙之和),以及
一
些词典等方法来消歧
。
新词
发
现技术也和这个技术差不多。
1.4
问题与思考
l.
情、相对娟和
交叉娟的物理意义是什么?
2.
贝叶斯法则的优缺点是什么,有哪些应用?
![](https://csdnimg.cn/release/download_crawler_static/11225943/bg13.jpg)
第
2
章
我们生活在一个寻求最优解的
世界里
之达
庸小说里,
一
般来说,
一
个人的内功越高他的武功就越高,例
~
如,练了《易筋经》之后,随便练点什么招式都能成为高手。
最优化模型就是机器学习的“内功”,几乎每个机器学习模型的背后都是
一
个最优化模型。本章讲解最优化模型
。
2.1
最优化问题
通常人们会认为商人最精明,因为他们总是希望付出最小的成本来获
得最大的收益
。
其实,我们每个人都生活在一个寻求最优解的世界里,因
为人心是贪婪的,人们永远想得到他们认为最好的东西。我们买东西的时
候,是不是希望花尽可能少的钱买到质量更好的物品?我们从
一
个
地方去
到另
一
个地方,是不是希望尽可能走最短的路线?
科学抽象于生活,科学服务于生活。
几
乎每个机器学习问题背后都是
一
个最优化问题。
一
般的最优
化
形式表示如下
![](https://csdnimg.cn/release/download_crawler_static/11225943/bg14.jpg)
第
2
章
我们生活在一个寻求最优解的世界里
min
f(x)
s.t.
h(x)
=
0
g(x
)
运
O
f(x
)
是目标函数,
h(x
)
和
g(x
)
分别是约束条件,有的问题可以没
有约
束条件:只有
f(x
)
,称为无约束优化:只有
f(x
)
和
h(x
)
,称为有等式约束优
化:
f(x
)
和
h(x
) 、
g(x
)
都有
,称为有不等式约束优化
。
那么目标函数到底是什么呢?
提出一个机器学习问题以后,肯定会有一个真实模型可以解决它,但
是我们并不知道这个真实模型是什么(如果能知道的话,那就不用学习了,
直接用这个模型就可以了),那么就要设计一个模型来代替真实模型(假
设
h
=
f(x
)
为你设计的模型,
y
=
R(x
)
为真实模型,
x
=
{x1
,…
,XN
}
为整个模
型的输入),那么怎么才能说你设计的这个模型很好呢?很简单,你设计
的模型和真实模型的误
差
越小,那就说明你的模型越好
。误差通常使用损
失函数来表示,常用的损失函数有以下几种
平方损失:
L(y,f(x))
=
(f(x)-
y)2
绝对损失:
L(y,f(x))
=
IJ(x)-
YI
合页损失:
L(y,f(x))
=
max(0,1-
y ·
f(x))
似然损失:
L(y,f(x))
=一
logP(y
Ix)
合页损失一般会要求
f(x
)
取值范围是[
1, 1),
y
取值是一
l
或
l
?似然
损失的最小化,就是求
logP(y
Ix
)的最大化,这就是后面专门要介绍的
最
大似然估计
。
而损失函数(误差
)
的期望,称为期望风险
。学习的目标就是使期望
风险最小,即
CM
为样本数)
• M
min
主
~L(y',f
队的)
前面不是说真实模型是不知道的吗?那么它们的期望风险自然也
没法
计算了,怎么最小化这个期望风险啊?期望风险是指你设计的模型和
真实
剩余211页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
IT包教不包会
- 粉丝: 4
- 资源: 5
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)