基于图像回答算法的智能回复系统设计与实现(前端Android+后端Python)

目 录
1绪论 1
1.1研究背景及意义 1
1.2问答系统研究综述 2
1.2.1智能回复系统软件 2
1.2.2问答系统国内外研究现状 3
1.2.3图像问答综述 4
1.3存在的主要问题 6
1.4研究内容 6
1.5技术路线 6
1.6论文组织结构 7
2相关理论知识 9
2.1问答系统 9
2.1.1问答系统的一般处理流程 9
2.1.2问答系统研究的基本问题 9
2.1.3问答系统的主要方法 9
2.2智能智能回复系统 11
2.2.1基于检索的智能回复系统 11
2.2.2基于生成对话的智能回复系统的结构 12
2.3图像问答 12
2.3.1图像问答算法框架 13
2.3.2卷积神经网络 13
2.3.3长短期记忆网络 15
3系统设计 18
3.1整体功能设计 18
3.2本文图像问答算法框架 18
3.3数据集 19
3.4数据集预处理 20
3.5 Keras框架搭建 21
3.5.1Keras简介 21
3.5.2Keras平台搭建 21
3.5.3Keras使用示例 22
4系统实现 23
4.1图像问答算法实现 23
4.1.1图像特征提取 23
4.1.2Embedding层 24
4.1.3模型的建立 25
4.2图像问答算法模型的应用 27
4.3算法测试 29
4.4服务端设计与实现 30
4.4.1开发环境 30
4.4.2服务端功能设计 30
4.4.3web.py简介及安装 30
4.4.4图灵机器人api简介及使用 31
4.4.5服务器端功能实现 32
4.5客户端设计与实现 34
4.5.1开发环境 34
4.5.2客户端功能设计 34
4.5.3客户端主要类图 34
4.5.4用例图 35
4.5.4客户端顺序图 35
4.5.5界面设计 36
4.5.6关键功能实现 38
5系统测试 43
5.1界面测试 43
5.2图片功能测试 44
5.3常用语发送测试 46
5.4聊天功能测试 47
6结论 51
参考文献 52
致谢 54
4.4服务端设计与实现
4.4.1开发环境
系统: Ubuntu 16.04
编辑器:Vim7.4
开发语言:python2.7
4.4.2服务端功能设计
服务端主要承担了接受消息返回消息的功能,集成了图灵机器人接口和图像问答算法。
在这里插入图片描述

图 20服务端功能图
4.5.1开发环境
系统: Ubuntu 16.04
集成开发工具:Android Studio2.2
目标适配系统:Android 5.1
开发语言:Java
4.5.2客户端功能设计
客户端形式为安卓应用。此应用的界面借鉴的微信的聊天界面,主要实现了发送消息、接收消息、消息存储、发送图片、拍照、查看相册、常用语发送等功能。
在这里插入图片描述

图 23客户端功能图

#/usr/bin/env python
#coding=utf8
 
import httplib
import md5
import urllib
import random
import json

appid = '20170420000045283'
secretKey = 'LaYwFOmUBRvZ9BOwxPyO'


def transFromZhToEn(q):
    httpClient = None
    myurl = '/api/trans/vip/translate'
   
    fromLang = 'zh'
    toLang = 'en'
    salt = random.randint(32768, 65536)

    sign = appid+q+str(salt)+secretKey
    m1 = md5.new()
    m1.update(sign)
    sign = m1.hexdigest()
    myurl = myurl+'?appid='+appid+'&q='+urllib.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
    result=""
    try:
        httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)
    
        #response是HTTPResponse对象
        response = httpClient.getresponse()
        stre = response.read()
        res = json.loads(stre)
        tres = res["trans_result"][0]
        #reseu = json.loads(tres)
        #print res["trans_result"]
        result =  tres['dst']
        #print response.read()
        #print stre
    except Exception, e:
        print e
    finally:
        if httpClient:
            httpClient.close()
    
    return result

def transFromEnToZh(q):
    httpClient = None
    myurl = '/api/trans/vip/translate'
   
    fromLang = 'en'
    toLang = 'zh'
    salt = random.randint(32768, 65536)

    sign = appid+q+str(salt)+secretKey
    m1 = md5.new()
    m1.update(sign)
    sign = m1.hexdigest()
    myurl = myurl+'?appid='+appid+'&q='+urllib.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
    result=""
    try:
        httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)
    
        #response是HTTPResponse对象
        response = httpClient.getresponse()
        stre = response.read()
        res = json.loads(stre)
        tres = res["trans_result"][0]
        #reseu = json.loads(tres)
        #print res["trans_result"]
        result =  tres['dst']
        #print response.read()
        #print stre
    except Exception, e:
        print e
    finally:
        if httpClient:
            httpClient.close()
    
    return result
 
httpClient = None
myurl = '/api/trans/vip/translate'
q = '这个人穿的衣服是什么颜色的?'
fromLang = 'zh'
toLang = 'en'
salt = random.randint(32768, 65536)

sign = appid+q+str(salt)+secretKey
m1 = md5.new()
m1.update(sign)
sign = m1.hexdigest()
myurl = myurl+'?appid='+appid+'&q='+urllib.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
 
try:
    httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')
    httpClient.request('GET', myurl)
 
    #response是HTTPResponse对象
    response = httpClient.getresponse()
    stre = response.read()
    res = json.loads(stre)
    tres = res["trans_result"][0]
    #reseu = json.loads(tres)
    print res["trans_result"]
    print tres['dst']
    #print response.read()
    print stre
except Exception, e:
    print e
finally:
    if httpClient:
        httpClient.close()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sheziqiong/article/details/131955007