NLP(自然语言处理)入门、机器翻译

NLP(自然语言处理)入门、机器翻译

(一)简介

自然语言处理 NLP = NLU + NLG

  1. NLU(understanding):语义的理解 —— 给定文本/语音,得到背后的意思(meaning)
  2. NLG(generation):回复和交流 —— 将某个非语言形式的意思(meaning)翻译成文本/语音

(二)挑战

  1. 同一个意思(meaning)会有多种表达方式

    我把它打了一顿 = 它被我打了一顿

  2. 一词多义(ambiguity)

    双11买了个苹果手机
    今天水果店苹果特价


(三)关键技术

NLP领域的关键技术可以分为4个维度,从上到下维度依次提高:

声音(Phonetics)

单词(Morphology)

  1. 分词:Jieba分词SnowNLPLTPHanLP
  2. POS(词性,Part-of-Speech)
  3. NER(命名实体识别,Named Entity Recognition)

句法(Syntax)

  1. 句法分析(Parsing)

    常用算法是:【CYK算法】,本质上是动态规划(DP

  2. 依存分析(Dependency Parsing)

  3. 关系抽取

语义(Semantic)

  1. NLU(自然语言理解,Natural Language understanding)
  2. 机器学习
  3. 情感分析

(四)经典应用

  1. 问答系统
  2. 情感分析(股票价格预测、产品评论、舆情监控)
  3. 机器翻译
  4. 自动摘要
  5. 聊天机器人(闲聊/意图识别)
  6. 信息抽取
  7. 【文本纠错】

    想学NLP主要是为了【文本纠错】
    算法和数学我都很讨厌,但是女朋友研究生是学这个的,想要和她有共同话题(主要是她其他爱好像腐、饭圈,我实在不敢苟同)~
    2019-11-11,我和她表白,然后在一起啦


(四 - 1)机器翻译

1.基于统计的机器翻译

  • 给定语料库,然后进行匹配

缺点

  1. 需要大量的人工统计,而且翻译很慢
  2. 无法解决歧义(一词多义)
  3. 没有考虑上下文,【语法不对】,没有保证通顺性

【语法不对】如何解决?

假设c是中文单词,e是英文单词,机器翻译的目标就是得到最大的P(e|c)概率
根据条件概率的贝叶斯定理:给定中文单词翻译成英文单词的正确率为P(e|c) = P(e) * P(c|e) / P(c)

(0)分词

将“今晚的课程有意思”翻译成英文,第一步肯定是进行分词:今晚-的-课程-有意思


(1)Translation Model
  • 通过查语料库(Knowledge Base)(字典),得到与中文一一对应的Broken English(此时语法不对,没有保证通顺性):tonight-of-the course-interesting

    需要注意的是,这一步必须保证没有歧义,也就是说字典中不允许一词多义!!!

  • 该步骤目的是求得P(c|e)(给定英文单词,翻译成中文单词的语义相似度),语义相似度高则P(c|e)


(2)Language Model(语言模型,LM
  • 罗列出Broken English中单词顺序的所有排列组合(n!),通过选择器/语言模型找出最合适的句子
  • 该步骤目的是求得P(e)(英文单词组成的句子符合语法的概率),句子符合英文语法则P(e)
一个好的LM的特点
  1. 可以保证语义的通顺性P(He is studying AI) > P(He studying AI is)
  2. 可以通过单个时间概率P(e)计算联合概率

    独立事件:P(x.y) = P(x).P(y)
    非独立事件:P(x.y)= P(x).P(y|x) = P(y).P(y|x)

分类
  • Unigram ModelP(He is studying AI) = P(He).P(is).P(studying).P(AI)
  • Bigram ModelP(He is studying AI) = P(He).P(is|He).P(studying|is).P(AI|studying)
  • Trigram ModelP(He is studying AI) = P(He).P(is|He).P(studying|He is).P(AI|is studying)
  • ……
  • N-gram Model

    原理:马尔可夫假设


【致命缺点】
  1. 翻译必须一一对应,不能有一词多义的情况
  2. 计算量非常大,时间复杂度非常高(O(2^N),是NP难问题,无法解决)
  3. 分两步步骤太多
优化:Viterbi算法

2.基于AI的机器翻译

  • 使用模型取代统计
-------------本文结束感谢您的阅读-------------

本文标题:NLP(自然语言处理)入门、机器翻译

文章作者:DragonBaby308

发布时间:2019年11月13日 - 22:45

最后更新:2019年11月19日 - 00:02

原始链接:http://www.dragonbaby308.com/nlp-translation/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

急事可以使用右下角的DaoVoice,我绑定了微信会立即回复,否则还是推荐Valine留言喔( ఠൠఠ )ノ
0%