码迷,mamicode.com
首页 > 编程语言 > 详细

NLP自然语言处理

时间:2019-07-23 09:44:05      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:text   random   new   类图   sci   color   检查   int   tar   

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)

 

NLP自然语言处理

标签:text   random   new   类图   sci   color   检查   int   tar   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!