NLP自然语言处理

NLP组成部分
自然语言理解NLU
将给定的自然语言输入映射为有用的表示。
分析语言的不同方面。

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

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

NLP步骤
词汇分析
它涉及识别和分析单词的结构。 语言的词汇表示语言中的单词和短语的集合。 词法分析将整个txt块分成段落,句子和单词。
句法分析(解析)
它涉及分析句子中的单词,语法和安排单词的方式,以显示单词之间的关系。“The school goes to boy”等句子被英语句法分析器拒绝。
语义分析
它从文本中提取确切含义或字典含义。 文本被检查是否有意义。 它通过映射任务域中的语法结构和对象来完成。语义分析器忽视诸如“热冰淇淋”之类的句子。
话语整合
任何句子的含义都取决于在它之前的句子的含义。 此外,它也带来了紧接着的后续句子的含义。
语用分析
在此期间,所说的重新解释了它的实际意义。 它涉及推导需要真实世界知识的语言方面。

块化
import nltk

sentence=[("a","DT"),("clever","JJ"),("fox","NN"),("was","VBP"), ("jumping","VBP"),("over","IN"),("the","DT"),("wall","NN")]
grammar = "NP:{<DT>?<JJ>*<NN>}"

parser_chunking = nltk.RegexpParser(grammar)#定义解析器解析语法
parser_chunking.parse(sentence).draw()#解析句子并绘树状图

预测给定句子类别
from sklearn.datasets import fetch_20newsgroups
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer

#定义分类图
category_map = {‘talk.religion.misc‘:‘Religion‘,‘rec.autos‘:‘Autos‘ , ‘rec.sport.hockey‘:‘Hockey‘,
‘sci.electronics‘:‘Electronics‘, ‘sci.space‘: ‘Space‘}

#创建训练集
training_data = fetch_20newsgroups(subset = ‘train‘,categories = category_map.keys(), shuffle = True, random_state = 5)

#创建向量计数器并提取术语计数
vectorizer_count = CountVectorizer()
train_tc = vectorizer_count.fit_transform(training_data.data)
print("\nDimensions of training data:", train_tc.shape)

#创建tf-idf转换器
tfidf = TfidfTransformer()
train_tfidf = tfidf.fit_transform(train_tc)

#创建测试数据
input_data = [
   ‘Discovery was a space shuttle‘,
   ‘Hindu, Christian, Sikh all are religions‘,
   ‘We must have to drive safely‘,
   ‘Puck is a disk made of rubber‘,
   ‘Television, Microwave, Refrigrated all uses electricity‘
]

classifier = MultinomialNB().fit(train_tfidf, training_data.target)#训练一个Multinomial朴素贝叶斯分类器
input_tc = vectorizer_count.transform(input_data)#向量计数器转转输入数据
input_tfidf = tfidf.transform(input_tc)#tf-idf转换器转换矢量化数据
predictions = classifier.predict(input_tfidf)

for sent, category in zip(input_data, predictions):
     print(‘\nInput Data:‘, sent, ‘\n Category:‘,            category_map[training_data.target_names[category]])

result
Dimensions of training data: (2755, 39297)

Input Data: Discovery was a space shuttle
 Category: Space

Input Data: Hindu, Christian, Sikh all are religions
 Category: Religion

Input Data: We must have to drive safely
 Category: Autos

Input Data: Puck is a disk made of rubber
 Category: Hockey

Input Data: Television, Microwave, Refrigrated all uses electricity
 Category: Electronics

口语词的识别
import speech_recognition as sr

recording = sr.Recognizer()

with sr.Microphone() as source:
    recording.adjust_for_ambient_noise(source)
    print("please say something")
    audio = recording.listen(source)

try:
    print("you said:\n" + recording.recognize_google(audio))
except Exception as e:
    print(e)

原文地址:https://www.cnblogs.com/hichens/p/11229638.html

时间: 2024-10-30 03:35:05

NLP自然语言处理的相关文章

NLP | 自然语言处理 - 语法解析(Parsing, and Context-Free Grammars)

什么是语法解析? 在自然语言学习过程中,每个人一定都学过语法,例如句子可以用主语.谓语.宾语来表示.在自然语言的处理过程中,有许多应用场景都需要考虑句子的语法,因此研究语法解析变得非常重要. 语法解析有两个主要的问题,其一是句子语法在计算机中的表达与存储方法,以及语料数据集:其二是语法解析的算法. 对于第一个问题,我们可以用树状结构图来表示,如下图所示,S表示句子:NP.VP.PP是名词.动词.介词短语(短语级别):N.V.P分别是名词.动词.介词. 实际存储的时候上述的树可以表示为(S (NP

NLP | 自然语言处理 - 标注问题与隐马尔科夫模型(Tagging Problems, and Hidden Markov Models)

什么是标注? 在自然语言处理中有一个常见的任务,即标注.常见的有:1)词性标注(Part-Of-Speech Tagging),将句子中的每个词标注词性,例如名词.动词等:2)实体标注(Name Entity Tagging),将句子中的特殊词标注,例如地址.日期.人物姓名等. 下图所示的是词性标注的案例,当输入一个句子时,计算机自动标注出每个词的词性. 下图所示的是实体标注的案例,当输入一个句子时,计算机自动标注出特殊词的实体类别. 粗略看来,这并不是一个简单问题.首先每个词都可能有多个含义,

NLP自然语言处理学习笔记二(初试)

前言: 用Python对自然语言处理有很好的库.它叫NLTK.下面就是对NLTK的第一尝试. 安装: 1.安装Pip 比较简单,得益于CentOS7自带的easy_install.执行一行命令就可以搞定. *在终端控制台->easy_install pip 2.检验Pip是否可用 Pip是Python的包管理工具.我们运行Pip确定CentOS下可用. *在终端控制台->pip -V 注意参数大小写 3.使用Pip安装NLTK *在终端控制台->pip install -U nltk N

初识NLP 自然语言处理(一)

接下来的一段时间,要深入研究下自然语言处理这一个学科,以期能够带来工作上的提升. 学习如何实用python实现各种有关自然语言处理有关的事物,并了解一些有关自然语言处理的当下和新进的研究主题. NLP,Natural Language Processing,自然语言处理是计算机科学领域与人工智能领域中的一个重要方向.它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法.自然语言处理是一门融语言学.计算机科学.数学于一体的科学.因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,

人工智能之 NLP 自然语言处理篇(1)

(1) NLP 介绍 NLP 是什么? NLP (Natural Language Processing) 自然语言处理,是计算机科学.人工智能和语言学的交叉学科,目的是让计算机处理或"理解"自然语言.自然语言通常是指一种自然地随文化演化的语言,如汉语.英语.日语. NLP 可以用来做什么?以及它的应用领域是什么? 文本朗读(Text to speech)/ 语音合成(Speech synthesis) 语音识别(Speech recognition) 中文自动分词(Chinese w

43、哈工大NLP自然语言处理,LTP4j的测试+还是测试

1.首先需要构建自然语言处理的LTP的框架 (1)需要下载LTP的源码包即c++程序(https://github.com/HIT-SCIR/ltp)下载完解压缩之后的文件为ltp-master (2)需要下载LTP4j的封装包(https://github.com/HIT-SCIR/ltp4j),下载完解压缩之后的文件为ltp4j-master (3)需要下载cmake并且安装 (4)需要下载ant用来编译LTP4j,将LTP4j文件编译成ltp.jar文件,最后在myeclipse中引用它

NLP | 自然语言处理 - 语言模型(Language Modeling)

转:http://blog.csdn.net/lanxu_yy/article/details/29918015 为什么需要语言模型? 想象“语音识别”这样的场景,机器通过一定的算法将语音转换为文字,显然这个过程是及其容易出错的.例如,用户发音“Recognize Speech”,机器可能会正确地识别文字为“Recognize speech”,但是也可以不小心错误地识别为“Wrench a nice beach".简单地从词法上进行分析,我们无法得到正确的识别,但是计算机也不懂语法,那么我们应该

适用于NLP自然语言处理的Python:使用Facebook FastText库

原文链接:http://tecdat.cn/?p=8572 在本文中,我们将研究FastText,它是用于单词嵌入和文本分类的另一个极其有用的模块. 在本文中,我们将简要探讨FastText库.本文分为两个部分.在第一部分中,我们将看到FastText库如何创建向量表示形式,该向量表示形式可用于查找单词之间的语义相似性.在第二部分中,我们将看到FastText库在文本分类中的应用. 语义相似性的FastText FastText支持词袋和Skip-Gram模型.在本文中,我们将实现skip-gr

自然语言处理NLP(一)

NLP 自然语言:指一种随着社会发展而自然演化的语言,即人们日常交流所使用的语言: 自然语言处理:通过技术手段,使用计算机对自然语言进行各种操作的一个学科: NLP研究的内容 词意消歧: 指代理解: 自动生成语言: 机器翻译: 人机对话系统: 文本含义识别: NLP处理 语料读入 网络 本地 分词 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018-9-28 22:21 # @Author : Manu # @Site : #