1.自然语言处理是什么?
NLP(Natural Language Processing)= NLU(Understand)+NLG(Generation)
自然语言处理 = 自然语言理解+自然语言生成
NLU 负责理解内容,NLG 负责生成内容。
例如商场里的聊天机器人,“”你问小六汤包在哪里?“NLU技术用来理解用户的意图,理解用户想表达的意思。NLG负责回答:“在商场五楼。”
例子:传统的机器翻译,给出12组翻译对, 请翻译出最上面的话:
使用的就是概率统计,例如farok这个单词,在第五组和第7组出现了farok,在其翻译中都出现了jjat这个词。那么farok翻译为jjat的概率最大。最开始机器就是这样翻译的,找出每个单词的含义,然后按着原顺序组合起来。
这样的缺点就是:速度慢、语义不通、上下文考虑不到、语法不对。
解决方法:——速度慢(通过AI/模型)
——语法不对(通过语言模型)
2.机器翻译的基础架构:
分为两个步骤:
步骤1:分词——>通过词典找出每个词的翻译(Broken English,不通顺)
如何将不通顺的语句变为符合语法规则的语言呢?
步骤2:将刚才每个单词进行排列组合( 计算方法是n!)——>通过语言模型选择器计算,找出最合适的语序
总结:分词——>单词翻译——>排列组合——>选择最通顺的序列
缺点:两个步骤导致计算量大(n!),复杂度大概是(2^n,属于NP问题,无法解决),动态规划(DP)可以将两个模块同时考虑。
将机器翻译划分为三部分:
语言模型:是我们需要提前训练好的,判断这句话语义通顺的概率。
翻译模型:就是词典,键值对,类似中英字典,中法字典。你输入一个词,给你返回出翻译结果。
Decoding Algorithm:就是将语言模型和翻译模型都考虑进来,提高了运行速率。