自然语言处理(NLP)是指使用诸如英语之类的自然语言与智能系统进行通信的AI方法。

如果您希望智能系统(如机器人)按照您的指示执行操作,希望听取基于对话的临床专家系统的决策时,则需要处理自然语言。

NLP领域涉及使计算机用人类使用的自然语言执行有用的任务。 NLP系统的输入和输出可以是 -

  • 言语(说话)
  • 书面文字

NLP的组成部分

在本节中,我们将了解NLP的不同组件。 NLP有两个组件。 这些组件如下所述 -

1. 自然语言理解(NLU)

它涉及以下任务 -

  • 将给定的自然语言输入映射为有用的表示。
  • 分析语言的不同方面。

2. 自然语言生成(NLG)

它是从一些内部表现形式以自然语言的形式产生有意义的短语和句子的过程。 它涉及 -

  • 文字规划 - 这包括从知识库中检索相关内容。
  • 句子规划 - 这包括选择所需的单词,形成有意义的短语,设定句子的语气。
  • 文本实现 - 这是将句子计划映射到句子结构。

NLU的难点

NLU的形式和结构非常丰富, 然而,它是不明确的。 可能会有不同程度的模糊性 -

词汇含糊不清
它处于一个非常原始的层面,如单词级别。 例如,将单词“board”视为名词或动词?

语法级别歧义
一个句子可以用不同的方式解析。 例如,“他用红色帽子举起甲虫。” - 他用帽子举起甲虫,还是举起了一顶带有红色帽子的甲虫?

参照歧义
参考使用代词的东西。 例如,里马去了高里。 她说,“我累了。” - 究竟是谁累?

NLP术语

现在让我们看看NLP术语中的一些重要术语。

  • 音韵 - 这是系统地组织声音的研究。
  • 形态 - 这是建设从原始的有意义的单位的话的研究。
  • 语素 - 它是语言中意义的原始单位。
  • 语法 - 它是指安排单词来表达一个句子。 它还涉及确定单词在句子和短语中的结构作用。
  • 语义 - 它涉及单词的含义以及如何将单词组合成有意义的短语和句子。
  • 语用学 - 它处理在不同情况下使用和理解句子以及句子的解释如何受到影响。
  • 话语 - 它处理前面的句子如何影响下一句话的解释。
  • 世界知识 - 它包括关于世界的一般知识。

NLP步骤

本节介绍NLP中的分析步骤。

词汇分析
它涉及识别和分析单词的结构。 语言的词汇表示语言中的单词和短语的集合。 词法分析将整个txt块分成段落,句子和单词。

句法分析(解析)
它涉及分析句子中的单词,语法和安排单词的方式,以显示单词之间的关系。“The school goes to boy”等句子被英语句法分析器拒绝。

语义分析
它从文本中提取确切含义或字典含义。 文本被检查是否有意义。 它通过映射任务域中的语法结构和对象来完成。语义分析器忽视诸如“热冰淇淋”之类的句子。

话语整合
任何句子的含义都取决于在它之前的句子的含义。 此外,它也带来了紧接着的后续句子的含义。

语用分析
在此期间,所说的重新解释了它的实际意义。 它涉及推导需要真实世界知识的语言方面。

前提条件

如果想用自然语言处理来构建应用程序,那么上下文中的变化就会使其变得非常困难。 语境因素影响机器如何理解特定句子。 因此,我们需要通过使用机器学习方法来开发自然语言应用程序,以便机器也能够理解人类可以理解上下文的方式。

要构建这样的应用程序,我们将使用名为NLTK(自然语言工具包包)的Python包。

导入NLTK

在使用之前需要安装NLTK,它可以在以下命令来安装 -

pip install nltk
要为NLTK构建conda包,请使用以下命令 -
conda install -c anaconda nltk
现在安装NLTK包后,需要通过python命令提示符导入。通过在Python命令提示符下编写以下命令来导入它 -
>>> import nltk

下载NLTK的数据

现在导入NLTK后,我们还需要下载所需的数据。 它可以在Python命令提示符下通过以下命令完成 -

>>> nltk.download()
下文中将会涉及一些安装文件包,
在命令行下安装时 系统可能会提示 Failed building wheel for mysqlclient 

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

pip安装会直接报错,因为某些下载的模块需要vc重新编译。而你的机器里没有c++的编译工具。

那么这是 天使来了,非常感谢这样一个网站

https://www.lfd.uci.edu/~gohlke/pythonlibs/

该网站提供了大量的

Unofficial Windows Binaries for Python Extension Packages

业界良心啊。万分感谢!

安装其他必需的软件包

为了使用NLTK构建自然语言处理应用程序,需要安装必要的软件包。如下 -

gensim

它是一个强大的语义建模库,对许多应用程序很有用。可以通过执行以下命令来安装它 -

pip install gensim
 

pattern

它用于使gensim包正常工作。可以通过执行以下命令来安装它 -

pip install pattern
 
  

易百教程人工智能python补充-NLTK包的更多相关文章

  1. 易百教程人工智能python修正-人工智能无监督学习(聚类)

    无监督机器学习算法没有任何监督者提供任何指导. 这就是为什么它们与真正的人工智能紧密结合的原因. 在无人监督的学习中,没有正确的答案,也没有监督者指导. 算法需要发现用于学习的有趣数据模式. 什么是聚 ...

  2. 易百教程人工智能python修正-人工智能监督学习(分类)

    分类技术或模型试图从观测值中得出一些结论. 在分类问题中,我们有分类输出,如“黑色”或“白色”或“教学”和“非教学”. 在构建分类模型时,需要有包含数据点和相应标签的训练数据集. 例如,如果想检查图像 ...

  3. 易百教程人工智能python修正-人工智能监督学习(回归)

    回归是最重要的统计和机器学习工具之一. 我们认为机器学习的旅程从回归开始并不是错的. 它可以被定义为使我们能够根据数据做出决定的参数化技术,或者换言之,允许通过学习输入和输出变量之间的关系来基于数据做 ...

  4. 易百教程人工智能python修正-人工智能NLTK性别发现器

    在这个问题陈述中,将通过提供名字来训练分类器以找到性别(男性或女性). 我们需要使用启发式构造特征向量并训练分类器.这里使用scikit-learn软件包中的标签数据. 以下是构建性别查找器的Pyth ...

  5. 易百教程人工智能python修正-人工智能数据准备-标记数据

    我们已经知道,某种格式的数据对于机器学习算法是必需的. 另一个重要的要求是,在将数据作为机器学习算法的输入发送之前,必须正确标记数据. 例如,如果所说的分类,那么数据上会有很多标记. 这些标记以文字, ...

  6. 易百教程人工智能python修正-人工智能数据准备-预处理数据

    预处理数据 在我们的日常生活中,需要处理大量数据,但这些数据是原始数据. 为了提供数据作为机器学习算法的输入,需要将其转换为有意义的数据. 这就是数据预处理进入图像的地方. 换言之,可以说在将数据提供 ...

  7. MyBatis整合Spring MVC(易百教程)

    MyBatis是ibatis的升级版,作为hibernate的老对手,它是一个可以自定义SQL.存储过程和高级映射的持久层框架.与Hibernate 的主要区别就是 Mybatis 是半自动化的,而 ...

  8. Mybatis与Spring集成(易百教程)

    整个Mybatis与Spring集成示例要完成的步骤如下: 1.示例功能描述 2.创建工程 3.数据库表结构及数据记录 4.实例对象 5.配置文件 6.测试执行,输出结果 1.示例功能描述 在本示例中 ...

  9. Mybatis 多对多(易百教程)

    mybatis3.0 添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除操作.因此在进行实体类多对多映射表 ...

随机推荐

  1. 跟着ALEX 学python day4集合 装饰器 生成器 迭代器 json序列化

    文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  装饰器 : 定义: 装饰器 本质是函数,功能是装饰其他函数,就是为其他函数添加附加功能. 原则: 1.不能修改被装 ...

  2. datagrid editor动态的改变不同行修改列的editor属性

    onBeforeEdit: function (row) { let options = $(this).treegrid('options'); options.tempeditor = optio ...

  3. djang小项目过程中的小问题 01(django中的configrarion配置、django自带命名规范)

    不知道为什么,明明照着做,但是我就会遇到一些错误问题,但是我觉着自己生下来就是解决问题的. ##1. 第一个是在django运行时,没有配置configration, 这个时候我添加一个django ...

  4. CPU-bound(计算密集型) 和I/O bound(I/O密集型)/数据密集型

    https://blog.csdn.net/q_l_s/article/details/51538039 I/O密集型 (CPU-bound)I/O bound 指的是系统的CPU效能相对硬盘/内存的 ...

  5. 语音识别:从 WaveNet 到 Tacotron,再到 RNN-T

    从 WaveNet 到 Tacotron,再到 RNN-T 谷歌再获语音识别新进展:利用序列转导来实现多人语音识别和说话人分类 雷锋网 AI 科技评论按:从 WaveNet 到 Tacotron,再到 ...

  6. USACO Building Roads

    洛谷 P2872 [USACO07DEC]道路建设Building Roads 洛谷传送门 JDOJ 2546: USACO 2007 Dec Silver 2.Building Roads JDOJ ...

  7. USACO Sabotage

    洛谷 P2115 [USACO14MAR]破坏Sabotage https://www.luogu.org/problem/P2115 JDOJ 2418: USACO 2014 Mar Gold 2 ...

  8. vue系列---Vue组件化的实现原理(八)

    _ 阅读目录 一. 什么是Vue组件? 如何注册组件? 1.1 全局注册组件 1.2 局部注册组件 二:组件之间数据如何传递的呢? 1) props 2) $emit 3) 使用$ref实现通信 4) ...

  9. 学习-velocity

    Velocity是什么?  Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码 ...

  10. 区块链自问自答 day2

    区块链自问自答 day2 区块链的自治性是如何达成的?为什么能够在去信任的环境下自由安全地交换数据? ​ 区块链中有众多的节点,包含了恶意节点.故障节点.正常节点,想要这些节点共同做出一致的决定就需要 ...