人工智能自然语言处理NLP入门教程

导读:自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。

语言是人类区别其他动物的本质特性。在所有生物中,只有人类才具有语言能力。人类的多种智能都与语言有着密切的关系。人类的逻辑思维以语言为形式,人类的绝大部分知识也是以语言文字的形式记载和流传下来的。因而,它也是人工智能的一个重要,甚至核心部分。


下面是整理的其他文章,希望对大家有所帮助,点击即可阅读

人工智能数学基础(四)人工智能数学基础(一)

人工智能数学基础(三)人工智能数学基础(二)


人工智能常用的十大算法

为了方便大家学习交流,我建了一个扣裙:966367816(学习交流、大牛答疑、大厂内推)
另外我还整理了整整200G的人工智能学习笔记、课程视频、面试宝典一并可以无套路免费
分享给大家!  

定义

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

 NLP致力于让计算机能够理解和生成人类语言。NLP技术应用于多个领域,比如天猫精灵和Siri这样的语音助手,还有机器翻译和文本过滤等。机器学习是受NLP影响最深远的领域之一,尤为突出的是深度学习技术。该领域分为以下三个部分:

1.语音识别:将口语翻译成文本。

2.自然语言理解:计算机理解人类的能力。

3.自然语言生成:计算机生成自然语言。

NLP为什么有难度

人类语言有其特殊性。人类语言专门用于传达讲话者和写作者的意思,即使小孩子能够很快学会,它依然是一个复杂的系统。它的另一个显著之处在于它完全与符号有关。人类大脑对这些符号的编码是持续的激活模式,在这个模式中,符号通过声音和视觉的连续信号实现传输。

由于其复杂性,理解人类语言被认为是一项艰巨的任务。例如,在句子中排列单词有无数种不同的方法。此外,一个单词可以有多种含义,并且正确解释句子需要恰当的语境信息。每种语言或多或少都是独特且含糊的。比如:“The Pope’s baby steps on gays”,这句话显然有两种截然不同的解释,这是反映NLP中的困难之处的一个很好的例子。

随着计算机对语言的理解愈渐完美,将会产生可以处理互联网上全部信息的人工智能(AI),继而产生强人工智能(AGI)

语义分析是NLP中最棘手的部分之一,仍未完全解决。例如,语音识别技术已非常成熟,并且工作近乎完美,但仍然缺乏在自然语言理解(例如语义)中的熟练程度。手机基本上可以理解我们所说的内容,但通常无法用它做任何事情,因为它不了解其背后意义。

技术

数据稀疏与平滑技术

大规模数据统计方法与有限的训练语料之间必然产生数据稀疏问题,导致零概率问题,符合经典的zip'f定律。如IBM, Brown:366M英语语料训练trigram,在测试语料中,有14.7%的trigram和2.2%的bigram在训练语料中未出现。

人们为理论模型实用化而进行了众多尝试与努力,诞生了一系列经典的平滑技术,它们的基本思想是"降低已出现n-gram条件概率分布,以使未出现的n-gram条件概率分布非零",且经数据平滑后一定保证概率和为1,详细如下:

加一平滑法,又称拉普拉斯定律,其保证每个n-gram在训练语料中至少出现1次,以bigram为例,公式如图:

 其中,V是所有bigram的个数。

其基本思想是利用频率的类别信息对频率进行平滑。调整出现频率为c的n-gram频率为c*:

 直接的改进策略就是"对出现次数超过某个阈值的gram,不进行平滑,阈值一般取8~10",其他方法请参见"Simple Good-Turing"。

不管是Add-one,还是Good Turing平滑技术,对于未出现的n-gram都一视同仁,难免存在不合理(事件发生概率存在差别),所以这里再介绍一种线性插值平滑技术,其基本思想是将高阶模型和低阶模型作线性组合,利用低元n-gram模型对高元n-gram模型进行线性插值。因为在没有足够的数据对高元n-gram模型进行概率估计时,低元n-gram模型通常可以提供有用的信息。公式如下如右图1: 

扩展方式(上下文相关)为如右图:

λs可以通过EM算法来估计,具体步骤如下:

重要应用

1、机器翻译。机器翻译(MachineTranslation)是指运用机器,通过特定的计算机程序将一种书写形式或声音形式的自然语言,翻译成另一种书写形式或声音形式的自然语言。机器翻译是一门交叉学科(边缘学科),组成它的三门子学科分别是计算机语言学、人工智能和数理逻辑,各自建立在语言学、计算机科学和数学的基础之上。

2、信息检索。信息检索是从相关文档集合中查找用户所需信息的过程。信息检索的基本原理是将用户输入的检索关键词与数据库中的标引词进行对比,当二者匹配成功时,检索成功。

3、自动问答。自动问答是指利用计算机自动回答用户所提出的问题以满足用户知识需求的任务。自动问答系统在回答用户问题时,首先要正确理解用户所提出的问题,抽取其中关键的信息,在已有的语料库或者知识库中进行检索、匹配,将获取的答案反馈给用户。这一过程涉及了包括词法句法语义分析的基础技术,以及信息检索、知识工程、文本生成等多项技术。

关键技术

句法分析:也称为语法分析或解析,是通过遵循正式语法规则来分析自然语言的过程。语法规则适用于单词和词组,而不是单个单词。语法分析主要为文本分配语义结构。

语义分析:是理解单词、符号和语句结构的含义和解释的过程,这使计算机能够以人类的方式理解部分涉及意义和语境的自然语言。

文本生成语音识别

汉字编码词法分析

处理工具

OpenNLP:是一个基于Java机器学习工具包,用于处理自然语言文本。支持大多数常用的 NLP 任务,例如:标识化、句子切分、部分词性标注、名称抽取、组块、解析等。

 FudanNLP:主要是为中文自然语言处理而开发的工具包,也包含为实现这些任务的机器学习算法和数据集。本工具包及其包含数据集使用LGPL3.0许可证。开发语言为Java。

功能:

1.文本分类新闻聚类

2. 中文分词 词性标注 实体名识别 关键词抽取 依存句法分析 时间短语识别

3. 结构化学习 在线学习 层次分类 聚类 精确推理

深度学习和自然语言处理

深度学习和自然语言的核心是“词义”,在这里,单词用一个实数向量来表示。因此,通过向量来代表单词单词,我们可以将单词置于高维度的空间中,由向量表示的单词起到语义空间的作用。这仅仅意味着在该高维向量空间中,形近意近的单词倾向于聚集在一起。

如果想要知道某一组聚集成类的单词的含义,可以通过使用主成分分析法(PCA),也可以使用降维法。但这些方法太简单并且会遗漏了周边的大量信息,因而产生误差。在研究的初始阶段,这些方法很好用,(如数据科学中的逻辑或线性回归)但并不是前沿技术。

我们还可以将单词的一部分当作向量,这些向量可以代表单词的含义。想象一下“undesirability”这个词。使用“形态学方法”,它涉及一个词所具有的不同部分,我们认为它由词素(单词部分)构成:“Un + desire + able + ity”。每个语素都有自己的向量。这允许我们构建一个神经网络,它可以构成一个更大的单位的意义,而更大的单位又由所有这些语素组成。

深度学习还可以通过创建句法分析器来理解句子的结构,谷歌正在使用这样的依赖解析技术,在他们的“McParseface”和“SyntaxNet”(两种语言解析器),不过更加宏大,更加复杂。

通过分析句子结构,我们开始理解句子的意义,可以从单词的含义开始,也可以从整个短语和句子开始,无论单词的意义、短语还是句子,都用向量来表示。如果想知道句子之间的关系,我们可以创建神经网络来帮助分析。

深度学习也适用于情感分析。请看这个电影评论:“这部电影不在乎是不是巧妙,也不在乎幽默与否”。传统的机器学习算法会认为这是一个积极的评论,因为“聪明”和“幽默”是积极的词汇,但是神经网络能够识别出它的真正含义。

另外,深度学习算法实现的机器翻译中,它从句子开始翻译,并生成一个向量,然后用另外一种语言生成所需要的信息。

总而言之,NLP与深度学习相结合,就是表示单词、短语的向量,以及它们的含义。

技术难点

单词边界界定:在口语中,词与词之间通常是连贯的,而界定字词边界通常使用的办法是取用能让给定的上下文最为通顺且在文法上无误的一种最佳组合。在书写上,汉语也没有词与词之间的边界。

词义的消歧:许多字词不单只有一个意思,因而我们必须选出使句意最为通顺的解释。

句法的模糊性:自然语言的文法通常是模棱两可的,针对一个句子通常可能会剖析(Parse)出多棵剖析树(Parse Tree),而我们必须要仰赖语意及前后文的信息才能在其中选择一棵最为适合的剖析树。

或不规范输入:例如语音处理时遇到外国口音或地方口音,或者在文本的处理中处理拼写,语法或者光学字符识别((OCR)的错误。

语言行为计划:句子常常并不只是字面上的意思;例如,“你能把盐递过来吗”,一个好的回答应当是把盐递过去;在大多数上下文环境中,“能”将是糟糕的回答,虽说回答“不”或者“太远了我拿不到”也是可以接受的。再者,如果一门课程上一年没开设,对于提问“这门课程去年有多少学生没通过?”回答“去年没开这门课”要比回答“没人没通过”好。


需要课件配套课件资料和源码笔记的伙伴加我微信免费领取!
为了方便大家学习交流,我建了一个扣裙:966367816学习交流、大牛答疑、大厂内推)
另外我还整理了整整200G的人工智能学习笔记、课程视频、面试宝典

一并可以无套路免费分享给大家! 

欢迎大家来撩我呀~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值