NLP——01机器翻译的简单框架

1.什么是NLP?
NLP=NLU(natural language understanding 通过文本来理解意思)+NLG(natural language generation 通过语义来生成文本)

2.NLP与计算机视觉相比较?
NLP相对于计算机视觉的处理来说难度较大,主要表现在:
我们看文本的时候是想知道文本背后的意思,一句话在不同的场景下可能有不同的意思,而图片是所见即所得。

3.NLP的挑战
1.一个意思有多个表达的方式
2.一词多义,一个词在不同语境上的意思不同
解决:假设没有任何语境,我们想要知道一个多义词的意思便只能靠猜,我们将该词的各个意思可能出现的概率计算出来,选择概率最大的意思来解释该词语。(概率的计算:统计该词语在一篇文章中以某种意思出现的次数,取出现次数最多的那个词义,偏主观)。这种方式的正确率有限
在实际情况中我们需要结合具体的语境来判断该词语的词义,通过上下文来判断该词语的可能词义,更新该词各个词义的概率,选择概率最大的词义。

case1:机器翻译的简单框架

分两步的方式:translation model & language model
在这里插入图片描述
我们拿到一个中文的句子,需要将其翻译成英文。
第一步:将中文句子进行分词,然后通过词典将每个词进行翻译
第二步:将翻译得到的英文单词进行组合(Broken English)
第三步:通过语言模型选择组合后概率最高的那句话

缺点: 计算量大
当一个句子特别长的时候,单词的排列组合的方式也就特别多,将translation model & language model同时考虑便可以很好的解决这个问题。
在这里插入图片描述
在这里插入图片描述
这里我们需要介绍三个问题:
1.翻译模型(translation model)
给定一对<c,e>,计算P(c|e)
语义相似度高,则P(c|e)高
语义相似度低,则P(c|e)低
2.语言模型(language model)
给定一句英文e,计算概率P(e)
如果是符合英文语法的,P(e)会高
如果是随机语句,P(e)会低
3.Decoding Algorithm
给定语言模型,翻译模型和c,找出最优的使得P(e)P(c|e)最大

简单介绍一下语言模型
标准定义:对于语言序列 x1,x2,x3…xn,语言模型就是计算该序列的概率,即 P(x1,x2,x3,…xn)。
从机器学习的角度来看:语言模型是对语句的概率分布的建模。
通俗解释:判断一个语言序列是否符合人类说话的方式,即是否是人话。
我们以四个单词的句子为例:
p(x1,x2.x3,x4)=p(x1)*p(x2|x1)*p(x3|x1,x2)*p(x4|x1,x2,x3)
n=1 unigram:p(x1,x2.x3,x4)=p(x1)*p(x2)*p(x3)*p(x4)

n=2 bigram: p(x1,x2.x3,x4)=p(x1)*p(x2|x1)*p(x3|x2)*p(x4|x3)

n=3 trigram:p(x1,x2.x3,x4)=p(x1)*p(x2|x1)*p(x3|x1,x2)*p(x4|x2,x3)

猜你喜欢

转载自blog.csdn.net/liusisi_/article/details/106671797
今日推荐