毕设项目分享 基于深度学习的中文对话问答机器人

使用Transformer模型构建问答系统:深度学习实现智能问答 问答系统是自然语言处理领域的热点研究,它可以回答用户提出的问题并给出准确的答案。在本博客中,我们将使用Python和TensorFlow库,介绍如何使用Transformer模型构建一个强大的问答系统。我们将讨论数据准备、模型构建、训练和测试等关键步骤,并展示问答系统的效果。 阅读详情

0 简介

今天学长向大家介绍一个深度学习项目

基于深度学习的中文对话问答机器人

1 项目架构

整个项目分为 数据清洗 和 建立模型两个部分。

(1)主要定义了seq2seq这样一个模型。
首先是一个构造函数,在构造函数中定义了这个模型的参数。
以及构成seq2seq的基本单元的LSTM单元是怎么构建的。

(2)接着在把这个LSTM间单元构建好之后,加入模型的损失函数。
我们这边用的损失函数叫sampled_softmax_loss,这个实际上就是我们的采样损失。做softmax的时候,我们是从这个6000多维里边找512个出来做采样。
损失函数做训练的时候需要,测试的时候不需要。训练的时候,y值是one_hot向量

(3)然后再把你定义好的整个的w[512*6000]、b[6000多维],还有我们的这个cell本身,以及我们的这个损失函数一同代到我们这个seq2seq模型里边。然后呢,这样的话就构成了我们这样一个seq2seq模型。
函数是tf.contrib.legacy_seq2seq.embedding_attention_seq2seq()

(4)最后再将我们传入的实参,也就是三个序列,经过这个桶的筛选。然后放到这个模型去训练啊,那么这个模型就会被训练好。到后面,我们可以把我们这个模型保存在model里面去。模型参数195M。做桶的目的就是节约计算资源。

2 项目的主要过程

前提是一问一答,情景对话,不是多轮对话(比较难,但是热门领域)

整个框架第一步:做语料

先拿到一个文件,命名为.conv(只要不命名那几个特殊的,word等)。输入目录是db,输出目录是bucket_dbs,不存在则新建目录。

测试的时候,先在控制台输入一句话,然后将这句话通过正反向字典Ids化,然后去桶里面找对应的回答的每一个字,然后将输出通过反向字典转化为汉字。

2.1 数据清洗、预处理

读取整个语料库,去掉E、M和空格,还原成原始文本。创建conversion.db,conversion表,两个字段。每取完1000组对话,插入依次数据库,批量提交,通过cursor.commit.

在这里插入图片描述

2.2 分桶

从总的conversion.db中分桶,指定输入目录db, 输出目录bucket_dbs.

检测文字有效性,循环遍历,依次记录问题答案,每积累到1000次,就写入数据库。

        for ask, answer in tqdm(ret, total=total):
            if is_valid(ask) and is_valid(answer):
                for i in range(len(buckets)):
                    encoder_size, decoder_size = buckets[i]
                    if len(ask) <= encoder_size and len(answer) < decoder_size:
                        word_count.update(list(ask))
                        word_count.update(list(answer))
                        wait_insert.append((encoder_size, decoder_size, ask, answer))
                        if len(wait_insert) > 10000000:
                            wait_insert = _insert(wait_insert)
                        break

将字典维度6865未,投影到100维,也就是每个字是由100维的向量组成的。后面的隐藏层的神经元的个数是512,也就是维度。

句子长度超过桶长,就截断或直接丢弃。

四个桶是在read_bucket_dbs()读取的方法中创建的,读桶文件的时候,实例化四个桶对象。

2.3 训练

先读取json字典,加上pad等四个标记。

lstm有两层,attention在解码器的第二层,因为第二层才是lstm的输出,用两层提取到的特征越好。

num_sampled=512, 分批softmax的样本量(

训练和测试差不多,测试只前向传播,不反向更新

3 项目的整体结构

s2s.py:相当于main函数,让代码运行起来
里面有train()、test()、test_bleu()和create_model()四个方法,还有FLAGS成员变量,
相当于静态成员变量 public static final string

decode_conv.py和data_utils.py:是数据处理

s2s_model.py:
里面放的是模型
里面有init()、step()、get_batch_data()和get_batch()四个方法。构造方法传入构造方法的参数,搭建S2SModel框架,然后sampled_loss()和seq2seq_f()两个方法

data_utils.py:
读取数据库中的文件,并且构造正反向字典。把语料分成四个桶,目的是节约计算资源。先转换为db\conversation.db大的桶,再分成四个小的桶。buckets = [ (5, 15), (10, 20), (15, 25), (20, 30)]
比如buckets[1]指的就是(10, 20),buckets[1][0]指的就是10。
bucket_id指的就是0,1,2,3

dictionary.json:
是所有数字、字母、标点符号、汉字的字典,加上生僻字,以及PAD、EOS、GO、UNK 共6865维度,输入的时候会进行词嵌入word embedding成512维,输出时,再转化为6865维。

model:
文件夹下装的是训练好的模型。
也就是model3.data-00000-of-00001,这个里面装的就是模型的参数
执行model.saver.restore(sess, os.path.join(FLAGS.model_dir, FLAGS.model_name))的时候,才是加载目录本地的保存的模型参数的过程,上面建立的模型是个架子,
model = create_model(sess, True),这里加载模型比较耗时,时间复杂度最高

dgk_shooter_min.conv:
是语料,形如: E
M 畹/华/吾/侄/
M 你/接/到/这/封/信/的/时/候/
decode_conv.py: 对语料数据进行预处理
config.json:是配置文件,自动生成的

4 重要的API

4.1 LSTM cells部分:

    cell = tf.contrib.rnn.BasicLSTMCell(size)
    cell = tf.contrib.rnn.DropoutWrapper(cell, output_keep_prob=dropout)
    cell = tf.contrib.rnn.MultiRNNCell([cell] * num_layers)
    对上一行的cell去做Dropout的,在外面裹一层DropoutWrapper

构建双层lstm网络,只是一个双层的lstm,不是双层的seq2seq

4.2 损失函数:

tf.nn.sampled_softmax_loss( weights=local_w_t,
b labels=labels, #真实序列值,每次一个
inputs=loiases=local_b,
cal_inputs, #预测出来的值,y^,每次一个
num_sampled=num_samples, #512
num_classes=self.target_vocab_size # 原始字典维度6865)

4.3 搭建seq2seq框架:

tf.contrib.legacy_seq2seq.embedding_attention_seq2seq(
encoder_inputs, # tensor of input seq 30
decoder_inputs, # tensor of decoder seq 30
tmp_cell, #自定义的cell,可以是GRU/LSTM, 设置multilayer等
num_encoder_symbols=source_vocab_size,# 编码阶段字典的维度6865
            num_decoder_symbols=target_vocab_size, # 解码阶段字典的维度 6865
            embedding_size=size, # embedding 维度,512
            num_heads=20, #选20个也可以,精确度会高点,num_heads就是attention机制,选一个就是一个head去连,5个就是5个头去连
            output_projection=output_projection,# 输出层。不设定的话输出维数可能很大(取决于词表大小),设定的话投影到一个低维向量
            feed_previous=do_decode,# 是否执行的EOS,是否允许输入中间c
            dtype=dtype
        )

4.4 测试部分:

self.outputs, self.losses = tf.contrib.legacy_seq2seq.model_with_buckets(
self.encoder_inputs,
self.decoder_inputs,
targets,
self.decoder_weights,
buckets,
lambda x, y: seq2seq_f(x, y, True),
softmax_loss_function=softmax_loss_function
)

4.5 评价NLP测试效果:

在nltk包里,有个接口叫bleu,可以评估测试结果,NITK是个框架

from nltk.translate.bleu_score import sentence_bleu
score = sentence_bleu(
references,#y值
list(ret),#y^
weights=(1.0,)#权重为1
)

4.6 梯度截断,防止梯度爆炸

clipped_gradients, norm = tf.clip_by_global_norm(gradients,max_gradient_norm)
tf.clip_by_global_norm(t_list, clip_norm, use_norm=None, name=None)

通过权重梯度的总和的比率来截取多个张量的值。t_list是梯度张量, clip_norm是截取的比率,这个函数返回截取过的梯度张量和一个所有张量的全局范数

4.7 模型保存

tf.train.Saver(tf.global_variables(), write_version=tf.train.SaverDef.V2)

5 重点和难点

5.1 函数

def get_batch_data(self, bucket_dbs, bucket_id):
def get_batch(self, bucket_dbs, bucket_id, data):
def step(self,session,encoder_inputs,decoder_inputs,decoder_weights,bucket_id):

5.2 变量

batch_encoder_inputs, batch_decoder_inputs, batch_weights = [], [], []

6 相关参数

 model = s2s_model.S2SModel(
        data_utils.dim,  # 6865,编码器输入的语料长度
        data_utils.dim,  # 6865,解码器输出的语料长度
        buckets,  # buckets就是那四个桶,data_utils.buckets,直接在data_utils写的一个变量,就能直接被点出来
        FLAGS.size, # 隐层神经元的个数512
        FLAGS.dropout, # 隐层dropout率,dropout不是lstm中的,lstm的几个门里面不需要dropout,没有那么复杂。是隐层的dropout
        FLAGS.num_layers, # lstm的层数,这里写的是2
        FLAGS.max_gradient_norm, # 5,截断梯度,防止梯度爆炸
        FLAGS.batch_size,  # 64,等下要重新赋值,预测就是1,训练就是64
        FLAGS.learning_rate,    # 0.003
        FLAGS.num_samples,  # 512,用作负采样
        forward_only, #只传一次
        dtype
    )
{
    "__author__": "qhduan@memect.co",
    "buckets": [
        [5, 15],
        [10, 20],
        [20, 30],
        [40, 50]
    ],
    "size": 512,
    /*s2s lstm单元出来之后的,连的隐层的number unit是512*/
    "depth": 4,
    "dropout": 0.8,
    "batch_size": 512,
    /*每次往里面放多少组对话对,这个是比较灵活的。
    如果找一句话之间的相关性,batch_size就是这句话里面的字有多少个,
    如果要找上下文之间的对话,batch_size就是多少组对话*/
    "random_state": 0,
    "learning_rate": 0.0003,
    /*总共循环20次*/
    "epoch": 20,
    "train_device": "/gpu:0",
    "test_device": "/cpu:0"
}

7 桶机制

7.1 处理数据集

语料库长度桶结构
(5, 10): 5问题长度,10回答长度
每个桶中对话数量,一问一答为一次完整对话

Analysis
(1) 设定4个桶结构,即将问答分成4个部分,每个同种存放对应的问答数据集[87, 69, 36, 8]四个桶中分别有87组对话,69组对话,36组对话,8组对话;
(2) 训练词数据集符合桶长度则输入对应值,不符合桶长度,则为空;
(3) 对话数量占比:[0.435, 0.78, 0.96, 1.0];

7.2 词向量处理seq2seq

获取问答及答案权重

参数:

  • data: 词向量列表,如[[[4,4],[5,6,8]]]
  • bucket_id: 桶编号,值取自桶对话占比

步骤:

  • 问题和答案的数据量:桶的话数buckets = [(5, 10), (10, 15), (20, 25), (40, 50)]
  • 生成问题和答案的存储器
  • 从问答数据集中随机选取问答
  • 问题末尾添加PAD_ID并反向排序
  • 答案添加GO_ID和PAD_ID
  • 问题,答案,权重批量数据
  • 批量问题
  • 批量答案
  • 答案权重即Attention机制
  • 若答案为PAD则权重设置为0,因为是添加的ID,其他的设置为1

Analysis

  • (1) 对问题和答案的向量重新整理,符合桶尺寸则保持对话尺寸,若不符合桶设定尺寸,则进行填充处理,
    问题使用PAD_ID填充,答案使用GO_ID和PAD_ID填充;

  • (2) 对问题和答案向量填充整理后,使用Attention机制,对答案进行权重分配,答案中的PAD_ID权重为0,其他对应的为1;

  • (3) get_batch()处理词向量;返回问题、答案、答案权重数据;
    返回结果如上结果:encoder_inputs, decoder_inputs, answer_weights.

7.3 处理问答及答案权重

参数:
  session: tensorflow 会话.
  encoder_inputs: 问题向量列表
  decoder_inputs: 回答向量列表
  answer_weights: 答案权重列表
  bucket_id: 桶编号which bucket of the model to use.
  forward_only: 前向或反向运算标志位
返回:
    一个由梯度范数组成的三重范数(如果不使用反向传播,则为无)。
 平均困惑度和输出

Analysis

  • (1) 根据输入的问答向量列表,分配语料桶,处理问答向量列表,并生成新的输入字典(dict), input_feed = {};
  • (2) 输出字典(dict), ouput_feed = {},根据是否使用反向传播获得参数,使用反向传播,
    output_feed存储更新的梯度范数,损失,不使用反向传播,则只存储损失;
  • (3) 最终的输出为分两种情况,使用反向传播,返回梯度范数,损失,如反向传播不使用反向传播,
    返回损失和输出的向量(用于加载模型,测试效果),如前向传播;

7.4 训练&保存模型

步骤:

  • 检查是否有已存在的训练模型
  • 有模型则获取模型轮数,接着训练
  • 没有模型则从开始训练
  • 一直训练,每过一段时间保存一次模型
  • 如果模型没有得到提升,减小learning rate
  • 保存模型
  • 使用测试数据评估模型
global step: 500, learning rate: 0.5, loss: 2.574068747580052
bucket id: 0, eval ppx: 14176.588030763274
bucket id: 1, eval ppx: 3650.0026667220773
bucket id: 2, eval ppx: 4458.454110999805
bucket id: 3, eval ppx: 5290.083583183104

7.5 载入模型&测试

(1) 该聊天机器人使用bucket桶结构,即指定问答数据的长度,匹配符合的桶,在桶中进行存取数据;
(2) 该seq2seq模型使用Tensorflow时,未能建立独立标识的图结构,在进行后台封装过程中出现图为空的现象;

从main函数进入test()方法。先去内存中加载训练好的模型model,这部分最耗时,改batch_size为1,传入相关的参数。
    开始输入一个句子,并将它读进来,读进来之后,按照桶将句子分,按照模型输出,然后去查字典。
    接着在循环中输入上句话,找对应的桶。然后拿到的下句话的每个字,找概率最大的那个字的index的id输出。
        get_batch_data(),获取data [('天气\n', '')],也就是问答对,但是现在只有问,没有答
        get_batch()获取encoder_inputs=1*10,decoder_inputs=1*20 decoder_weights=1*20
        step()获取预测值output_logits,

在这里插入图片描述

6 最后

🧿 选题指导, 项目分享: https://gitee.com/yaa-dc/warehouse-1/blob/master/python/README.md

Microsemi Libero系列教程(二)——新建点灯工程 前言 上一篇文章,介绍了Microsemi Libero系列教程(一)-Libero开发环境介绍,下载,安装与注册,作为嵌入式开发中的Hello World,点灯是再也基础不过的实验了,通过点灯实验,可以了解芯片GPIO的控制和开发环境IDE新建工程的流程,对于FPGA来说,每个IO口几乎一样,所以本篇文章主要学习一下如何基于Microsemi Libero集成开发环境建立一个示例工程,让一个L... 阅读详情

相关推荐

【ros】ROS1的安装和相关使用方法

主要学习ros相关内容

Greary的博客 2379

如何从零开始用PyTorch实现Chatbot?(附完整代码)

作者 | 李理,环信人工智能研发中心vp,十多年自然语言处理和人工智能研发经验。主持研发过多款智能硬件的问答和对话系统,负责环信中文语义分析开放平台和环信智能机器人的设计...

AI科技大本营 1万+

【数据攻略】字节面试真题(含答案)+100道面试题库

数据攻略

qq_40002713的博客 4104

机器学习_深度学习毕设题目汇总——问答

下面是该类的一些题目: 题目 基于关系建模的视觉问答研究 基于注意力机制与高层语义的视觉问答研究 基于深度学习的交互式问答技术研究 基于深度学习的结构化数据问答方法研究 智能视觉问答中关键问题的理论与方法研究 社区问答平台上多因素融合的答案选择与问题推荐关键技术研究 问答系统中关键技术研究 面向电商领域的智能问答系统若干关键技术研究 面向知识库问答的自然语言语义特征表示研究 面向表格数据的自动问答研究 面向问答文本的情感分析关键技术研究 一个汽车问

MetaGrad的博客 3854

解锁笔记智能对话:手把手配置 Obsidian Copilot 插件与硅基流动模型

本文详细介绍了如何为Obsidian笔记软件配置Copilot插件,并接入硅基流动AI模型,从而为个人知识库添加智能对话能力。通过手把手教程,指导用户完成插件安装、API Key获取、模型配置及索引构建,最终实现基于个人笔记内容的深度语义问答,提升知识管理效率。

corn8的博客 613

Flutter 中使用蓝牙插件报错,说没有权限怎么解决

2、在build.grale里面更改一下版本号,我修改的是targetSdkVersion这个版本号,需要根据你自己的版本进行更改,记得更改之后先flutter clean一下再run。搞了一晚上,没搞出来,第二天用同事手机测试发现他手机可以,我手机还是不行,才发现是Android版本问题,需要修改两处地方。废话不多说,咱先看报错信息。

zzj17637822814的博客 2289

机器学习_深度学习毕设题目汇总——对话

下面是该类的一些题目: 题目 基于深度学习和强化学习的对话模型研究 社交媒体文本情感分析及对话生成研究 一种神经网络对话系统中的低频词压缩方法 人机对话中的情感文本生成方法研究 任务型对话中意图识别和槽填充的联合算法研究 任务型对话系统中对话状态追踪技术研究 任务型对话系统中的自然语言理解技术研究 任务型对话系统中的自然语言理解研究 任务型对话系统新领域适应策略研究 任务型对话系统的自然语言生成研究 任务型对话系统的自适应策略学习效率提升方法 句子

MetaGrad的博客 2019

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

用通俗易懂的方式讲解大模型:基于 LangChain 和 ChatGLM2 打造自有知识库问答系统

添加知识库文档步骤如下:先选新建知识库输入知识库名字,点击“添加至知识选项”上传文件,完了后点击“上传文件并加载知识库”然后就可以基于这个知识库进行问答了,操作十分简单。本文介绍了 GPU 服务器的选型,ChatGLM2 和 Langchain-ChatGLM 的部署和使用,如果想要了解更多关于 Langchain-ChatGLM 的实现原理,可以在他们 GitHub 仓库中查看更多的信息。如果你想打造属于自身业务的问答系统,可以参考本文的方法,希望可以帮助到你。

2301_78285120的博客 4324

别再只用跳层连接了!手把手教你用DASI和MDCR模块提升红外小目标检测精度

本文详细介绍了如何利用DASI和MDCR模块提升红外小目标检测精度。通过分析传统跳层连接的缺陷,提出维度感知的特征选择性融合(DASI)和多尺度感受野精炼器(MDCR)的创新方案,显著提升小目标检测性能。实验证明,该方法在多个场景下AP@0.5提升达15.4%,特别适用于安防监控和遥感图像分析。

weixin_28715081的博客 224

大模型在电力交易功率预测中的应用:短期,超短期,中长期的完整解决方案代码详解

本文介绍了基于大模型的电力交易功率预测系统,该系统覆盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1月)三个时间尺度。文章详细阐述了数据准备与特征工程,包括多源数据集成和特征重要性分析。在模型构建方面,采用了Temporal Fusion Transformer (TFT)模型进行超短期预测,Informer模型进行短期预测,以及N-HiTS模型进行中长期预测。此外,文章还探讨了概率预测与风险分析,并介绍了模型部署与交易策略集成的实现。最后,文章总结了系统的贡献,并展望了未来发展方向,如市

专注AI大模型,软件混淆,授权 1264

【毕业设计】中文对话问答机器人系统 - python 深度学习

🔥 Hi,大家好,这里是丹成学长的毕设系列文章!🔥 对毕设有任何疑问都可以问学长哦!这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是🚩基于深度学习的中文对话问答机器人🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:4分创新点:3分。

caxiou的博客 2511

【数据集】中国各类水文专业常用数据集合集

对中国各类水文专业常用数据集进行整理并总结

WW、forever的博客 9307

2024-2025 机器学习毕设选题 深度学习毕业设计题目汇总

机器学习深度学习 选题合集涵盖了管理系统、小程序、深度学习、机器学习、算法、人工智能、大数据、网络安全、嵌入式、推荐系统、目标检测等多个热门领域。对于计算机专业、软件工程专业、人工智能专业、通信工程专业的毕业生而言,选择一个合适的毕业设计选题至关重要。在这个毕业设计选题合集中,我们精心收集了各种有趣且具有挑战性的选题,旨在帮助学生们在毕业设计中展现他们的技术实力和创新能力。不论是对于对深度学习技术感兴趣的同学,还是希望探索机器学习、算法或人工智能的领域的同学,本合集都能为您提供丰富的选题资源和灵感。

Hai_Lang_IT的博客 5733

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【毕设选题】深度学习方向毕业设计选题汇总:算法 人工智能

深度学习方向毕业设计选题汇总合集涵盖了深度学习、机器学习、算法、人工智能、大数据、信息安全、推荐系统、目标检测等多个热门领域。对于计算机专业、软件工程专业、人工智能专业、大数据专业的毕业生而言,选择一个合适的毕业设计选题至关重要。在这个毕业设计选题合集中,我们精心收集了各种有趣且具有挑战性的选题,旨在帮助学生们在毕业设计中展现他们的技术实力和创新能力。不论是对于对深度学习技术感兴趣的同学,还是希望探索机器学习、算法或人工智能的领域的同学,本合集都能提供丰富的选题资源和灵感。

毕设帮助,疑难解答,欢迎打扰! 1730

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

2024人工智能毕设选题分享

学长整理了最新的人工智能专业的毕业设计选题,这些选题的难度适中,非常适合作为毕业设计的选题参考。如果你有任何对于开题选题的疑问,或者对相关技术缺乏了解,不知道如何开始进行毕业设计,都可以向学长咨询寻求帮助。学长会根据你的具体情况提供指导和支持。不论是你对选题还是对技术方面存在的问题,学长都愿意提供帮助。学长根据你的需求和能力,为你提供一些指导和建议,无论你遇到什么问题,都可以向学长请教,学长将竭尽全力协助你顺利完成毕业设计。🧿。

fawubio的博客 1228

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

人工智能专业毕设题目分享

学长整理了最新的人工智能专业的毕业设计选题,这些选题的难度适中,非常适合作为毕业设计的选题参考。如果你有任何对于开题选题的疑问,或者对相关技术缺乏了解,不知道如何开始进行毕业设计,都可以向学长咨询寻求帮助。学长会根据你的具体情况提供指导和支持。不论是你对选题还是对技术方面存在的问题,学长都愿意提供帮助。学长根据你的需求和能力,为你提供一些指导和建议,无论你遇到什么问题,都可以向学长请教,学长将竭尽全力协助你顺利完成毕业设计。🧿。

kooerr的博客 937

信管毕业论文(毕设)开题报告答疑

丹成学长,搜集分享最新的智能科学与工程业专业毕设选题,难度适中,适合作为毕业设计,大家参考学长整理的题目标准:最近非常多的学弟学妹问学长关于选题的问题,所以今天学长来教大家如何进行毕业设计选题!毕业设计的选题尤为重要,选好题目是最终完成毕业设计的第一步。因为题目的选择跟之后的设计实现密不可分,如果你所选择的题目是你无法实现的,而且定题以后就不能修改了,这无疑会给你带来很大的困扰。🧿 选题指导, 项目分享:见文末基于深度学习的车牌识别系统设计与实现深度卷积神经网络及其在人脸识别中的应用深度增强学习理论研究及

caxiou的博客 1106

大数据毕设开题报告怎么做

丹成学长,搜集分享最新的智能科学与工程业专业毕设选题,难度适中,适合作为毕业设计,大家参考相对容易工作量达标题目新颖。

m0_76217654的博客 682

毕设-基于深度学习的智能聊天机器人(含源码)

随着深度学习在自然语言处理领域的飞速发展,国内外针对于文本分析、信息检索、词性标注和问答系统等技术的研究已经愈发成熟。尤其是聊天机器人技术,正伴随着便携移动设备市场的拓展走向成熟,在客服、金融、医疗、教育和生活服务等方面应用广泛。由于基于中文语料的聊天机器人具有开放式交互的优良特点,该技术将会极大的改善人们的生活方式,成为新时代的科技增长点。本文主要基于深度学习的Seq2Seq模型对构建的语料库做词向量转换和模型训练得到智能聊天机器人系统。

weixin_51152456的博客 1601

人工智能毕业设计项目推荐 - 最新毕设项目

学长搜集分享最新的人工智能专业毕设选题,难度适中,适合作为毕业设计,大家参考。相对容易工作量达标题目新颖。

m0_76217654的博客 964

自然语言处理方向必过选题推荐:语义理解、信息抽取、对话系统 180 个题目

【毕设选题指南】本文为计算机专业学生提供自然语言处理方向的毕设选题参考,涵盖情感分析、问答系统、文本分类三大热门方向。情感分析选题包括基于深度学习的财经新闻情感分析、细粒度情感分析、多模态情感识别等;问答系统方向推荐知识图谱问答、生成式问答、领域特定问答等;文本分类方向包含语义理解、多标签分类、文本摘要等。每个方向均提供具体选题示例,如基于BERT的医患对话情感分析基于知识图谱的法律问答系统等。文章强调选题需平衡难度与工作量,建议结合个人兴趣与能力选择,并提供

Hai_Lang_IT的博客 1153

2024智能科学与技术毕业设计选题分享

学长搜集分享最新的智能科学与工程业专业毕设选题,难度适中,适合作为毕业设计,大家参考。相对容易工作量达标题目新颖🧿。

m0_76217654的博客 1049
上一篇: 毕设项目分享 基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python
下一篇: 毕设项目分享 基于深度学习的中文汉字识别 - 深度学习 卷积神经网络 机器视觉 OCR
kooerr
博客等级 码龄5年 5082粉丝 707原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值