Natural Language Processing
What is NLP?
- 全称:Natural Language Processing
- 中文:自然语言处理
NLP由两部分组成:
P = U + G
NLU:Natural Language Understading
NLG:Natural Language Generation
Why NLP is hard?
-
the flexibility of language 语言的灵活性:
- the multimeaning of language 语言的多义性(Ambiguity 一词多义)
- the multiways of expressing words. 语言表达的多样性
-
常见的解决方法:
根据上下文(语境context)理解
围绕这一方法,Markov提出了markov模型: wikipedia.
Uni-gram Model:将每个单词看做独立事件
Bi-gram Model:当前单词含义取决于前一个单词含义
Tri-gram Model:当前单词含义取决于前两个单词含义
…
N-gram Model:当前单词含义取决于前N-1个单词含义
他们之间的最大差别在于依赖条件的多少,依赖条件越多,算法越复杂
注:可以参考视频推荐算法(根据你看过的视频内容为你推荐相似的内容)
简单的机器翻译系统:
通过语料库统计词频
缺陷:
- 要求双语一一对应
- 慢
- 无法考虑语境
- 语法不一定正确
- 规则统计,需要很大的人工
优化后的统计型机器翻译系统
以中译英为例:
step1:
对中文进行分词,将分词输入语料库(类似更准确的双语词典)中进行翻译
step2:
对翻译后的词语进行排列组合生成句子,利用LM语言模型对这些句子进行打分,得分越高越符合语法,输出得分最高的句子
step1和step2分开计算的缺陷:
- 分词不准确
- 计算量大
优化:(用黄框表示)
-
将step1和step2结合起来,形成decoding算法,又称viterbi算法
-
算法原理采用了贝叶斯原理
-
语⾔模型(Language Model)
• 给定⼀句英⽂e, 计算概率(e)
• 如果是符合英⽂语法的,p(e)会⾼
• 如果是随机语句,p(e)会低 -
翻译模型(Translation Model)
• 给定⼀对<c,e>,计算p(c|e)
• 语义相似度⾼, 则p(c|e)⾼
• 语义相似度低,则p(c|e)低
• Decoding Algorithm
• 给定语⾔模型,翻译模型和c, 找出最优的使得p(e)p(c|e)最⼤
NLP的应用场景
机器翻译
信息抽取
聊天机器人
NLP关键技术
自然语言处理技术的四个维度(从低到高)
Phonetics(声音)
Morphology(词形)
- 属于单词层面的技术
- 分词(Word Segmentation)
- 词组(Part-of-Speech)
- 命名实体识别(Named Entity Recognition,简称NER,抽取关键词)
Syntax(句子结构)
- 句法分析(Parsing)
- 依存分析(Dependency Parsing)
- 关系抽取(Relation Extraction)
Semantic(语义)
- NLU
- machine learning