前言
随着人工智能的不断发展,NLP这门技术也越来越重要,很多人都开启了NLP的学习,本文就介绍了NLP的基础内容。
以下是本篇文章正文内容。
一、NLP是什么?
1. NLP的概念
NLP(Natural Language Processing,自然语言处理)是计算机科学领域及人工智能领域的一个重要研究方向,它研究用计算机来处理、理解、以及运用人类语言,达到人与计算机之间的有效通讯。
语言作为人类最复杂的概念之一,从建模的角度来看,自然语言(或者说人类语言)可以被定义为一组规则或这符号的集合,通过组合集合中的不同的符号来传递各种信息。NLP旨在研究表示语言能力、语言应用的模型,通过建立计算机框架来实现这样的语言模型,并且不断完善这样的语言模型,最后在模型上实现一些实用的、方便人类使用的技术。
2. NLP的研究任务
NLP应用于很多领域,这里大概总结一下:
- 机器翻译
计算机将一种语言翻译成另一种语言的能力,我们所熟知的比较成熟的翻译产品比如Google翻译、百度翻译、有道翻译和科大讯飞的翻译产品等等。 - 情感分析
情感分析一般在评论上比较常见,比如用于识别餐饮店的评论是否积极,也可以用于在水军识别。 - QA
智能问答现在随处可以,比如智能机器人问答,苹果的Siri等等。 - 文本分类
文本分类是机器对照文本按照一定的非类体系自动标注类别的过程。比如常见的垃圾邮件过滤,虚假新闻文本自动识别等等。 - 文摘生成
文摘生成利用计算机自动从原始文献中摘取文摘,这个技术可以帮助人们节省大量的时间成本。 - 舆论分析
舆论分析可以帮助分析话题的热点,传播路径以及发展趋势,对于不好的舆论导向可以进行有效控制。 - 知识图谱
知识图谱技术介绍起来比较麻烦,这里不做进一步的介绍,有兴趣的小伙伴可以自行百度。
二、NLP的发展
NLP大致经历3个发展时期:1956年以前萌芽期,1980~1999快速发展期,以及21世纪的飞速发展期。
1956年以前:1948年香农把离散马尔可夫概率模型应用于语言的自动机;1956年乔姆斯基利用有限状态自动机建立了自然语言的有限状态模型。这一时期,虽然诸如贝叶斯方法、隐马尔可夫、最大熵、支持向量机等经典理论也有提出,但NLP领域还是以基于规则的方法为主。
1980~1999年:科学家们认识到纯规则的方法去解释自然语言则少了某些合理性,话语分析开始取得重大进展。90年代后,基于统计的自然语言处理开始大放异彩,这当然离不开计算机硬件和芯片的发展。
21世纪:2006年,以Hinton为首的几位科学家成功设计出第一个多层神经网络算法——深度学习。目前深度学习在机器翻译,问答系统等多个应用中取得不错成果,并成功应用于商业平台。
三、NLP知识组织结构
1. 基本术语
(1)分词(segment)
词是最小的能独立活动的有意义的语言成分,英文单词以空格为区分,但是中文则没有明显的标记。同一句话,不同的分词会产生不同的语义。举个例子:“南京市长江大桥”,可以理解为“南京市/长江大桥”和“南京/市长/江大桥”。目前的分词技术包含基于词典的匹配方法,基于统计的方法等等,在后面的博客中会另起一章详细介绍。
(2)词性标注(part-of-speech tagging)
词性一般指的是动词、名词、形容词等。标注的目的是表征词的一种状态。例如:“我爱北京天安门”,标注完成后是“我/r 爱/v 北京/ns 天安门/ns”。(其中r代词,v动词,ns名词)
(3)命名实体识别(NER,Named Entity Recognition)
指从文本中识别具有特定类别的实体,例如人名、地名、机构名、专有名词等等。
(4)句法分析(syntax parsing)
句法分析的目的是解析句子中的各个成分之间的依赖关系。
(5)指消代谢(anaphora resolution)
指的是消解文本中出现的代词。
2. 知识结构
下图简单的介绍了NLP的知识结构。
四、NLP语料库
语料库是以电子计算机为载体承载语言知识的基础资源。巧妇难为无米之炊,语料库就是NLP中的“米”。主要的大型语料库主要包括但不限于:
(1)中文维基百科
下载地址:https://dumps.wikimedia.org/zhwiki/
(2)搜狗新闻语料库
下载地址:https://www.sogou.com/labs/resource/cs.php
(3)IMDB情感分析语料库
下载地址:https://www.kaggle.com/tmdb/tmdb-movie-metadata
总结
主要介绍NLP一些相关的基础知识。