当前位置:   article > 正文

小白都看得懂的自然语言处理教程——概述_最通俗易懂的自然语言处理课程

最通俗易懂的自然语言处理课程

一、概述

随着自己学习NLP知识的深入,觉得应该把自己所学的知识给记录下来,一是为了保存和归纳自己的知识,二是为做一下分享。看了网上很多博客、知乎以及论坛等,觉得大家把NLP的知识讲的都很散,没有系统性的从轮子开始造车,所以想尽自己所知道的知识,写出一系列的由浅入深的NLP知识,希望对于那些想要从轮子开始造车的人给与一定的帮助和理解。下面就开始我们的NLP的教程吧

二、自然语言处理介绍

自然语言处理又简称NLP,可以把对NLP的研究分为两个板块:NLU+NLG。NLU可以理解为第一个阶段,NLG可以理解为第二个阶段

  • NLU:U代表understand,文本至意思的理解。通俗的说,就是研究如何把一句话和一段文字的意思,用数学表示出来(例如ont-hot编码、词向量等等)
  • NLG:G代表generate,表示如何把从第一个阶段学习到的文本意思给表示出来,例如机器翻译、看图说话、根据文字生成图片等等

首先,我们先进行第一个阶段NLU方面的学习,

三、NLU第一步:分词

相信很多人都知道分词这个概念。
那常见的分词工具有哪些呢?
相信很多学习python的小伙伴都知道一个著名的分词工具——jieba分词。

在这里我再科普几个比较著名的分词工具:HanNLP、FudanNLP
举栗:今年夏天我要去海边游泳
分词结果:|今年|夏天|我|要去|海边|游泳

这里分词的window_size是可以再代码里面设置的

以为我分词讲那么点就结束了?
当然不会

接下来,我讲介绍一下分词常用的算法:最大匹配算法
最大匹配算法可以分为:前向最大匹配、后向最大匹配以及双向最大匹配算法

前向最大匹配算法(forward-max matching)

栗子:我们经常有意见分歧
词典:[”我们“,”经常“,”有“,”有意见“,”意见“,”分歧“]
注:肯定有小伙伴对词典这里很迷,解释一下,这个词典是我们事先就知道的,就像我们汉语有新华词典、英语有英文词典。词典里面包含了我们所知道的任何单词,我这里只简单的举了个栗子。

我们假设max_len = 5
此时从头开始遍历:
【我们经常有】,这个单词词典里面没有
【我们经常】,没有
【我们经】没有
【我们】有,剔除【我们】继续遍历
【经常有意见】没有
【经常有意】没有
【经常有】没有
【经常】有,剔除【经常】继续遍历
【有意见分歧】没有
【有意见分】没有
【有意见】有,剔除【有意见】继续遍历
【分歧】有,结束
分词结果是:我们|经常|有意见|分歧

后向最大匹配算法(backward-max matching)

其实就是原理和前向最大匹配算法差不多
栗子:我们经常有意见分歧
词典:[”我们“,”经常“,”有“,”有意见“,”意见“,”分歧“]

我们假设max_len = 5
此时从尾部开始遍历:
【有意见分歧】,这个单词词典里面没有
【意见分歧】,没有
【见分歧】没有
【分歧】有,剔除【分歧】继续遍历
【经常有意见】没有
【常有意见】没有
【有意见】有,剔除【有意见】继续遍历
【我们经常】没有
【们经常】没有
【经常】有,剔除【经常】继续遍历
【我们】有,结束
分词结果是:我们|经常|有意见|分歧

双向最大匹配算法(bi-directional -max matching)

因为用的不多,所以在此不多做介绍,想了解的可以自行百度,主要掌握前面两种。

细心的小伙伴可能发现问题了
为啥分词结果是:我们|经常|有意见|分歧
而不是:我们|经常|有|意见|分歧

到底哪种分词结果才算是好的分词结果呢?哪种才是我们希望得到的呢?
针对这个问题,下一集我将为大家介绍语言模型。
敬请期待

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/373240
推荐阅读
相关标签
  

闽ICP备14008679号