赞
踩
随着自己学习NLP知识的深入,觉得应该把自己所学的知识给记录下来,一是为了保存和归纳自己的知识,二是为做一下分享。看了网上很多博客、知乎以及论坛等,觉得大家把NLP的知识讲的都很散,没有系统性的从轮子开始造车,所以想尽自己所知道的知识,写出一系列的由浅入深的NLP知识,希望对于那些想要从轮子开始造车的人给与一定的帮助和理解。下面就开始我们的NLP的教程吧
自然语言处理又简称NLP,可以把对NLP的研究分为两个板块:NLU+NLG。NLU可以理解为第一个阶段,NLG可以理解为第二个阶段
首先,我们先进行第一个阶段NLU方面的学习,
相信很多人都知道分词这个概念。
那常见的分词工具有哪些呢?
相信很多学习python的小伙伴都知道一个著名的分词工具——jieba分词。
在这里我再科普几个比较著名的分词工具:HanNLP、FudanNLP
举栗:今年夏天我要去海边游泳
分词结果:|今年|夏天|我|要去|海边|游泳
这里分词的window_size是可以再代码里面设置的
以为我分词讲那么点就结束了?
当然不会
接下来,我讲介绍一下分词常用的算法:最大匹配算法
最大匹配算法可以分为:前向最大匹配、后向最大匹配以及双向最大匹配算法
栗子:我们经常有意见分歧
词典:[”我们“,”经常“,”有“,”有意见“,”意见“,”分歧“]
注:肯定有小伙伴对词典这里很迷,解释一下,这个词典是我们事先就知道的,就像我们汉语有新华词典、英语有英文词典。词典里面包含了我们所知道的任何单词,我这里只简单的举了个栗子。
我们假设max_len = 5
此时从头开始遍历:
【我们经常有】,这个单词词典里面没有
【我们经常】,没有
【我们经】没有
【我们】有,剔除【我们】继续遍历
【经常有意见】没有
【经常有意】没有
【经常有】没有
【经常】有,剔除【经常】继续遍历
【有意见分歧】没有
【有意见分】没有
【有意见】有,剔除【有意见】继续遍历
【分歧】有,结束
分词结果是:我们|经常|有意见|分歧
其实就是原理和前向最大匹配算法差不多
栗子:我们经常有意见分歧
词典:[”我们“,”经常“,”有“,”有意见“,”意见“,”分歧“]
我们假设max_len = 5
此时从尾部开始遍历:
【有意见分歧】,这个单词词典里面没有
【意见分歧】,没有
【见分歧】没有
【分歧】有,剔除【分歧】继续遍历
【经常有意见】没有
【常有意见】没有
【有意见】有,剔除【有意见】继续遍历
【我们经常】没有
【们经常】没有
【经常】有,剔除【经常】继续遍历
【我们】有,结束
分词结果是:我们|经常|有意见|分歧
因为用的不多,所以在此不多做介绍,想了解的可以自行百度,主要掌握前面两种。
细心的小伙伴可能发现问题了
为啥分词结果是:我们|经常|有意见|分歧
而不是:我们|经常|有|意见|分歧
到底哪种分词结果才算是好的分词结果呢?哪种才是我们希望得到的呢?
针对这个问题,下一集我将为大家介绍语言模型。
敬请期待
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。