[自然语言处理-入门]一、NLP简介与文本预处理

学习路线参考:

https://blog.51cto.com/u_15298598/3121189

https://github.com/Ailln/nlp-roadmap

https://juejin.cn/post/7113066539053482021

https://zhuanlan.zhihu.com/p/100567371

https://cloud.tencent.com/developer/article/1884740

本节学习使用工具&阅读文章:

https://looperxx.github.io/CS224n-2019-01-Introduction%20and%20Word%20Vectors/#word2vec-introduction

https://cloud.tencent.com/developer/article/1884740

https://baike.baidu.com/item/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/365730?fr=aladdin

https://zhuanlan.zhihu.com/p/65190736

https://zhuanlan.zhihu.com/p/202518583

https://zhuanlan.zhihu.com/p/88362664

https://hillzhang1999.gitee.io/2020/04/04/nlp-zi-xue-bi-ji-tiao-jian-sui-ji-chang-mo-xing/

  1. 自然语言处理概述

    自然语言处理(Natural Language Processing, NLP)研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。

    1. 自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。

      • 自然语言理解(NLU):是让电脑把输入的语言变成有意思的符号和关系,然后根据目的再处理。常见应用有分词、词性标注、句法分析、文本分类、信息检索、信息抽取、文字校对等。
      • 自然语言生成(NLG):是把计算机数据转化为自然语言。常见应用有机器翻译、问答系统等。
    2. 自然语言处理的四大任务

      1. 序列标注

        序列到序列的任务。在序列标注中,我们想对一个序列的每一个元素标注一个标签。一般来说,一个序列指的是一个句子,而一个元素指的是句子中的一个词。具体任务有分词、词性标注、命名实体标注、词意角色标注等。

      2. 文本分类

        序列到类别的任务,最常见的是情感分类任务,使用LSTM后接Softmax输出分类结果。

      3. 句子关系判断

        判断两句话的关系,比如问答系统中判断一个问题和一个答案是否匹配,语义相似度匹配中判断两句话是否表达同一个意思等。

      4. 文本生成

        通常是直接面向普通用户的系统任务。例如机器翻译、自动文本摘要、阅读理解、语音识别、对话系统、问答系统等。

    3. 自然语言处理的一般流程:获取语料、文本预处理、特征工程、特征选择、模型训练、模型评估、上线应用。

  1. 中文文本预处理概述

    文本预处理是自然语言处理中必不可少的一环,且选择什么样的文本预处理方法、处理结果如何都会对下游的工作效果产生非常大的影响。中文文本预处理主要有以下几个环节:语料清洗、分词、词性标注、去停用词。

    1. 语料清洗

      去除噪音数据,仅保留有用数据。通常是删去一些标点符号、乱码等,使用正则表达式就能够取得很好的效果。

    2. 分词

      分词是中文文本预处理中特有的问题,因为中文不像英语天然地有空格作为分界符。现在的分词方法大概可以分为三个类别:基于字符串匹配的分词方法、基于统计的分词方法和基于理解的分词方法。

      1. 基于字符串匹配的分词方法

        又称机械分词方法,它是按照一定的扫描方式将待分词的句子中的词条与语料库中的词进行匹配,然后返回相应的结果。

        • 正向最大匹配法(从左到右):定义滑动窗口的长度n,首先取出句子的前n个字符,判断是否存在于词库中。如果存在,则返回第一个分词,滑动窗口向后滑动n个位置;如果不存在,滑动窗口缩小1,判断前两个字符是否存在于词库,如果存在,则返回这个分词,滑动窗口向后滑动n-1;不存在则继续缩小滑动窗口,直至将整个句子遍历完。
        • 逆向最大匹配法(从右到左):与正向相同,不同的是从末尾开始遍历。
        • 双向最大匹配算法:进行一次正向,再进行一次逆向。
      2. 基于统计的分词方法

        在给定大量已经分词的文本的前提下,利用统计机器学习模型学习词语切分的规律(称为训练),从而实现对未知文本的切分。基于统计的分词方法从一定程度上可以考虑到语义问题,得到最好的分词结果,主要的统计模型有:N元文法模型(N-gram),隐马尔可夫模型(Hidden Markov Model ,HMM),最大熵模型(ME),条件随机场模型(Conditional Random Fields,CRF)等。

      3. 基于理解的分词方法

        通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。

    3. 词性标注

      在分好词的基础上,给每个词打上词类标签。

    4. 去停用词

      建立好停用词库之后,在分好词的文本基础上很容易就能够进行停用词的去除。

  1. 基于统计的中文文本分词方法

    1. 最大概率分词方法

      最基本的统计分词方法。一个待分割的字符串有多种分词结果,最大概率分词的原则是将其中概率最大的那个作为该字符串的分词结果。这种分词方法通常结合多种机械分词方法来进行。

    2. 最大熵模型(ME)

      最大熵模型属于对数线性模型,在给定训练数据的条件下,对模型进行极大似然估计或正则化极大似然估计。

    3. N元文法模型(N-Gram)

      基于马尔科夫假设提出的模型。

      • 马尔科夫假设一个词的出现仅与它之前的若干个词有关。

      N元语法模型的基本的公式可以看作为概率公式P:P(w_i|w_1w_2……w_{i-1})

      如果一个词的出现仅依赖于它前面出现的一个词,那么我们就称之为 Bi-gram;如果一个词的出现仅依赖于它前面出现的两个词,那么我们就称之为 Tri-gram。在此基础上使用极大似然估计计算条件概率。

    4. 隐马尔可夫模型(HMM)

      • 齐次马尔科夫性假设:假设隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关
      • 观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测即状态无关

      给定隐马尔可夫模型λ=[A,B,π],其中\pi为初始状态概率,A为状态转移概率,B为观测概率(b_{ij}表示在任意时刻 t,若状态为S_i,则观测值O_j被获取的概率)。一旦一个系统可以作为 HMM 被描述,就可以用来解决三个基本问题。

      • 评估:给定 HMM,求某个观察序列的概率。
      • 解码:给定 HMM,以及某个观察序列,求得状态序列。
      • 学习:给定观察序列,得到一个HMM。

      为了解决分词问题,可以建立以下的HMM:

      • 状态集合:{B:分词词首;M:分词词中;E:分词词尾;S:单个词分词}
      • 观测值:一个字就是一个观测值。
      • 观测序列:一句话。
      • 初始状态概率、状态转移概率和观测概率可以基于以上定义从数据集中计算得出。

      分词问题就是给定一句话(观察序列),获取分词结果(状态序列),可以转化为解码问题。对于解码问题,使用维特比算法求解。

    5. 条件随机场模型(CRF)

      条件随机场模型是隐马尔可夫模型和对数线性模型的结合。

      • 可以看作是分类模型Log-Linear Model加入了HMM中的转移特征(齐次马尔可夫假设)从而转变成为的结构化分类模型,从而可以进行Seq2Seq的标注。也就是说,对于样本的预测不再是相互独立的,对于某个样本的预测需要考虑前面或者后面样本预测的结果。
      • 也可以看作是生成模型HMM中引入了Log-Linear Model中的自定义特征函数,把它变成了一个判别模型,解决了HMM的输出独立性假设问题和有限元马尔可夫假设问题, 不仅可以表达观测之间的依赖,还可表示当前观测与前后多个状态之间的复杂依赖。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容