学习笔记TF059:自然语言处理、智能聊天机器人

来源:互联网 发布:win7阻止安装软件 编辑:程序博客网 时间:2024/05/20 21:20

自然语言处理,语音处理、文本处理。语音识别(speech recognition),让计算机能够“听懂”人类语音,语音的文字信息“提取”。

日本富国生命保险公司花170万美元安装人工智能系统,客户语言转换文本,分析词正面或负面。智能客服是人工能智能公司研究重点。循环神经网络(recurrent neural network,RNN)模型。

模型选择。每一个矩形是一个向量,箭头表示函数。最下面一行输入向量,最上面一行输出向量,中间一行RNN状态。一对一,没用RNN,如Vanilla模型,固定大小输入到固定大小输出(图像分类)。一对多,序列输出,图片描述,输入一张图片输出一段文字序列,CNN、RNN结合,图像、语言结合。多对一,序列输入,情感分析,输入一段文字,分类积极、消极情感,如淘宝商品评论分类,用LSTM。多对多,异步序列输入、序列输出,机器翻译,如RNN读取英文语句,以法语形式输出。多对多,同步序列输入、序列输出,视频分类,视频每帧打标记。中间RNN状态部分固定,可多次使用,不需对序列长度预先约束。Andrej Karpathy《The Unreasonable Effectiveness of Recurrent Neural Networks》。http://karpathy.github.io/2015/05/21/rnn-effectiveness/ 。自然语言处理,语音合成(文字生成语音)、语单识别、声纹识别(声纹鉴权)、文本处理(分词、情感分析、文本挖掘)。

英文数字语音识别。https://github.com/pannous/tensorflow-speech-recognition/blob/master/speech2text-tflearn.py 。20行Python代码创建超简单语音识别器。LSTM循环神经网络,TFLearn训练英文数字口语数据集。spoken numbers pcm数据集 http://pannous.net/spoken_numbers.tar 。多人阅读0~9数字英文音频,分男女声,一段音频(wav文件)只有一个数字对应英文声音。标识方法{数字}_人名_xxx。

定义输入数据,预处理数据。语音处理成矩阵形式。梅尔频率倒谱系数(Mel frequency cepstral coefficents, MFCC)特征向量。语音分帧、取对数、逆矩阵,生成MFCC代表语音特征。

定义网络模型。LSTM模型。

训练模型,并存储模型。

预测模型。任意输入一个语音文件,预测。

语音识别,可用在智能输入法、会议快速录入、语音控制系统、智能家居领域。

#!/usr/bin/env python#!/usr/local/bin/python# -*- coding: utf-8 -*-from __future__ import division, print_function, absolute_importimport tflearnimport speech_datalearning_rate = 0.0001training_iters = 300000  # steps 迭代次数batch_size = 64width = 20  # mfcc features MFCC特征height = 80  # (max) length of utterance 最大发音长度classes = 10  # digits 数字类别batch = word_batch = speech_data.mfcc_batch_generator(batch_size) # 生成每一批MFCC语音X, Y = next(batch)# train, test, _ = ,XtrainX, trainY = X, YtestX, testY = X, Y #overfit for now# Data preprocessing# Sequence padding# trainX = pad_sequences(trainX, maxlen=100, value=0.)# testX = pad_sequences(testX, maxlen=100, value=0.)# # Converting labels to binary vectors# trainY = to_categorical(trainY, nb_classes=2)# testY = to_categorical(testY, nb_classes=2)# Network building# LSTM模型net = tflearn.input_data([None, width, height])# net = tflearn.embedding(net, input_dim=10000, output_dim=128)net = tflearn.lstm(net, 128, dropout=0.8)net = tflearn.fully_connected(net, classes, activation='softmax')net = tflearn.regression(net, optimizer='adam', learning_rate=learning_rate, loss='categorical_crossentropy')# Trainingmodel = tflearn.DNN(net, tensorboard_verbose=0)model.load("tflearn.lstm.model")while 1: #training_iters  model.fit(trainX, trainY, n_epoch=100, validation_set=(testX, testY), show_metric=True,          batch_size=batch_size)  _y=model.predict(X)model.save("tflearn.lstm.model")print (_y)print (y)

智能聊天机器人。未来方向“自然语言人机交互”。苹果Siri、微软Cortana和小冰、Google Now、百度度秘、亚马逊蓝牙音箱Amazon Echo内置语音助手Alexa、Facebook 语音助手M。通过和用户“语音机器人”对话,引导用户到对应服务。今后智能硬件、智能家居嵌入式应用。
智能聊天机器人3代技术。第一代特征工程,大量逻辑判断。第二代检索库,给定问题、聊天,从检索库找到与已有答案最匹配答案。第三代深度学习,seq2seq+Attention模型,大量训练,根据输入生成输出。

seq2seq+Attention模型原理、构建方法。翻译模型,把一个序列翻译成另一个序列。两个RNNLM,一个作编码器,一个解码器,组成RNN编码器-解码器。文本处理领域,常用编码器-解码器(encoder-decoder)框架。输入->编码器->语义编码C->解码器->输出。适合处理上下文(context)生成一个目标(target)通用处理模型。一个句子对

原创粉丝点击