自然语言处理(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. Ubuntu14 安装过程

    系统:Description:    Ubuntu 14.04.6 LTS平台:Oracle VM VirtualBox 先到阿里巴巴开源镜像站 https://opsx.alibaba.com/ 下 ...

  2. 深度学习中目标检测Object Detection的基础概念及常用方法

    目录 关键术语 方法 two stage one stage 共同存在问题 多尺度 平移不变性 样本不均衡 各个步骤可能出现的问题 输入: 网络: 输出: 参考资料 What is detection ...

  3. IDEA结合Maven的profile构建不同开发环境(SpringBoot)

    一.概述 在开发过程中,我们的项目会存在不同的开发环境,比如开发环境.生产环境.测试环境,而我们的项目在不同的环境中有些配置也是不一样的,比如数据源配置.日志文件配置等,假如我们每次将软件部署到不同的 ...

  4. NAT网络地址转换的原理--笔试答题版

    最早接触NAT是在做网络工程师的时候,NAT是做网络工程师必需会的知识点和技能,后来在面试运维的时候也经常被用到,在运维的某些知识点当中也会被引用到,如LVS当中. 为什么需要NAT(网络地址转换)? ...

  5. 【大数据】0001---使用SparkSQL关联两个表求和取前几行

    场景: 有两个表,表可以是文本或Json数据,结构化后分别是Table1(A,B,C)和Table2(C.D.E),两个表通过C关联,要求求出D+E之和,并以(A.B.D+E)三列返回 解答: 思路: ...

  6. USACO Sabotage

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

  7. USACO Cow Cars

    洛谷 P2909 [USACO08OPEN]牛的车Cow Cars https://www.luogu.org/problemnew/show/P2909 JDOJ 2584: USACO 2008 ...

  8. mysql 只有主键能自动增长么

    不一定的,MySQL 每张表只能有1个自动增长字段,这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意将自动增长字段当做非主键使用时必须必须为其添加唯一索引,否则系统将会报错.例如:-- ...

  9. SSH使用ProxyCommand通过代理服务器远程连接其他服务器

    当前环境拓扑图:   用户管理海外服务器,通过公网SSH远程时,由于网络质量原因公网丢包严重,这就导致管理员在对海外云主机进行管理时体验较差,表现形式可能是由于公网丢包严重执行命令卡顿,或者SSH进程 ...

  10. Mysql对表中 数据 的操作 DML

    上一知识点回顾: mysql的备份: 直接使用navicat进行备份 转储SQL文件:有结构和数据/ 仅结构 两种 需要还原时 单击 数据库名字  运行SQL文件  创建表ctreate 修改表alt ...