人机对话系统(2)

作者: zidea | 来源:发表于2019-07-21 16:54 被阅读12次
人机对话
labels = []
docs_x = []
docs_y = []

for intent in data["intents"]:
    for pattern in intent["patterns"]:
        wrds = nltk.word_tokenize(pattern)
        words.extend(wrds)
        docs_x.append(wrds)
        # print(docs_x)
        docs_y.append(intent["tag"])
        # print(docs_y)
        if intent["tag"] not in labels:
            labels.append(intent["tag"])

从输出来看我们构建两个集合分别 docs_x 用于存放每一句话,而 docs_y 用于按照相同顺序存放每一句话所对应的标签。

['Hi', 'How are you', 'Is anyone there?', 'Hello', 'Good day', 'Whats up', 'cya', 'see you later', 'Goodbye', 'I am Leaving', 'Have a Good day', 'how old', 'how old is tim', 'Goodbye', 'what is your age', 'age?', 'what is your name', 'what should I call you ', 'whats your name?', 'Id like to buy something', 'whats on the menu', 'what do you recommed?', 'could i get someting']
['greeting', 'greeting', 'greeting', 'greeting', 'greeting', 'greeting', 'goodbye', 'goodbye', 'goodbye', 'goodbye', 'goodbye', 'age', 'age', 'age', 'age', 'age', 'name', 'name', 'name', 'shop', 'shop', 'shop', 'shop']
words = [stemmer.stem(w.lower()) for w in words]
words = sorted(list(set(words)))
labels = sorted(labels)
  • 首先 lower 将单词转换为小写,然后 stem 抽查单词的词干缺掉时态的复数形式获取单词的词干
  • 然后就是 set 来去重复的单词

处理数据

要用 docs_x 来训练模型,现在数据格式还不符合要求,我们需要将字母转换为神经网络可以识别的序列数字。

[1,0,1,0,0,2]

将我们数据(单词)对应到上面集合,每一个单词对应以位置上数据,1 表示存在该单词,如果大于 1,数字表示单词出现次数,这里 2 表示出现 2 次。

out_empty = [0 for _ in range(len(labels))]

这里只是简单定义,我们的输出为标签也就是识别出类别,通常应该为数组

[1,0,0,0,0]

1 在这表示对应 tag 为 greeting ,也就是输出结果为 greeting 。

可以通过打印明确 docs_x 与 docs_y 一一对应该系,也就是一句话(输入)对应一个 tag(标签)输出,例如 'Is anyone there?' 对应着 ‘greeting'

相关文章

  • 人机对话系统(2)

    从输出来看我们构建两个集合分别 docs_x 用于存放每一句话,而 docs_y 用于按照相同顺序存放每一句话所对...

  • 人机对话系统 (1)

    NLP(natural language process)自然语言处理是机器学习的一部分 google 和百度在机...

  • 人机对话系统(3)

    将 training 和 output 通过 numpy 转换矩阵供 tensorflow 进行计算,这里我们没有...

  • 人机对话系统简介

    人机对话,是人工智能领域的一个子方向,通俗的讲就是让人可以通过人类的语言即自然语言与计算机进行交互。很多同学不清楚...

  • 人机对话系统实现大纲

    一、语音智能交互服务技术概述二、语音智能交互系统总体设计1、语音智能交互基本架构2、语音智能技术架构(算法层、数据...

  • 人机对话(物语2)

    人与人之间有语言,通过语言可以对话。人与自己制造的机器也有语言,机器能懂得的语言就是编程语言。人们在制作机器时就...

  • 对话系统的概述

    对话系统是一种人机对话交互的典型应用,按照用途可以分为两类:闲聊式的对话系统和面向任务的对话系统。 开放式的对话系...

  • 任务驱动型人机对话系统

    0、说明 对话系统大致可分为5个基本模块:语音识别(ASR)、自然语音理解(NLU)、对话管理(DM)、自然语言生...

  • Pexpect 模块使用说明

    请不要转载 背景介绍 Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账...

  • 谈任务驱动型人机对话系统

    一. 任务驱动与非任务驱动型对话系统 目标驱动型人机对话系统:通过与用户进行多轮基于自然语言的对话来逐步收集与目标...

网友评论

    本文标题:人机对话系统(2)

    本文链接:https://www.haomeiwen.com/subject/kxohlctx.html