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)