NLP实践TensorFlow打造聊天机器人

<p>想要课程的请访问 icourse8.com/nlp_tensorflow.html</p>
<p>想要课程的请访问 icourse8.com/nlp_tensorflow.html</p>
<h5>更多课程请访问icourse8.com,慕课网全集都有,还有跟多机构课程</h5>
<h5>无论是入门,还是提高,总有一门课程适合你</h5>
<div>icourse8.com/nlp_tensorflow.html</div>

第1章 课程导学
第2章 基础知识
第3章 循环神经网络(RNN与LSTM)
第4章 NLP基础
第5章 文本处理方法
第6章 实战之聊天语料处理
第7章 聊天机器人原理
第9章 聊天机器人训练-seq2seq的模型编写
第10章 聊天机器人模型的训练和验证
第11章 Android的打包与发布
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。

k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。

示例 :

//用尾插法实现
class Solution {
    public ListNode reverseKGroup(ListNode head, int k) {
        if (head == null) return null;
        ListNode tmp=head,tail=head;
        int count=1;

        //检查是否够长
        while (tail.next!=null && count<k){
            tail = tail.next;
            count++;
        }
        //System.out.println("tail.value"+tail.val);
        if (count == k){
            //用递归,head变一变
            //tail后面都排好了
            tail.next = reverseKGroup(tail.next,k);
            ListNode p;
            //尾插,tmp指向第一个,tail指向最后一个
            while (tmp != tail){
                p=tail.next;
                tail.next = tmp;
                tmp = tmp.next;
                tail.next.next = p;
            }
            return tail;
        }
        else return head;
    }
}

给定这个链表:1->2->3->4->5

当 k = 2 时,应当返回: 2->1->4->3->5

当 k = 3 时,应当返回: 3->2->1->4->5

说明 :

你的算法只能使用常数的额外空间。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

class Solution {
    public ListNode reverseKGroup(ListNode head, int k) {
        ListNode prev = null;
        ListNode cur = head;
        ListNode next = null;
        ListNode check = head;
        int canProceed = 0;
        int count = 0;
        // 检查链表长度是否满足翻转
        while (canProceed < k && check != null) {
            check = check.next;
            canProceed++;
        }
        // 满足条件,进行翻转
        if (canProceed == k) {
            while (count < k && cur != null) {
                next = cur.next;
                cur.next = prev;
                prev = cur;
                cur = next;
                count++;
            }
            if (next != null) {
                // head 为链表翻转后的尾节点
                head.next = reverseKGroup(next, k);
            }
            // prev 为链表翻转后的头结点
            return prev;
        } else {
            // 不满住翻转条件,直接返回 head 即可
            return head;
        }
    }
}

原文地址:https://blog.51cto.com/14127734/2390630

时间: 2024-10-09 05:27:15

NLP实践TensorFlow打造聊天机器人的相关文章

NLP实践 TensorFlow打造聊天机器人

第1章 课程导学 对课程章节.知识点.课程安排.适用人群.前提条件以及学习完成后达到的程度进行了介绍,让同学们对本课程有基本的认识. 第2章 基础知识 介绍tensorflow的基础知识和原理,介绍tensorflow的基本训练方法和训练的注意点,介绍什么是Android系统及Android系统的四大基本组件,以及如何开发Android APP,开发工具用什么,环境如何搭建. 第3章 NLP基础 介绍什么是RNN和LSTM,并介绍他们在NLP处理中如何去使用,介绍什么是NLP语言模型,以及常用的

Tensorflow打造聊天机器人

Tensorflow聊天机器人 聊天机器人也叫做对话系统,是一个热门领域.微软.facebook.苹果.google.微信.slack都在上面做了大的投入,这是一波新的试图改变人和服务交流的创业浪潮.例如operator x.ai,chatfuel,以及一些库例如botkit,微软的bot开发库. 许多公司都希望机器人可以自然对话,和人类没有区别.并且许多对外声明说用了NLP和深度学习技术来实现这个目标.但围绕AI这些天花乱坠的宣传有时候也很难区别现实和虚化的差别. 我要在这个系列文章里将一些构

用机器学习打造聊天机器人(七) 总结篇

本文是用机器学习打造聊天机器人系列的最后一篇啦,请耐心看完吧. 本系列文章展示了一个聊天机器人的打造过程,现阶段更高级的聊天机器人会加入更多语料,更多意图模式,用更好的算法,以及其他更多的小技巧,比如: 我们可以结合上一个系列<手把手教你做命名实体识别>中介绍的bert模型,来代替这里的词向量模型,让句向量更好的表示出原句子中各词汇之间的相关性,比如"我喜欢苹果"和"我喜欢苹果笔记本",对于采用word2vec的方式来构建向量特征来说,对"苹果

用机器学习打造聊天机器人(五) 接入篇

本文是用机器学习打造聊天机器人系列的第五篇,在特性介绍中提到过,我们采用非侵入式设计,通过几个简单的 API 就可以接入聊天机器人到其他项目中,下面来看看具体步骤. 接入步骤 提供符合要求的领域问答语料的 txt 文件,按照意图类型划 分成不同的txt文件,替换本引擎自带的txt语料文件,txt语料文件示例如下: 可以看到,闲聊的语料文件以QA_talk-开头,业务类的以QA_sf_开头,内容的格式就如图中所示,每个问题占一行,每个回答占一行. 我们可以参考接口说明中的接口在自己的项目中开发自己

用tensorflow框架搭建基于seq2seq-attention的聊天机器人

Tensorflow版本: GPU: 1.12.0 理论部分: 参考:https://www.bilibili.com/video/av19080685,讲解的超级详细. 代码部分: 1.语料库预处理 2.搭建模型计算图 3.启动session会话,进行模型训练. 文件夹图示如下:其中data文件夹存储对话语料,ids文件夹存储词语和id之间的映射关系,tmp文件夹存储了整个的字典以及word2vec模型,checkpoint文件存储了tensorflow训练的模型. 进入代码实战部分: 首先得

聊天机器人(chatbot)终极指南:自然语言处理(NLP)和深度机器学习(Deep Machine Learning)

在过去的几个月中,我一直在收集自然语言处理(NLP)以及如何将NLP和深度学习(Deep Learning)应用到聊天机器人(Chatbots)方面的最好的资料. 时不时地我会发现一个出色的资源,因此我很快就开始把这些资源编制成列表. 不久,我就发现自己开始与bot开发人员和bot社区的其他人共享这份清单以及一些非常有用的文章了. 在这个过程中,我的名单变成了一个指南,经过一些好友的敦促和鼓励,我决定和大家分享这个指南,或许是一个精简的版本 - 由于长度的原因. 这个指南主要基于Denny Br

用 TensorFlow 做个聊天机器人

上一次提到了不错的学习聊天机器人的资源,不知道小伙伴们有没有去学习呢. 自己动手做聊天机器人教程 我最近每天都会学一点,拿出解读来和大家分享一下. 本文结构: 聊天机器人的架构简图 用 TensorFlow 实现 Chatbot 的模型 如何准备 chatbot 的训练数据 Chatbot 源码解读 1. 聊天机器人的架构简图 学习资源: [自己动手做聊天机器人 九-聊天机器人应该怎么做] (http://www.shareditor.com/blogshow/?blogId=73) 聊天机器人

三步轻松打造微信聊天机器人(附源码)

最近微信公众平台开发是热门,我也跟风做了一个陪聊的公众号. 其实类似的自动回话程序早就有了,比如前一阵很火的小黄鸡(还是小黄鸭来着?).但尽管是跟风,也要体现一些不同.别人做的都是中文陪聊,咱就来做个英语陪聊. 不管是中文还是英文,做起来都一样,都是利用网络上的接口.或者你也可以试着自己开发一个陪聊程序. 随便在网上搜了一个英语聊天机器人的网址:http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1   咱们就利用这个网址来做

把去世的亲友做成聊天机器人,就能让生者慰藉、死者安息吗? - 看了 寻梦历险记,我的回答是 :是的,他/她永远活在我们心里 www.iremember.com.cn

AppU 如今的我们,之所以离不开手机和互联网,是因为它们确实可以带来信息和方便,让我们轻松记录并分享自己的生活体验,留下了充满回忆的各种文字.语音,各种图片.视频…… 但你有没有想过,当我们逝世时,对于如此之多的数字足迹和虚拟遗产,你有没有认真考虑过如何去处理它们?是就此沉寂在大公司冰冷的数据中心?还是愿意把这样的记忆保存下来,甚至做成机器人,永远陪伴在亲友身边? 其实在英剧<黑镜>第二季的一开头,就已经探讨过一个这样的故事.让 Geek 君没想到的是,一位俄罗斯的创业者真的把她逝去的好友,