自然语言处理NLP学习笔记

1.自然语言处理是什么?

自然语言处理NLP学习笔记_第1张图片

NLP(Natural Language Processing)= NLU(Understand)+NLG(Generation)

自然语言处理 = 自然语言理解+自然语言生成

NLU 负责理解内容,NLG 负责生成内容。

例如商场里的聊天机器人,“”你问小六汤包在哪里?“NLU技术用来理解用户的意图,理解用户想表达的意思。NLG负责回答:“在商场五楼。”

例子:传统的机器翻译,给出12组翻译对, 请翻译出最上面的话:

自然语言处理NLP学习笔记_第2张图片

使用的就是概率统计,例如farok这个单词,在第五组和第7组出现了farok,在其翻译中都出现了jjat这个词。那么farok翻译为jjat的概率最大。最开始机器就是这样翻译的,找出每个单词的含义,然后按着原顺序组合起来。

这样的缺点就是:速度慢、语义不通、上下文考虑不到、语法不对。

解决方法:——速度慢(通过AI/模型)

                   ——语法不对(通过语言模型)

2.机器翻译的基础架构:

自然语言处理NLP学习笔记_第3张图片

(1)分为两个步骤:

步骤1:分词——>通过词典找出每个词的翻译(Broken English,不通顺)

如何将不通顺的语句变为符合语法规则的语言呢?

步骤2:将刚才每个单词进行排列组合( 计算方法是n!)——>通过语言模型选择器计算,找出最合适的语序

总结:分词——>单词翻译——>排列组合——>选择最通顺的序列

缺点:两个步骤导致计算量大(n!),复杂度大概是(2^n,属于NP问题,无法解决),维特比算法(Viterbi algorithm)可以将两个模块同时考虑。

自然语言处理NLP学习笔记_第4张图片

(2)在(1)的基础上改进后,将机器翻译划分为三部分:

语言模型:是我们需要提前训练好的,判断这句话语义通顺的概率。

翻译模型:就是词典,键值对,类似中英字典,中法字典。你输入一个词,给你返回出翻译结果。

Decoding Algorithm:通过维特比算法将语言模型和翻译模型都考虑进来,提高了运行速率。

维特比算法(Viterbi algorithm)是一种动态规划算法。它用于寻找最有可能产生观测事件序列的维特比路径——隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。 

自然语言处理NLP学习笔记_第5张图片

3.NLP应用场景

问答系统、情感分析、机器翻译、自动提取摘要、聊天机器人(闲聊型、任务导向型)、 信息抽取

4.NLP关键技术

自然语言处理技术的四个维度:

Phonetics(声音):声音放在最底层。

Morphlogy(单词):基础层,关注单词层面的技术(分词、词性标注、命名实体识别NER)

Syntax(句子结构):关系的是单词与单词之间的关系,句法分析(主谓宾)、依存分析(哪个词是修饰谁的)。

Semantic(语义):NLU,理解整个句子,属于最上层的技术。机器学习

你可能感兴趣的:(NLP)