一、简介
NLP是啥呢?用我不成熟的英文转换一下就是Natural Language Processing,翻译一下就是自然语言处理,我.....还是不知道啥意思!
其实简单的理解就是我们平时说的话,我们自己说的话咋还要处理呢?不是都能听懂吗?
没毛病,你是能听懂,可是计算机听不懂
所以要经过处理,让计算机能听得懂,计算机听懂以后要给你反馈,可你又听不懂了,所以又要经过处理,让你能听懂!
这就是NLP,可以将其理解为人与计算机沟通的桥梁!
二、核心点
上面提到NLP是人与计算机沟通的桥梁,那么这个桥梁主要需要做哪些工作呢?来看个图:
从图中来看,主要是两点:能听懂,然后会说(语言理解和语言生成),也就是:
NLU即是 Natural Language Understanding,NLG即是 Natural Language Generation,
三、应用
说了这么多,那NLP到底目前有哪些应用呢?没有应用场景很多时候容易不得精华而糟粕一堆!下面主要说说应用点:
- 聊天机器人
如:siri、小爱同学、小冰等
- 机器翻译
如:有道翻译、谷歌翻译、百度翻译、彩云小译等
- 情感分析
识别文本的情感状态,是积极还是消极
- 语音识别
如siri将人的语音转换为文字
- 文本分类
如将诸多新闻自动分类为:科技类、体育类、财经类等
- 文本生成
如智搜科技的写作机器人,可自动写文章
- 自动摘要
自动生成文章的摘要
- 智能搜索
如百度搜索“阿里巴巴创始人”,搜到的是“马云”,而不是阿里巴巴
等等
四、主要任务
1、分词
1.1 简介
从语言大类来说,分词主要针对的还是中文,因为中文一句话之间,除了逗号没有其他任何分隔符,除肉眼可分之外,计算机是无法识别出每一句话中的词和词组的!少时古文学断句,而立之初又分词
1.2举例
输入:
我热爱生活
输出:
我 热爱 生活
1.3 工具介绍
1.3.1 jieba
https://github.com/fxsjy/jieba
1.3.2 hanlp
1.3.3 stanford NLP
1.3.4 fudanNLP
https://github.com/FudanNLP/fnlp
1.3.5 LTP
1.3.6 snowNLP
https://github.com/isnowfy/snownlp
1.3.7 PKUSeg
https://github.com/lancopku/PKUSeg-python
1.3.8 nltk
2、词向量
2.1 简介
自然语言中的很多问题都是以数学的方式进行求解的,而数学就涉及到一个计算的问题,语言本身是无法进行计算的,所以就对自然语言进行向量化,达到可计算的目的
2.2 举例
输入:
热爱
输出:
[0.12,0333,0.564,0.64433]
2.3 词向量方法
2.3.1 one hot
https://www.jianshu.com/p/40c8ca82ebc2
2.3.2 word2vec
https://zhuanlan.zhihu.com/p/26306795
2.3.3 glove
http://www.fanyeong.com/2018/02/19/glove-in-detail/
https://blog.csdn.net/cuipanguo/article/details/82864983
https://blog.csdn.net/weixin_37947156/article/details/83145778
2.3.4 fasttext
https://fasttext.cc/
https://www.jiqizhixin.com/articles/2018-06-05-3
https://blog.csdn.net/feilong_csdn/article/details/88655927
2.3.5 elmo
https://zhuanlan.zhihu.com/p/38254332
3、文本分类
3.1 简介
文本分类是按照一定的标准对文本进行自动归类的过程
3.2 举例
输入:
1、我爱我家
2、“乒乓外交”指1971年期间中华人民共和国与美国两国乒乓球队互访的一系列事件
3、Python是一种跨平台的[计算机程序设计语言
输出:
1、生活
2、政治
3、技术
3.3 文本分类常用方法
3.3.1 朴素贝叶斯
http://bbs.elecfans.com/jishu_1659159_1_1.html
3.3.2 fastText
3.3.3 textCNN
http://www.pianshen.com/article/8192185443/
3.3.4 textRNN
http://www.pianshen.com/article/8192185443/
4、情感分析
4.1 简介
情感分析可以理解为从文本中挖掘出情感状态,如积极或者消极,喜欢或是厌恶等等
4.2 举例
输入:
我爱我家
输出:
积极
4.3 开源工具
4.3.1 snowNLP
https://github.com/isnowfy/snownlp
5、关系抽取
5.1 简介
关系抽取的主要任务是从文本中识别出实体对,并抽取出实体对之间的关系
5.2 举例
输入:
小明的爸爸李华每次都为小明的成绩犯难
输出:
小明--爸爸-->李华
5.3 开源方式
5.3.1 deepKE
http://www.openkg.cn/tool/deepke
5.3.2 deepdive
http://www.openkg.cn/tool/cn-deepdive
5.4 实现方式
5.4.1 基于规则
https://www.jianshu.com/p/8df537f45ce5
5.4.2 基于依存句法分析
详见 甘丽新《基于句法和语义分析的中文实体关系抽取》
5.4.3 bootstrap
5.4.4 snowball
http://www.mathcs.emory.edu/~eugene/papers/dl00.pdf
5.4.5 CRF
5.4.6 lstm+CRF
https://www.jianshu.com/p/7875e5e1e81c
5.4.7 openIE
http://www.doc88.com/p-9149661317410.html
5.4.8 强化学习抽取
http://www.mooc.ai/open/course/318
网友评论