前言

自然语言处理(Natural Language Processing)是计算科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分(可耻的粘贴)。
既然NLP是人工智能的一部分,那么我们就来简单说说人工智能。

人工智能

人工智能的目标

  • 推理
  • 自主学习 & 调度
  • 机器学习
  • 自然语言处理(NLP)
  • 计算机视觉处理
  • 机器人
  • 通用智能

人工智能三大阶段

  • 机器学习:只能系统使用一系列算法从经验中进行学习
  • 机器智能:机器使用的一系列从经验中进行学习的高级算法,例如深度神经网络(深度学习),人工智能目前也处于现阶段
  • 机器意识:不需要外部数据就能从经验中自我学习。

人工智能、机器学习、深度学习的关系

  • 机器学习:一种实现人工智能的方法
  • 深度学习:一种实现机器学习的技术

人工智能的类型

  • 狭义人工智能(ANI):它包含基础的、角色行任务。例如小爱、Siri、Alexa这样的聊天机器人,个人助手完成的任务。
  • 通用人工智能(AGI):通用人工智能包含人类水平的任务,它涉及到机器的持续学习。
  • 强人工智(ASI):强人工智能代指比人类更聪明的机器。

怎样让机器智能化

  • 自然语言处理
  • 知识表示
  • 自动推理
  • 机器学习

NLP

NLP的目标

NLP的目标是让计算机在理解语言方面像人类一样智能,最终的目标是弥补人类交流(自然语言)和计算机理解(机器语言)之间的差距。

为什么需要NLP

有了NLP,就可能完成自动语音、自动文本的编写等任务。让我们从大量的数据中解放出来,让计算机去执行。
这些任务包括自动生成给定文本的摘要、机器翻译及其他的任务。

NLP语言学分析

现在,有一个给定的文本。NLP可以从下面三个不同等级来分析该给定文本:

  • 语法学:该文本语法的正确性
  • 语义学:该文本的含义是什么
  • 语用学:该文本的目的的什么

除此之外,如果文本中含有音、视频,那么NLP又要从以下两方面来着手分析:

  • 音韵学:该语言中发音的系统化组织
  • 词态学:研究单词构成以及彼此之间的关系

NLP中理解语义的方法:

  • 分布式:利用机器学习和深度学习的大规模统计策略
  • 框架式:句法不同,但语义相同的句子在数据结构被表示为程式化的情景
  • 理论式:思路是句子指代的正真的词结合句子的部分内容可表达全部含义
  • 交互式(学习):它涉及大语用方法,在交互式学习环境中用户教计算机一步一步的学习语言

NLP的流程

NLP的机制涉及两个流程:

  • 自然语言理解
  • 自然语言生成

自然语言理解(NLU)

自然语言理解(Nature Language Understanding)是要理解给定文本的含义。比如文本内的每个单词的特性与结构需要被理解。在理解结构的基础上,NLU要理解自然语言中以下几个歧义:

  • 词法歧义性:单词有多重含义
  • 句法歧义性:语句有多重解析树
  • 语义歧义性:句子有多重含义
  • 回指歧义性:前文中的词语或句子在后面句子中有不同的含义

自然语言生成(NLG)

NLG是从结构化数据中以可读的方式自动生成文本的过程。
自然语言生成可分为三个阶段:

  • 文本规划:完成结构化数据中基础内容的规划
  • 语句规划:从结构化数据中组合语句来表达信息流
  • 实现:生产语法通顺的语句来表达文本

NLP的应用领域

聊天机器人

聊天机器人或者智能代理指的是,你能通过APP、聊天窗口、语音等方式进行交流的计算机程序。
它的重要性在越来越多的地方得到体现:

  • 它对理解数字化客服和频繁咨询的常规问答领域中的变化至关重要
  • 它在一些特定场景下非常的有用及高效,特别是会被频繁问到的高度可预测的问题时

聊天机器人的工作机制:

  • 基于知识:包含信息库,根据客户的问题回应相对的问题
  • 数据存储:包含与用户交流的历史信息
  • NLP层:该层将用户的问题转译为信息,从而作出合适的回应
  • 应用层:用来与用户交互的应用接口

NLP中深度学习的重要性

  • 它使用基于规则的方法将单词表示为one-hot编码向量
  • 传统的方法注重句法表征,而非语义表征
  • 词袋,分类模型不能够分别特定语境

深度学习的三项能力:

  • 可表达性:该能力描述了机器如何能近似通用函数
  • 可训练性:深度学习系统学习问题的速度与能力
  • 可泛化性:在未训练过的数据上,机器做预测的能力

除此之外,深度学习还有其他的能力,比如可解释性、模块性、可迁移性、延迟、对抗稳定性、安全方面等。

日志中的NLP

在日志分析和日志挖掘两方面,NLP在发挥着不可替代的作用。通过词语切分、词干提取、词形还原、解析等不同技术被用来将日志转换成结构化的形式。
在日志分析中,NLP通过下列技术完成分析功能:

  • 模式识别:将日志信息与模式薄中的信息进行对比,从而过滤信息的技术
  • 标准化:日志信息的标准化将不同的信息转换为同样的格式。当不同来源的日志信息中有不同的疏于,但其含义相同时,需要进行标准化
  • 分类& 标签:不同日志信息的分类 & 标签涉及到对信息的排序,并用不同的关键词进行标注
  • Artificial Ignorance:使用机器学习算法抛弃无用日志信息的技术。它也可被用来检测系统异常

当日志以很好的形式组织起来之后,我们就能从日志中提取有用的信息。

NLP的其他领域

除了在大数据、日志挖掘和分析中,NLP还浪迹在其他的应用领域中:

    • 自动摘要:在给定文本的情况下,摒弃次要信息完成文本摘要
    • 情感分析:在给定文本中预测期主题,比如文本中是否包含批判、观点、评论等
    • 文本分类:按照其领域分类不同的、新闻报道、期刊等。比如流行的文本分类是垃圾邮件、基于写作风格可检测作者的姓名
    • 信息提取:建议电子邮件程序自动添加事件到日历

ES-自然语言处理的更多相关文章

  1. 自然语言处理之Levenshtien Distance算法研究

    自然语言处理中,一个很重要的应用就是问答系统,这里面,涉及到问题和知识库里面的问题的匹配度,从而检索出问题的答案,这个是一个比较常见的应用算法. 编辑距离(Edit Distance),又称Leven ...

  2. 自然语言处理领域重要论文&资源全索引

    自然语言处理(NLP)是人工智能研究中极具挑战的一个分支.随着深度学习等技术的引入,NLP领域正在以前所未有的速度向前发展.但对于初学者来说,这一领域目前有哪些研究和资源是必读的?最近,Kyubyon ...

  3. 基于hanlp的es分词插件

    摘要:elasticsearch是使用比较广泛的分布式搜索引擎,es提供了一个的单字分词工具,还有一个分词插件ik使用比较广泛,hanlp是一个自然语言处理包,能更好的根据上下文的语义,人名,地名,组 ...

  4. Es学习第五课, 分词器介绍和中文分词器配置

    上课我们介绍了倒排索引,在里面提到了分词的概念,分词器就是用来分词的. 分词器是ES中专门处理分词的组件,英文为Analyzer,定义为:从一串文本中切分出一个一个的词条,并对每个词条进行标准化.它由 ...

  5. Java ES 实现or查询

    es mapping里有三个字段: A:Integer B:Integer C:TEXT 现在想实现一个查询,来检索  (  (A =1 and B=2)  or (c like "test ...

  6. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  7. 【HanLP】HanLP中文自然语言处理工具实例演练

    HanLP中文自然语言处理工具实例演练 作者:白宁超 2016年11月25日13:45:13 摘要:HanLP是hankcs个人完成一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环 ...

  8. Python自然语言处理工具小结

    Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...

  9. OpenGL ES 3.0: 图元重启(Primitive restart)

    [TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...

  10. 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路

    最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...

随机推荐

  1. Java面试必会知识点

    1.== 和 equals()比较: (1)== 是运算符,equals()是Object中定义的方法: (2)== 比较的是 数值 是否相同,基本类型比较数值,引用类型比较对象地址的数值:且变量类型 ...

  2. delphi三层架构(使用SATRDA改造,客户端代码不变)

    我们的delphi程序很多是以前开发的,采用典型的CS架构,由程序直接连接数据库.现在需要改成在外网可以直接操作软件.先把数据库搬到了阿里云上,测试发现直接连数据库和VPN连接测试速度很慢,直连还容易 ...

  3. node安装与升级

    node安装与升级 1.安装 sudo apt-get install nodejs sudo apt-get install npm 2.升级 如果node不是最新的,node有一个模块叫n,是专门 ...

  4. hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题目意思:有 资金 n 和 m 种类型的大米,对第 i 种类型的大米,价格.数量.袋数分别是: ...

  5. 书写优雅的shell脚本(一)- if语句

    使用unix/linux的程序人员几乎都写过shell脚本,但这其中很多人都是为了完成功能而在网上找代码段,这样写出来的shell脚本在功能方面当然是没有什么问题,但是这样的方式不能写出优雅的shel ...

  6. kali-linux简单学习

    一. curl --head 返回操作系统的版本 同样的Xprobe2可以和nmap一起返回操作系统的版本 nmap 直接加域名或者ip地址,比较权威判断操作系统版本,或者服务版本,以及开的端口 nm ...

  7. 链表中获取倒数第K个结点

    /* * 链表中查找倒数第K个结点.cpp * * Created on: 2018年5月1日 * Author: soyo */ #include<iostream> using nam ...

  8. UVa 11040 Add bricks in the wall (水题递推)

    题意:给定一个金字塔,除了最后一行,每个数都等于支撑它的两个数的和,现在给奇数行的左数奇数位置,求整个金字塔. 析:很容易看出来,从下往上奇数行等于 a[i][j] = (a[i-2][j-1] - ...

  9. Oracle UNDO Tablespace size & Table Size

    Table Space Query select SEGMENT_NAME,bytes/1024/1024,a.* from dba_segments a UNDO Table Space Size ...

  10. django QQ认证登录

    一.开发环境 django 1.10.2 python3.5.2 django-social-auth 0.3.6 二.申请QQ互联 APPID及SECRECT_KEY 大致步骤: 1.成为QQ互联开 ...