当前位置:网站首页>ML - 自然语言处理 - 基础知识
ML - 自然语言处理 - 基础知识
2022-07-25 15:21:00 【sword_csdn】
目录
参考
华为云学院
https://www.cnblogs.com/pinard/p/7160330.html
语言模型
语言模型是根据语言客观事实而进行的语言抽象建模,是一种对应关系,假设有以下这类问题:
(1)机器翻译(I have a dream):P(我有个梦想)>P(我有只梦想)
(2)拼写纠错:P(about fifteen minutes from)>P(about fifteenminuets from)
(3)语音识别:P(你长的像你妈妈)>P(你长得向你妈妈)
(4)音字转换:P(你现在干什么|nixianzaiganshenme)>P(你西安在干什么|nixianzaiganshenme)
如果将以上问题形式化表示,用链式法则可表示如下
神经网络语言模型


N - gram语言模型
利用n元模型(n-gram model)估算条件概率,即忽略距离大于等于n的上文词的影响,因此若用频数计数的比例来计算n元条件概率可表示为:
NN语言模型与统计语言模型的关系
相同点:都是将句子看做一个词序列,然后计算句子的概率
不同点:
(1)计算概率的方式:N-gram基于马尔科夫假设只考虑前n个词,NNLM要考虑整个句子的上下文。
(2)训练模型的方式:N-gram基于最大似然估计来计算参数,是基于词本身的;NNLM基于RNN的优化方法训练模型。
(3)循环神经网络可以将任意长度的上下文信息存储在隐藏状态中,而不仅限于N-gram模型中的窗口限制。
文本向量化
将文本表示成一系列能够表达文本语义的向量。常用的向量化算法有:one-hot,TF-IDF,word2vec(CBOW,Skip-gram),doc2vec/str2vec(DM,DBOW)。
word2vec - CBOW模型
CBOW模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。
比如下面这段话,我们的上下文大小取值为4,特定的这个词是"Learning",也就是我们需要的输出词向量,上下文对应的词有8个,前后各4个,这8个词是我们模型的输入。由于CBOW使用的是词袋模型,因此这8个词都是平等的,也就是不考虑他们和我们关注的词之间的距离大小,只要在我们上下文之内即可。
word2vec - Skip-gram模型
Skip-Gram模型和CBOW的思路相反,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。还是上面的例子,我们的上下文大小取值为4, 特定的这个词"Learning"是我们的输入,而这8个上下文词是我们的输出。
doc2vec - DM模型

每一个段落表示为一个向量,对应矩阵D中的一个列向量,每一个词表示为一个向量,对应矩阵W中的一个列向量。段落向量和词向量通过取平均值或者相连接来对上下文(context)中的下一个词进行预测。
doc2vec - DBOW模型

该模型是在随机梯度下降的每一次迭代中采样一个文本窗口(text window),再从该文本窗口中随机采样一个词,从而形成一个给定段落向量进行词预测的多分类任务。该模型和Skip-gram模型相似。
边栏推荐
- Object.prototype. Hasownproperty() and in
- Solve the timeout of dbeaver SQL client connection Phoenix query
- Spark memory management mechanism new version
- How to solve the problem of scanf compilation error in Visual Studio
- args参数解析
- Spark002 --- spark task submission, pass JSON as a parameter
- HBCK fix problem
- Stored procedure bias of SQL to LINQ
- Scala110-combineByKey
- 【微信小程序】小程序宿主环境详解
猜你喜欢

npm的nexus私服 E401 E500错误处理记录

Idea remotely submits spark tasks to the yarn cluster

【JS高级】js之正则相关函数以及正则对象_02

Single or multiple human posture estimation using openpose

How to solve the problem of scanf compilation error in Visual Studio

密码强度验证示例

延迟加载源码剖析:

System. Accessviolationexception: an attempt was made to read or write to protected memory. This usually indicates that other memory is corrupted

Process control (Part 1)

打开虚拟机时出现VMware Workstation 未能启动 VMware Authorization Service
随机推荐
我的创作纪念日
MeanShift聚类-01原理分析
Iframe nested other website page full screen settings
VS2010 add WAP mobile form template
TypeScript学习1——数据类型
How to understand the maximum allowable number of errors per client connection of MySQL parameters in Seata?
Promise对象与宏任务、微任务
Spark DF增加一列
Spark DF adds a column
6月产品升级观察站
推荐10个堪称神器的学习网站
Scala110-combineByKey
JVM parameter configuration details
如何更新更新数据库中的json值?
bridge-nf-call-ip6tables is an unknown key异常处理
Spark SQL common time functions
JVM-垃圾收集器详解
Once spark reported an error: failed to allocate a page (67108864 bytes), try again
Yan required executor memory is above the max threshold (8192mb) of this cluster!
基于OpenCV和YOLOv3的目标检测实例应用