查询处理系统中的众包响应的制作方法

文档序号:19792684发布日期:2020-01-24 14:38阅读:423来源:国知局
查询处理系统中的众包响应的制作方法

相关申请的交叉引用

本申请要求于2017年4月20日提交的标题为“crowdsourcingresponsesinaqueryprocessingsystem(查询处理系统中的众包响应)”的第15/493,032号美国专利申请的优先权及权益,所述专利申请的全部内容以引用的方式并入本文中以用于所有目的。

本公开总体上涉及自动对话系统,并且更具体地涉及用于回答可以利用由其他用户提供的响应的用户查询的自动对话系统。一些实施例描述了此类自动对话系统与用于例如经由连接到烹饪器具的网络来提供对食物制备的控制的系统的集成。



背景技术:

在自然语言处理和人工智能方面的最新进展已允许使用自动对话系统(有时称为“聊天机器人”),人类用户可以通过所述对话系统与计算系统进行交互通信,就好像他们在与另一个人通信一样。可以对此类系统进行编程以执行某些任务,诸如以模拟人际互动的自然语言格式为用户提交的问题提供回答。当前,自动对话系统在许多应用中例如作为数字客户服务代表或个人数字助理(诸如alexa)实现。

附图说明

在附图的图中作为示例而非限制来说明本公开的一个或多个实施例,在附图中类似附图标记指示类似元件。

图1示出在其中可实现查询处理系统的示例网络环境;

图2是示出示例查询处理模块的框图,所述查询处理模块可为图1的查询处理系统的一部分;

图3a是示出用于输出针对用户查询的回答的示例过程的流程图;

图3b是描述用于接收用户查询并确定与用户查询的意图匹配的回答是否可用的示例过程的流程图;

图3c是描述用于存储与众包响应相关联的数据的示例过程的流程图;

图4a是第一示例网络环境的示意图,在其中可实现具有集成查询响应功能系统的食物制备指导系统;

图4b是第二示例网络环境的示意图,在其中可实现具有集成查询响应功能系统的食物制备指导系统;

图4c是第三示例网络环境的示意图,在其中可实现具有集成查询响应功能系统的食物制备指导系统;

图5示出经由客户端设备的图形用户界面的示例用户交互的屏幕截图;

图6是经由器具的音频接口的示例用户交互;

图7示出经由图形用户界面的示例用户交互的屏幕截图,所述用户交互是允许众包响应的提示;

图8a示出经由图形用户界面的对用户查询的众包响应的第一示例输出的屏幕截图;

图8b示出经由图形用户界面的对用户查询的众包响应的第二示例输出的屏幕截图;

图8c示出经由图形用户界面的对用户查询的众包响应的第三示例输出的屏幕截图;

图8d示出经由图形用户界面的对用户查询的众包响应的第四示例输出的屏幕截图;

图8e示出经由图形用户界面的对用户查询的众包响应的第五示例输出的屏幕截图;并且

图9是示出图1的查询处理系统和/或图4a至图4c的食物制备指导系统的特定功能部件的框图。

具体实施方式

根据前述内容,将理解的是,出于说明的目的已经在本文中描述本发明的具体实施例,但是可以在不脱离本发明的范围的情况下进行各种修改。因此,本发明不受除所附权利要求之外的限制。

概述

在自然语言处理和人工智能方面的最新进展已经允许使用越来越先进的自动对话系统(“聊天机器人”)。尽管在一定程度上有效,但是此类自动对话系统解释用户通信并提供对用户通信的准确且有效的响应的能力受到自然语言处理的当前状态、人工智能的一般复杂性和这种人工智能所基于的知识基础的限制。这些限制在某些空间(诸如烹饪空间)中可能变得尤其明显,在所述烹饪空间,用户可能输入截然不同的消息,诸如:

“我可以用这种烹饪器具来煮蔬菜吗?”

“烹饪器具有可获得的折扣吗?”

“我应该烤火鸡多长时间?”

“你们能提出最终的松饼食谱吗?”

“我应该给我的牛排搭配什么?”

甚至对一小部分此类用户查询做出响应的与自动对话系统相关联的训练模型(例如,机器学习模型)提出严峻的挑战。相反,可以通过众包一些响应并部分使用那些众包响应来训练模型,从而利用社区其他用户(包括在诸如烹饪空间的特定空间中具有专业知识的用户)的知识库。本文介绍的是用于处理用户查询以提供自动响应的技术,所述自动响应在一些情况下包括源自其他用户社区的响应。本文所述的技术的某些实施例可通过以下过程来总结:

1.用户向系统提交包括查询的消息

2.系统确定与高于阈值置信水平的查询的意图匹配的响应是否可用。

3.如果这样的响应不可用,则系统提示用户允许使查询能够供多个其他用户访问。

4.如果用户确认允许,则系统使查询能够供多个其他用户访问。

5.系统从多个其他用户中的一个或多个接收响应。

6.系统将接收到的响应输出给用户。

7.系统提示用户作出关于输出响应的反馈。

8.基于从用户接收的反馈来训练系统。

在一些实施例中,用于响应用户查询的上述技术可通过食物制备指导系统或与食物制备指导系统结合来实现,所述食物制备指导系统例如类似于描述于以下专利申请中的系统:2015年7月1日提交的标题为“systems,articlesandmethodsrelatedtoprovidingcustomizedcookinginstruction,”的第14/789,414号美国专利申请(美国公开号2016/0005327)、2015年12月18日提交的标题为“foodpreparationguidancesystem,”的第14/974,635号美国专利申请(美国公开号2016/0174748)和2016年1月28日提交的标题为“foodpreparationcontrolsystem”的第15/009,525号美国专利申请(美国公开号2016/0220064),所有专利申请的全部内容以引用的方式并入本文中。

示例操作环境

图1示出示例网络环境100,用于为用户问题提供自动回答。如图1所示,网络环境100可包括查询处理系统120、一个或多个客户端计算设备102、一个或多个网络连接器具104、一个或多个外部服务140、一个或多个外部数据源150以及一个或多个众包者(crowdsources)160。与网络环境100的上述部件相关联的实体(例如,设备、用户、软件等)可经由一个或多个通信信道,例如通信网络110(例如,lan、wan、因特网、万维网、蜂窝网络、nfc)以通信方式联接在一起。

查询处理系统120可采用具有相关联的非暂时性处理器可读存储介质或其他数据存储设施的一个或多个服务器计算机系统120a的形式。例如,图1中所描绘的查询处理系统120包括当实施本文所述的技术时可采用的数据储存库120b和一个或多个机器学习模型120c的储存库。尽管被示为单个服务器计算机系统120a和相关联的非暂时性存储介质120b-c,但是许多实施方式可采用两个或更多个服务器计算机系统120a和/或非暂时性相关联的处理器或计算机可读存储介质120b-c。此外,图1中所描绘的服务器计算机系统120a可表示在单个物理位置处的一个或多个物理计算设备处实例化的或在多个物理位置处分布的物理硬件设备和/或虚拟化设备。在一些实施方式或实例中,非暂时性处理器可读或计算机可读介质120b-c可包括存储以下内容中的一个或多个的数据库或其他数据结构:图像数据、视频数据、音频数据、文本数据、机器学习模型、查找表、自然语言处理算法、客户标识符、客户账户标识符、客户身份信息、金融账户信息(例如,信用和/或借记账户号码、有效期、安全码)、用户历史、众包数据和/或其他数据或统计信息。

查询处理系统120可包括查询处理模块122。尽管在图1中描绘为服务器计算机系统120a的一部分,但是查询处理模块122可包括用于执行指令以进行本文所述的功能的硬件和/或软件的任何组合。例如,查询处理模块122可实现为在机器上、在固件中、在硬件中、在其组合中或在任何可适用的已知或方便的设备或系统中的计算机可读介质或计算机可读存储介质(例如,服务器计算机系统120a内部的存储介质或服务器计算机系统120a外部的存储介质,诸如储存库120b)中实例化的软件。在本说明书中所描述的这种模块和其他模块、子模块或引擎旨在包括能够进行在本说明书中含蓄地、明确地或内在地描述的功能中的至少一些和/或进行等效功能的任何机器、制造品或物质组成。此外,尽管在图1中描绘为单个查询处理模块122,但是在一些实施例中,本文所述的功能可由未在图1中描绘的多个其他模块执行或与其结合执行。

在一些实施方式中,用户103可利用客户端计算设备102和/或相关联的器具104来与查询处理系统120进行交互。例如,客户端计算设备102或器具104可执行经由任何合适的通信接口(例如,)与查询处理系统120进行通信的程序或“app(应用)”。客户端计算设备102可包括被配置成处理数据并经由网络110与其他设备进行通信的任意数量类型的设备。此类设备的示例包括台式计算机、膝上型计算机、智能电话设备、平板设备、数字助理设备(例如amazonechotm)、可穿戴计算设备、智能电视、视频游戏机等。器具104通常可指旨在用于计算以外的目的的设备,但是其还包括用于经由一个或多个网络110进行通信的装置。在一些情况下,此类器具104可被称为“智能家电”、“智能设备”或“物联网(iot)”设备。例如,在本文中将描述包括被配置成烹饪食物的烹饪器具的实施例,所述烹饪器具包括用于与另一个用户设备102和/或查询处理系统120进行通信的装置。烹饪器具是器具104的一个示例,其他说明性示例包括其他家用电器(例如,冰箱、洗衣机等)、楼宇自动化设备、与加热通风和冷却(hvac)系统相关联的设备、智能电表、车辆等。尽管在图1中描绘为与客户端计算设备102分开,但是器具104在一些实施例中可包括与客户端计算设备102的功能部件类似的一个或多个功能部件。因此,在一些实施例中,计算设备102和器具104可被统称为客户端计算设备。

如将更详细地描述,用户103可使用客户端计算设备102和/或器具104来与查询处理系统120进行交互以寻找问题的回答。具体地,用户可使用客户端计算设备102和/或器具104来例如经由文本或语音将问题输入为消息。类似地,在一些实施例中,用户103可经由客户端计算设备102和/或器具104从查询处理系统120和/或各种众包者160接收响应。此外,用户103可经由客户端计算设备102和/或器具104输入关于所接收的响应的反馈。

尽管下面通常依照经由在计算设备上执行的指令生成的用户界面来描述,但是在一些实施方式中,查询处理系统120可用作用户门户,所述用户门户可以例如用作web服务器,服务html页面或提供充当用户界面的web服务。因此,在一些实施方式中,查询处理系统120用作用户门户,提供用户界面,例如基于web的界面,所述用户门户允许用户103经由各种基于处理器的计算设备102访问本文所公开的功能。

显示在计算设备102的显示器上的用户界面可包括各种下拉菜单、标签、用户可选图标、输入栏、滚动条、图像、视频、音频和对话框,以及其他用户界面组件。用户界面可允许用户103使用计算设备102创建用户或客户账户。用户103可输入他们的全名、屏幕名称或昵称、地址和/或出生日期。用户103可任选地输入金融账户信息,例如,账户号、有效期以及与赊购或借记账户相关联的验证码或安全码。这允许用户103对物品、商品或服务的购买进行自动收费或借记。

各种系统、子系统和/或基于处理器的设备能够例如经由一个或多个网络110进行通信,所述一个或多个网络110可为例如分组交换通信网络,诸如因特网、因特网的万维网部分、外联网、内联网和/或各种其他类型的电信网络,诸如蜂窝电话和数据网络或信道,以及简易老式电话系统(pots)网络。通信基础设施的类型不应视为限制性的。通信网络110可采用多种形式中的任一种,并且可包括调制解调器(例如,dsl调制解调器、电缆调制解调器)、路由器、网络交换机和/或网桥等。

尽管经常被示为单个非暂时性处理器可读存储介质,但是在许多实施方式中,各种所示的非暂时性计算机可读或处理器可读存储介质中的每一个可构成多个非暂时性存储介质。多个非暂时性存储介质可共同地位于共同的位置,或分布在各种远程位置处。数据库可彼此分开存储在单独的计算机可读或处理器可读存储介质上,或者可存储在彼此相同的计算机或处理器可读存储介质上。各种计算机或处理器可读存储介质可与对应的计算机系统共同位于例如,相同的房间、建筑物或设施中。可替代地,各种计算机可读或处理器可读存储介质可远离对应的计算机系统(例如,服务器计算机系统120a)位于例如不同的设施、城市、州或国家中。电子或数字信息、文件或记录或其他信息集合可存储在非暂时性计算机或处理器可读介质中的特定位置处,所述特定位置因此是此类介质的逻辑可寻址部分,其可以是或可以不是连续的。

如图1所示,网络环境100可包括可由查询处理系统120例如经由网络110访问的一个或多个外部服务140。在该上下文中的“外部”是指由查询处理系统120的提供商以外的实体生成、提供、管理、拥有等的服务。换句话说,外部服务140可包括由诸如的第三方(例如,经由api)提供的服务,其扩展和/或减轻本文所述的关于查询处理系统的某些功能。作为说明性示例,用户103与查询处理系统120之间的通信可由诸如messenger的外部消息服务141来处理。外部服务140还可包括电话服务142(例如,由电话设施或蜂窝服务提供商提供),用于处理用户103与查询处理系统120之间的语音通信。外部服务140还可包括用于以人类语言解释和/或生成通信的自然语言处理服务143。外部服务140还可包括被配置成与人类用户进行自然语言通信的外部自动对话服务144。在一些实施例中,此类服务可包括通常被称为“机器人”或更具体地被称为“对话机器人”或“聊天机器人”的计算机程序。例如,messenger平台经由api提供实现此类机器人的实施方式的服务。外部服务140还可包括各种用户可通过其进行连接的社交媒体服务144。例如,如将描述的,本公开的一方面众包用户所提交的查询以获得来自其他用户的回答。在一些实施例中,众包的过程可包括经由一个或多个社交媒体平台使用户所提交的问题能够供其他用户访问。外部服务140还可包括可用于实现本文所述的功能的任何其他外部服务146,诸如搜索引擎服务、电子商务服务、数据分析服务、数据存储服务、云计算服务、位置服务等。

关于图1所述的外部服务140可使用具有相关联的非暂时性处理器可读存储介质或其他数据存储设施(例如类似于关于服务器计算机系统120a和相关联的存储设施120b-c所述)的一个或多个服务器计算机系统来实现。在一些实施例中,外部服务140的部分可在查询处理系统120处在硬件和/或软件中实现。本领域普通技术人员将认识到,图1中所描绘的外部服务140是为了说明的目的而提供的示例。在一些实施例中,查询处理系统120可访问比如图1所描绘的更少或更多的外部服务140,或者可执行内部的所有功能并且根本不访问任何外部服务140。

网络环境100可包括可由查询处理系统120例如经由网络110访问的一个或多个外部数据源150。与外部服务140一样,在该上下文中的“外部”是指由查询处理系统120的提供商以外的实体提供、管理、拥有等的数据源。例如,取决于特定的实施方式,查询处理系统120可被配置成从一个或多个外部数据源150接收数据,以有利于用户查询的回答。例如,在作为食物制备指导系统(稍后更详细描述)的一部分的特定实施方式中,查询处理系统120可被配置成从一个或多个外部数据库访问数据,所述外部数据库包括与食物、食物制备、食物烹饪器具等有关的存储数据。

关于图1所述的外部数据源150可使用具有相关联的非暂时性处理器可读存储介质或其他数据存储设施(例如类似于关于服务器计算机系统120a和相关联的存储设施120b-c所述)的一个或多个服务器计算机系统来实现。本领域普通技术人员将认识到,先前描述的外部数据源150是为了说明的目的而提供的示例。在一些实施例中,查询处理系统120可访问更少或更多的外部数据源150,或者可基于内部数据源执行所有功能并且完全访问任何外部数据源150。

如将更详细地描述,在一些实施例中,当系统不能以其他方式对用户查询产生足够的响应时,查询处理系统120允许对用户查询的回答进行“众包”。应用于信息收集的术语“众包”通常可指从一个或多个其他来源(在一些情况下为其他人类来源)收集信息。因此,如图1所示,在一些实施例中,网络环境100可包括可由查询处理系统120例如经由网络110访问的信息的一个或多个“众包者”160。具体地,在一些实施例中,该组众包者160可包括经由(分别)连接到网络110的一个或多个计算设备162a-c而与查询处理系统120进行通信的一个或多个其他用户163a-c。计算设备162a-c通常可类似于客户端计算设备102和/或器具104。

虽然图1示出代表性的网络环境100,但是典型的网络环境可包括许多附加的计算机系统和实体。本文所教示的概念可以与比图1中所示的更多人口的网络环境类似的方式使用。例如,可能存在数百个(如果不是数千个,或甚至数百万个)用户103和163a-c、计算设备102和162a-c以及器具104。可存在多于一个的查询处理系统120,其例如位于不同国家或一个国家的不同地区中。此外,查询处理系统120中的一些或全部可在计算设备102、计算设备162a-c和/或器具104内实现。

示例查询处理模块

图2是示出根据一个或多个实施例的示例查询处理模块122的框图。查询处理模块122可例如被实现为任何查询处理系统120和/或关于图1描述的其他系统或设备中的任一个的一部分。图2中所描绘的示例查询处理模块122包括用于执行本文所述的技术的某些方面的各种模块或子模块。例如,查询处理模块122包括消息收发接口202、意图识别模块204、响应模块208、众包模块212、反馈处理模块214以及外部接口216。应当理解,作为查询处理模块120的一部分的图2中所描绘的模块是为了说明的目的而提供的示例,并且不应被解释为限制性的。例如,本发明的某些实施例可包括比关于查询处理模块122所述的更少或更多的功能操作,并且因此可具有更少或更多的子模块。此外,所述的模块的功能和特征可组合(例如,共享)或划分(例如,分布)为比如图2所示的更多或更少模块。仅作为说明性示例,在一些实施例中,负责确定所接收的消息的意图的意图识别模块204可与响应模块208和/或反馈处理模块214集成。此外,为了说明的目的,以下将某些过程描述为由某些模块执行或与某些模块结合执行。这些示例不应被解释为限制性的。在一些实施例中,以下所述的过程可由其他模块、设备或系统执行,或者可根本不执行。还应理解,本文所述的模块中的一个或多个和/或其相关联的功能可类似地在稍后关于图4a所述的查询处理模块422或总体食物制备指导(fpg)系统420中实现。

在一个实施例中,消息收发接口202可从查询处理系统120、与用户103相关联的客户端计算设备102和器具104和/或与各种其他用户163a-c相关联的计算设备162a-c中的任一个接收消息、和/或向其发送消息和在它们之间收发消息。如本文所用,消息可指通过网络110进行的任何类型的通信,诸如基于文本的通信(例如,电子邮件、sms、即时消息、寻呼、通知等)、基于音频的通信(例如,常规语音、voip、蜂窝语音、音频流、语音文本、mms等)、基于图像/视频的通信(例如,视频通话/聊天、视频流、mms等)。例如,在一些实施例中,在查询处理系统120处经由消息收发接口202接收由用户103经由计算设备102和/或器具104输入的消息(例如,文本、音频、视频等)。随后将这些消息切换给例如意图识别模块204,以将所接收的消息解释为用户查询。类似地,在一些实施例中,对用户查询的所生成或访问的响应可通过消息收发接口202输出以递送给用户103,例如,通过经由网络110将响应作为消息进行传递,以在客户端计算设备102或器具104中的任一个处输出。在一些实施例中,由用户103提交的用户查询可作为消息输出以递送给一个或多个其他用户163a-c,例如作为与众包模块212结合的众包过程的一部分。在此类实施例中,这些消息可经由网络110传递,以在与其他用户163a-c相关联的计算设备162a-c中的任一个处(分别)输出。类似地,在一些实施例中,可经由消息收发接口202在查询处理系统120处接收来自一个或多个其他用户的消息形式的响应。这些所接收的消息随后可在查询处理系统122处被处理和/或例如经由网络110以及计算设备102或器具104中的任一个一起转发给用户103。

如先前所提到的,关于包括在查询处理模块122中的模块所述的过程中的一个或多个可由一个或多个外部服务140处理。例如,在一些实施例中,图2中所描绘的消息收发接口202可与外部消息服务141(例如,messenger)和/或电话服务142(例如,sms提供商)接合,所述外部消息服务141和/或电话服务142可转而处理向在查询处理系统120、与用户103相关联的客户端计算设备102和器具104和/或与各种其他用户163a-c相关联的计算设备162a-c中的任一个传递消息、从所述任一个接收消息和在所述任一个之间对消息进行路由选择。

在一个实施例中,意图识别模块204可例如经由消息收发接口202从用户103和/或163a-c接收消息,并处理消息以确定与所接收的消息相关联的一个或多个意图。需注意,如本文所用,动词“确定”通常被解释为包括诸如“猜测”、“推断”、“解释”等的术语,因为应当理解,在对交流的意图的任何确定中都存在一定程度的不确定性。在一些情况下,确定与从人类用户所接收的消息相关联的意图可包括被称为“自然语言处理”的过程。通常,自然语言处理可采用交流的字词序列,并确定字词序列所源自的人的意图。

如前所述,可以多种不同格式(诸如,各种文本、音频和基于图像/视频的格式)接收消息。因此,在一些实施例中,确定所接收的消息的意图的第一步可以是将消息从所接收的格式转换成可由意图识别模块识别的字词序列。在基于文本的通信的情况下,这种转换可能相对直接。然而,基于音频和/或图像/视频的消息的使用可能需要附加的推理层。例如,可使用语音到文本识别技术来处理所接收的音频消息,以将所接收的音频转换成字词序列。类似地,可使用文本识别和/或计算机视觉技术来处理所接收的图像/视频消息,所述技术将所接收的图像/视频转换成字词序列。例如,考虑从经由符号语言进行通信的用户103所接收的视频消息。在这种情况下,意图识别模块204可能首先必须使用计算机视觉技术来处理所接收的视频,以标识可识别符号的序列,并且随后将该序列转换成字词序列。

在一些实施例中,意图识别模块204可解析与所接收的消息相关联的字词序列,以便确定与消息相关联的意图以及与意图相关联的一个或多个可变属性。例如,考虑示例性所接收的消息,包括文本字符串“我应该在什么温度下烹饪牛排”或与所述文本字符串相关联。通过分析包括在字符串中的字词及其顺序,意图识别模块204可至少将消息解释为用户查询。例如,在该上下文中,术语“什么”的包含和排序强烈暗示疑问的意图。除了将消息一般解释为用户查询之外,意图识别模块还可用于基于字词序列来确定用户查询的特定意图。例如,上面提到的字符串可被确定为具有“烹饪时间”的特定意图。在一些实施例中,意图识别模块204可利用一组预定义的意图,并且可处理字词序列以确定该组预定义的意图中的与字词序列最紧密相关联的特定意图。例如,在食物制备指导系统420(图4a至图4c)的情况下,意图识别模块204可访问包括与食物、食物制备、烹饪器具等有关的一组预定义的意图的储存库420b。作为说明性示例,与食物和烹饪有关的意图可包括“烹饪温度”、“烹饪时间”、“器具说明”、“食谱”、“量度单位换算”、“成分替代”等。

如所建议的,除了确定与消息相关联的意图之外,意图识别模块204可进一步操作以提取与意图相关联的一个或多个可变属性。例如,再次考虑文本字符串,“我应该在什么温度下烹饪牛排”。已经解释了与文本字符串相关联的消息是用户查询,并且已经进一步确定用户查询的意图是“烹饪时间”,意图识别模块204可进一步提取可变属性,诸如句子中的宾语(在这种情况下为“牛排”)和/或句子中的主语(在这种情况下“我”是指用户)。在一些情况下,可变属性可从字词序列的其他方面提取。例如,在这里,动词“烹饪”是通用的,并且不一定是指特定的烹饪方法,但是可设想的是,可变属性可在类似的消息中从动作动词中提取,例如,与烹饪相关的动词更具体,诸如“炙烤”、“烤”、“烘焙”、“煮”等。与意图确定一样,意图识别模块204可利用一组预定义的可变属性,并且可根据该组预定义的可变属性来处理字词序列。例如,在食物制备指导系统420(图4a至图4c)的情况下,意图识别模块204可访问包括与食物、食物制备、烹饪器具等有关的一组预定义的可变属性的储存库420b。作为说明性示例,与食物和烹饪有关的可变属性可包括“食物”、“烹饪方法”、“计量单位”、“温度”、“时间”、“高度”、“烹饪器具”等。此外,每个预定义的可变属性可与一个或多个可能的值相关联。例如,诸如“食物”的可变属性可与诸如“牛排”、“鸡蛋”、“西兰花”等的一个或多个可能的分类值相关联。相反,诸如“温度”的可变属性可与可变数值相关联。

在一些实施例中,意图识别模块204可将确定的意图和/或可变属性输出为结构化数据。例如,考虑由来自用户的消息(文本或以其他方式)引起的文本字符串“我应该烤十二磅的火鸡多长时间”。意图识别模块204可处理文本字符串并输出以下结构化数据:

文字=我应该烤十二磅的火鸡多长时间

意图=烹饪时间

食物=整个火鸡

食物重量=12磅

烹饪方法=烤

温度=

高度=

如上所述,在一些实施例中,意图识别模块204可推断关于一个或多个可变属性的某些信息。例如,意图识别模块204可基于术语“烤”和“十二磅”的组合来推断用户正在询问如何烤整个火鸡,而不是火鸡胸或包括火鸡绞肉的菜。

同样,如上所述,在一些情况下,消息的内容可能不包括可在其他方面适用于设置与特定意图相关联的可变属性的某些信息。例如,在一些实施例中,“烹饪时间”意图可与诸如“温度”和/或“高度”的可变属性相关联,因为这些因素可能影响问题的回答。所接收的消息“我应该烤十二磅的火鸡多长时间”不包括指示为这两个可变参数设置的值的任何字词。在一些实施例中,如果不能从字词序列中提取给定可变参数的值,则意图识别模块204可简单地将那些值保持未定义状态,例如,如上所示。任选地,在一些实施例中,意图识别模块204可输出未定义的可变参数的默认值。对于以上示例,意图识别模块204可输出“温度=400°f”和“高度=0”作为默认值。任选地,在一些实施例中,意图识别模块204可使用上下文信息来进一步定义某些可变参数。换句话说,在一些实施例中,意图识别模块204可基于除消息内容之外的输入来输出值。例如,意图识别模块204可从器具104(例如,图4a至图4c中的烹饪器具404)接收温度数据。如果用户正在使用设置为400华氏度(“f”)的器具进行烹饪,并且输入询问烤火鸡要多长时间的查询,则意图识别模块204可推断用户正在询问在400°f下烤火鸡要多长时间。类似地,在有或没有来自用户103的任何直接输入的情况下,诸如高度数据的信息可从与计算设备102相关联的传感器接收。

在一些实施例中,可使用(存储在储存库120c中的)一个或多个基于机器学习的模型(有监督、无监督或以其他方式)来执行解释消息、确定与消息相关联的意图和/或确定与意图相关联的各种参数的过程。一些示例机器学习模型包括决策树、基于统计的模型(例如,线性回归、逻辑回归等)、分类模型(例如,朴素贝叶斯)、神经网络等。用于回答用户查询的机器学习模型可根据历史信息(诸如先前所接收的消息和/或用户反馈)进行部分训练。

如先前所提到的,关于包括在查询处理模块122中的模块所述的过程中的一个或多个可由一个或多个外部服务140处理。例如,在一些实施例中,如由图2中所描绘的意图识别模块204执行的上述过程可替代地由一个或多个外部服务140(诸如自然语言处理服务143和/或自动对话服务144)来执行。例如,在一些实施例中,查询处理系统120可与在诸如messenger的另一个平台上托管的外部聊天机器人引擎接合。

在一些实施例中,响应模块208可处理所接收的消息以确定是否可回答用户的查询。例如,在一些实施例中,回答或尝试回答用户的查询的过程可至少部分地基于由意图识别模块204输出的结构化数据。

在一些实施例中,回答用户的查询的过程可包括确定与高于阈值置信水平的用户查询的确定意图匹配的响应是否可用。在该上下文中,响应可以是“可用的”作为存储的预先确定的响应(例如,设置的字词串)。这通常被称为基于检索的模型。在其他实施例中,如果必要信息是可访问的并且响应可由查询处理系统120生成,则响应可被确定为“可用”。换句话说,如果查询处理系统120能够回答用户的查询的话。这通常被称为生成模型。例如,如果用户查询是“我应该烤十二磅的火鸡多长时间”,则如果回答查询的必要的可变参数(例如,在400f下为4小时)为可访问的(例如,从储存库120b和/或外部数据源150),即使基于可变参数的响应消息尚未以人类用户的自然语言格式生成,响应也可由响应模块208确定为“可用”。

如上一段所提到的,可假定在许多情况下并且对于任意数量的因素,查询处理系统可能不具有对用户查询的可用响应将回答该用户的问题的100%置信度。因此,对于预先确定的或生成的任何可用响应,响应模块208可确定可用响应回答用户查询的置信水平。更精确地,响应模块208可确定可用响应与用户查询的意图匹配的置信水平。置信水平可以用几种不同的方式表示。例如,置信水平可属于几种类别(例如,高、中、低等)中的一个,或者可以数字的形式表示为例如在定义等级内的值。例如,可按0到1的等级对置信度进行排名,其中0.0到0.4指示低置信度,0.5到0.8指示中等置信度,并且0.9到1.0指示高置信度。如稍后将更详细描述的,这些置信水平可用于确定是否反过来使社区的其他用户回答特定用户的查询。

在一些实施例中,可使用一个或多个基于机器学习的模型(有监督、无监督或以其他方式)来执行回答用户查询或尝试回答用户查询的过程。一些示例机器学习模型包括决策树、基于统计的模型(例如,线性回归、逻辑回归等)、分类模型(例如,朴素贝叶斯)、神经网络等。用于回答用户查询的机器学习模型可根据历史信息(诸如先前的查询、响应和对此类响应的用户反馈)进行部分训练。例如,储存库120b-c可包括先前所接收的用户查询(例如,以与用户意图相关联的结构化数据的形式)。这些先前所接收的用户查询或意图可与(例如基于用户反馈)确定回答用户查询(即,匹配意图)的一个或多个响应相关联。该信息可以任何关系格式(诸如关系数据库、键值存储、包括由表示节点关系的边缘连接的节点的数据图等)存储。

基于机器学习的模型不仅可用于基于可访问的信息确定对用户的查询的回答,而且可生成可有效地将回答传达给用户的会话格式的响应。例如,存在多种不同的方式将回答“在400f下为4小时”传达给用户。在简单的示例中,基于文本字符串“在400f下为4小时”的消息可例如经由音频输出或图形输出而输出给用户。虽然在用户的查询的上下文中响应“在400f下为4小时”可能相对容易理解,但在其他情况下可能不清楚。相反,在一些实施例中,响应模块208可基于信息“在400f下为4小时”以自然语言格式生成响应。例如,响应模块208可生成输出消息,其叙述“将烤箱预热至400华氏度,将你的火鸡放在烤箱中,并烤四个小时。”

如果回答用户查询(例如,其与高于阈值置信水平的用户查询匹配)的响应可用,则响应模块208可例如经由计算设备102和/或器具104中的任一个而使该响应输出到用户103。例如,在一个实施例中,响应模块208可检索和/或生成回答用户查询的消息(例如,文本、音频、图像/视频等),并例如通过经由网络110将消息传递到客户端计算设备102和/或器具104而将消息切换到消息收发接口202,从而递送给用户103。

如先前所提到的,关于包括在查询处理模块122中的模块所述的过程中的一个或多个可由一个或多个外部服务140处理。例如,在一些实施例中,如由图2中所描绘的响应模块208执行的上述过程可替代地由一个或多个外部服务140(诸如自然语言处理服务143和/或自动对话服务144)来执行。例如,在一些实施例中,查询处理系统120可与在诸如messenger的另一个平台上托管的外部聊天机器人引擎接合。

如果(例如,通过响应模块208)确定回答高于阈值置信水平的用户查询(即与用户查询的意图匹配)的响应不可用,则众包模块212可使得一个或多个其他用户(例如,用户163a-c)能够访问从用户103所接收的用户查询并对所述用户查询作出响应。例如,响应于从响应模块208接收这种回答不可用的指示。众包模块212可提示用户103允许众包回答。换句话说,众包模块212可提示用户103允许使他们的问题能够供其他用户(例如,用户162a-c)访问。

查询处理系统120求助于回答众包的阈值置信水平可变化。例如,基于历史用户反馈和/或基于任何其他因素,阈值置信水平可以是用户可配置的、用户专用的、意图专用的。在一个示例实施例中,当基于0和1之间的范围(如先前所讨论的)时,阈值置信水平可设置为0.5。

在该上下文中,“使能够访问”可指:例如,经由任一个或多个通信信道将从用户103所接收的消息(或与消息相对应的信息)递送给包括众包者160的其他用户163a-c。例如,使用户查询能够供访问可包括:通过查询处理系统120将用户查询发布到任意数量的公共和/或私人论坛,其他用户163a-c通过所述任意数量的公共和/或私人论坛可访问问题。

在一些实施例中,一个或多个众包者160可包括可经由任意数量的公共和/或私人在线平台与查询处理系统120进行通信的其他用户163a-c。例如,在诸如公共在线留言板、聊天会话室、新闻聚合网站等的公共平台中,查询处理系统120可发布用户查询,所述用户查询随后可由参观公共平台的任何其他用户163a-c访问。例如,使用户查询能够经由公共平台访问可包括:在具有一个或多个其他用户的公共聊天会话室(例如messenger)中发布用户查询、在公共在线论坛(例如stackoverflow)中发布查询、经由一个或多个社交媒体平台(例如facebook、twitter等)以公共方式发布用户查询等。

在一些情况下,公共平台可以具有专注于特定主题的分组。例如,特定的公共平台可以具有专门针对烹饪的论坛。在此类情况下,使给定用户查询能够供访问可包括:例如基于用户查询的内容或意图在特定分组中发布该查询。例如,关于烹饪时间的用户查询将比在一般论坛中更有效地发布在专注于烹饪的分组中。

使用户查询能够经由私人平台访问可包括:例如,将用户查询发布在仅限于特定用户的聊天会话室或论坛中和/或将查询作为消息进行传递以递送给特定的其他用户163a-c。例如在其他情况下是公共的(即,所有人都可访问的)平台,类似于可能仍具有私人组或个人用户,可以私下地使得能够由所述私人组或个人用户访问。可替代地,查询可例如经由一个或多个私人通信信道(例如,电子邮件、sms、即时通讯、电话等)进行传递以直接递送给一个或多个其他用户163a-c。

在一些实施例中,其他用户163a-c通过其访问发布的用户查询的平台可被管理为查询处理系统120的一部分。例如,查询处理系统120可托管一个或多个公共和/或私人论坛、聊天会话室等,其他用户163a-c可通过所述一个或多个公共和/或私人论坛、聊天会话室等查看所发布的查询并对所发布的查询作出响应。与其他平台一样,该受管理的平台可包括例如专注于特定主题的分组。

在一些实施例中,平台可由一个或多个第三方服务(例如,等)来管理,其他用户163a-c通过所述平台访问所发布的用户查询。在一些论坛或聊天会话室中,其可例如经由api设置成专门与用户查询平台120接合,但在其他方面也可由第三方管理。

在一些实施例中,众包模块212可向用户103提供用于选择一个或多个平台的选项,通过所述一个或多个平台使他们的用户查询能够供其他用户163a-c访问。例如,选项可经由客户端计算设备102的用户界面作为可选择的选项呈现给用户。作为另一个示例,在用户已经输入他们的消息之后,选项可经由与用户的会话对话框呈现给用户103。作为说明性示例,查询处理系统120可使用户103参与以下对话框,以允许用户选择特定平台来发布他们的问题:

用户103:我应该烤十二磅的火鸡多长时间?

查询处理系统120:我不确定。我们可以问社区吗?

用户103:当然可以。

查询处理系统120:好。您想问特定的社区吗?

用户103:请问我的facebook朋友。

基于上述交互,众包模块212可将用户查询发布到仅对用户103的朋友可见的用户103的facebook页面/墙,可直接发送消息(例如,通过电子邮件、sms、电话等)给标识为用户103的facebook朋友的其他用户,和/或可经由平台专用的聊天界面(诸如facebookmessenger)发起与标识为用户103的朋友的一组其他用户的聊天对话框。这仅是示例,但是用于说明如何响应于提交查询的用户103的选择而可以专门定制将被准许对用户的查询的访问的一组其他用户163a-c。类似地,可向用户103呈现其他选项,例如如何使他们的查询能够供访问。例如,可向用户103呈现用于将他们的配置文件信息链接到查询,使查询匿名,改写查询,在查询中包括附加信息,对接收的最小/最大响应数设置限制,对于接收对查询的响应设置时间限制等的选项。

在一些实施例中,被选择用于访问用户查询的平台和/或特定组的其他用户163a-c可由众包模块212在很少或没有来自用户103的输入的情况下自动选择。众包模块212的自动选择可基于许多因素,诸如用户103的偏好、与用户103的交互历史、与用户查询相关联的意图、平台的声誉、其他用户163a-c的组和/或单独用户163a-c等。例如,再次考虑用户查询,“我应该烤十二磅的火鸡多长时间。”基于确定的“烹饪时间”的意图和相关联的可变属性,诸如“整个火鸡”和“烤”,众包模块212可自动选择专门用于烹饪的平台(例如,烘烤论坛)和/或为特定用户选择在烘焙专业知识方面具有很高声誉的其他用户163a-c,以使得用户查询能够供访问。

如先前所提到的,其他用户可能具有指示响应的整体质量和/或特定领域的专业知识的相关联的声誉。此类声誉指标可由查询处理系统120和/或基于其他平台或社区内的声誉来管理。例如,查询处理系统120可基于其他用户提供的响应以及用户103对那些响应的反馈来标记和跟踪其他用户的声誉得分。可替代地或另外地,查询处理系统120可依赖于其他平台特有的声誉指标(例如,总体redditkarma水平或基于特定“reddit的子版块(subreddit)”中的评论获得的karma)。

在查询处理系统120管理其他用户163a-c的声誉指标的实施例中,众包模块212可鼓励其他用户163a-c通过基于激励的系统来对用户查询作出响应,在所述系统中他们基于对用户查询的质量响应建立信誉。这种系统可最终建立具有用于质量响应的高声誉指标的一组“高级用户(powerusers)”,随后,众包模块212在寻找用户查询的回答时可首先求助于所述“高级用户”。还可实施其他激励措施,包括金钱激励措施、某些特权等。

在一些实施例中,众包模块212可利用一个或多个过滤器,在使得能够供其他用户163a-c访问之前,通过所述一个或多个过滤器来处理所接收的用户查询。可实施此类过滤器以避免不适当的内容被公开发布。在一些情况下,过滤器可经由私人通信信道将发布限制为针对特定的其他用户,可在发布之前编辑查询中的令人反感的内容,和/或可简单地阻止用户查询的公开发布。应用过滤器的特定方式将取决于查询处理系统的任何给定实施方式的需求。

例如,可经由消息收发接口202从被准许访问的其他用户163a-c中的一个或多个接收对用户查询的响应。来自其他用户的所接收的响应中的一个或多个随后可输出到原始请求用户103。具体地,在一些实施例中,来自其他用户的所接收的响应中的一个或多个可以例如经由客户端计算设备102和/或器具104中的任一个以其原始输入格式(例如,文本、音频、图像/视频等)而被转发以递送给用户103。

当众包模块212使用户查询能够供其他用户163a-c访问时,可链接、标记、穿线、监视或以某种方式跟踪对用户查询的该种访问,以便允许从其他用户163a-c所接收的响应与原始提交的用户查询正确地相关联。所采用的确切机构将取决于借其使得能够访问的平台而变化。

在一些实施例中,在输出到用户之前,对用户查询的响应可首先由众包模块212过滤、编辑和/或策划。例如,为了防止不适当的内容,可使用先前关于用户查询的过滤所述的相同或相似的过滤器来处理来自其他用户163a-c的响应。在一些实施例中,众包模块212可从一组所接收的响应中自动选择与用户查询的意图最匹配和/或从具有高声誉指标的其他用户接收的特定响应。

来自其他用户的响应的计时可能呈现某些挑战。例如,如果用户103询问与诸如烹饪的正在进行的活动有关的问题,则对所述问题的响应仅在特定时间范围内提供的情况下对该用户103才有用。为了解决此类挑战,查询处理系统120可采用不同的方法将来自其他用户的响应输出到从其接收查询的用户103。例如,在一些实施例中,来自其他用户的响应可在其他用户进入时由众包模块212收集并转发给用户103。在一些实施例中,众包模块212可在转发给用户103之前收集特定数量的响应和/或在特定时间段内收集响应。在一些实施例中,如果在特定量的时间内没有从其他用户接收响应,则即使不满足置信水平阈值,响应模块208也可输出与用户查询的意图最匹配的可用响应。本领域普通技术人员将认识到,可实施用于对众包响应进行计时的多种不同的方法以满足用户需求。

在一些实施例中,众包模块212可用指示其来源的信息标记从一个或多个其他用户163a-c所接收的响应。例如,来自另一个用户163a-c的响应的输出可包括响应来自另一个用户的指示和/或提交响应的特定其他用户的标识。在一些情况下,标识可包括特定其他用户的名称或用户名、其他用户的照片、特定其他用户通过其提交响应的平台的标识、特定其他用户的声誉级别的指示等。

如先前所提到的,关于包括在查询处理模块122中的模块所述的过程中的一个或多个可由一个或多个外部服务140处理。例如,在一些实施例中,如由图2中所描绘的众包模块208执行的上述过程可替代地由一个或多个外部服务140(诸如消息服务140或社交媒体服务144)来执行。例如,在一些实施例中,查询处理系统120可与诸如的外部社交媒体平台接合。

反馈处理模块214可提示用户作出关于所提供的响应的反馈,从用户接收反馈,并基于反馈采取一个或多个动作。接收反馈的目标可包括确定用户的查询是否已得到令人满意的回答,以及通知内部机构,以使得问题-回答过程的质量不断提高。

反馈处理模块214可提示用户作出关于直接由查询处理系统120提供的响应、由一个或多个其他用户163a-c提供的众包响应和/或由任何其他来源提供的响应的反馈。在一些实施例中,例如经由客户端计算设备102或器具104中的任一个,输入反馈的提示可包括在响应的递送中。例如,(例如,经由客户端计算设备102或器具104的显示器)输出到用户103以作为基于文本的消息的响应可包括用于输入关于输出响应的反馈的选项。

反馈可由用户103以多种不同方式输入。例如,选项可简单地包括提示,询问用户103所提供的响应是否回答了用户103的查询。使用某种类型的界面机构(例如,按钮、切换键等),用户103可对提示指示是或否。如果用户103指示输出响应没有回答他们的查询,则反馈处理模块214可进一步提示用户103作出进一步的反馈,例如关于响应为什么不回答查询的阐述、可输入以更好地定义查询的其他细节、响应的接近程度(例如,经由滑动标尺或另一些可变输入机构)的指示、或者可更好地阐明所提供的反馈的任何其他信息。

在一些情况下,用于输入反馈的选项可集成到查询处理系统120和用户103之间的正在进行的对话中。例如,在引起包括响应的基于音频或文本的消息的输出之后,查询处理系统120可引起诸如“是否回答了您的问题?”的后续基于音频或文本的消息的输出。

如所提及的,在一些情况下,由其他用户163a-c提供的多个响应可输出到用户103作为众包过程的一部分。在此类情况下,反馈处理模块214可提示用户选择最佳地回答用户查询的多个响应中的一个或多个特定响应。可通过上述界面机构中的任一个进行用户选择。

在一些实施例中,反馈处理模块214可基于所接收的反馈自动地采取某些动作以改善提供给用户103的服务的整体质量。例如,在一些实施例中,使用所接收的反馈,反馈处理模块214可训练机器学习模型中的一个或多个,所述机器学习模型用于解释消息,确定用户查询的意图,和/或基于用户查询达成响应。机器学习模型的训练可基于未回答查询的响应(根据反馈)以及确实回答查询的响应(根据反馈)两者。在一些实施例中,查询和/或响应(或与此相关联的数据)可被立即到机器学习模型中训练和/或临时供应给与机器学习模型相关联的机构。例如,查询/响应和/或相关联的反馈可供应给聊天机器人引擎的一个或多个处理程序。

在一些实施例中,训练内部机构以改善服务的整体质量的该过程可包括将输入查询和(内部生成的和/或众包的)一个或多个响应存储在诸如储存库120b的储存库中。需注意,这可包括以其原始格式存储响应和/或与响应相关联的元数据。在一些实施例中,查询/响应可与彼此以及其他相似查询(例如,先前所接收的查询)相关联,以使得当将来接收相似查询时,与相似查询相关联的响应可易于检索和输出。

在一些实施例中,外部服务接口216可允许在作为查询处理模块的一部分执行一个或多个外部服务(例如关于图1所述的外部服务140中的任一个)的任一个或多个过程之间进行通信。在一些实施例中,外部服务接口216可表示一个或多个应用程序接口(api),一个或多个外部服务通过所述一个或多个应用程序接口与查询处理系统120进行通信和/或集成。

示例问题和回答过程

图3a示出说明用于输出对用户问题的回答的示例过程300a的流程图,所述示例过程300a例如如由关于图1或图4a至图4c所述的设备或系统中的任一个或多个执行。为了说明的目的,可关于图1的查询处理系统120描述示例过程的某些方面,然而,如稍后所解释的,该系统的各方面在一些情况下可集成在与食物制备有关的系统(诸如图4a至图4c的fpg系统420)中。在一些实施例中,示例过程300a可以但不是必须通过由处理单元执行与查询处理模块122或422相关联的指令来进行。在该上下文中,“处理单元”可以是关于图1或图4a至图4c所述的设备或系统中的任一个或多个的一部分。

示例过程300a在302处开始。例如,过程300a可响应于特定应用的打开或显示在计算设备的显示器上的图标的选择而开始。作为响应,处理单元可引起启动画面或介绍画面的显示或呈现。

在304处,处理单元可从用户103接收消息。例如,处理单元可经由通信网络110接收经由用户操作的客户端计算设备102和/或器具104输入的消息。如先前所讨论的,可以包括基于文本、基于音频和/或基于图像/视频的任何格式来接收该消息。

在306处,处理单元可将所接收的消息解释为用户查询。例如,在一些实施例中,使用自然语言处理(如关于意图识别模块204所述),处理单元可将所接收的消息解析成字词串,随后对所述字词串进行分析(例如,使用机器学习模型)以确定所接收的消息的意图以及在一些情况下与所述意图相关联的一个或多个可变属性。在一些情况下,意图可指示所接收的消息是用户103的问题(即,用户查询)。如先前关于意图识别模块204所述,在一些实施例中,所接收的消息可在解析之前,例如在接收消息作为音频和/或图像/视频的情况下,从所接收的格式转换成所转换的格式。

在308处,处理单元可确定回答用户查询的响应是否可用。更具体地,处理单元可确定与高于阈值置信水平的用户查询的意图匹配的响应是否可用。如关于响应模块206所述,确定响应是否“可用”可包括确定与高于阈值置信水平的用户查询的意图匹配的多个存储的预先确定的响应中的至少一个是否可访问。这通常被称为基于检索的模型。然而,在其他实施例中,确定响应是否“可用”可包括确定是否可生成与高于阈值置信水平的用户查询的意图匹配的响应。换句话说,确定响应是否“可用”可包括确定是否可访问必要的数据来回答用户的查询,即使响应尚未生成。这通常被称为生成模型。在一些实施例中,可采用混合方法,其中基于用户查询的意图的各种可变属性,利用预生成的响应模板(例如,基于文本、基于音频、基于图像/视频等)来生成与用户查询的意图匹配的响应。同样,在一些实施例中,该处理的所有该过程可使用一个或多个机器学习模型来执行。

如果在步骤308处确定与高于阈值置信水平的用户查询的意图匹配的响应可用,则在步骤310处,处理单元可将响应输出到用户103。例如,如前所述,响应可经由客户端计算设备102和/或器具104中的任一个输出到用户103。例如,在一些实施例中,处理单元可使客户端计算设备102和/或器具104输出响应(例如,经由相关联的显示器、扬声器或某种其他输出机构)。在一些实施例中,这可包括检索和/或生成回答用户查询的消息(例如,文本、音频、图像/视频等),并经由网络110传递消息以经由客户端计算设备102和/或器具104递送给用户103。

图3b是描述示例过程300b的流程图,所述示例过程300b用于接收用户查询并确定与用户查询的意图匹配的回答是否可用,例如类似于关于图3a中的步骤304至308所述。为了说明的目的,再次考虑来自用户103的消息350,其叙述“我应该烤十二磅的火鸡多长时间?”。在步骤340处,解析所接收的消息的文本以标识一个或多个关键字。例如,如在元素352处所示,已解析所接收的消息以标识某些关键字或字词的关键字组合,诸如“多长时间”、“烤”、“十二磅”和“火鸡”。

接下来在步骤342处,意图以及一个或多个可变参数基于所标识的关键词来确定。在一些实施例中,输出意图和可变参数作为例如由元素354所表示的结构化数据项。

该过程在步骤344处继续使用知识库(例如,存储在储存库120b和/或外部数据源150中)中的其他数据来处理该结构化数据项352,以确定对用户查询的回答是否可用。具体地,在一些实施例中,这可涉及将由消息350得到的结构化数据354与存储的数据项进行比较以寻找匹配。例如,元素356表示数据项的示例列表,每个数据项表示具有相关联的可变参数组的意图以及与所述意图相关联的回答。这可表示一种用于存储问题/回答组合的技术,但不应解释为限制性的。例如,如元素356所示,问题“我要在375°f下烤五磅牛肉多长时间?”和相关联的回答“1小时”可表示为“烹饪时间(烤、牛肉、5磅、375°f)=1.0小时”,其中“烹饪时间”是具有一组可变参数的意图并且被设置为等于特定回答。需注意,在元素356处表示的数据可以是由查询处理系统120执行的历史问题和回答过程的结果,包括响应的众包和对此类响应的用户反馈。

考虑到一组这些数据项,过程300b可比较结构化数据352以确定高于某个置信水平匹配的数据项。例如,基于在步骤344处对元素354的结构化数据的处理,元素356中的所列出的数据项中的每一个与所列出的置信水平值(“cl”)相关联。如图所示,置信水平最高(0.8)的项目是“烹饪时间(烤、火鸡、10磅、375°f)=3.5小时”。换句话说,基于知识库中的数据,处理系统已标识指示在375°f下烤10磅火鸡需要3.5个小时的知识单元。需注意,考虑到某些可变参数的差异,这不是确切的回答。例如,可用的烹饪时间针对10磅火鸡而不是12磅火鸡,并且针对375°f的烤箱温度,而用户的问题未指定烤箱温度。然而,基于步骤344处的处理,可确定问题/回答组合与0.8置信水平匹配,如果高于设置的阈值,则所述问题/回答组合可以是足够接近的。

假设与高于阈值置信水平的用户查询的意图匹配的回答可用,过程300b在步骤346处继续访问与数据项相关联的预先确定的响应或者例如基于模板生成响应。在一个实施例中,预先确定的响应的文本可链接到表示问题/回答组合的数据项。例如,数据项“烹饪时间(烤、火鸡、10磅、375°f)=3.5小时”可与对应于数据项的问题和/或回答的文本链接起来。例如,上述数据项的所存储的响应的文本可理解为:“我建议您将火鸡在375°f下烹饪3小时30分钟。”如果存在精确匹配,则系统可简单地将其作为对用户103的响应输出。然而,也可生成专用于用户查询的意图的响应。例如,如在元素358处所示,模板响应可与具有“烹饪时间”意图的查询相关联。随后,与模板响应相关联的变量(诸如“烹饪方法”、“烹饪项目”、“温度”和“烹饪时间”)可填充有预先确定的值或推断值,以制定输出到用户103的响应,例如元素360处所示。需注意,在一些情况下,系统可推断某些变量的值,以定制对用户103查询的响应。例如,如元素360处所示,将烹饪时间的值从10磅火鸡的3.5小时外推到12磅火鸡的4小时。该外推值可例如基于对知识库的子集的统计分析、将权重与烹饪时间关联的既定算法或任何其他适当的方法。

返回到图3a,如果在步骤308处确定与高于阈值置信水平的用户查询的意图匹配的响应不可用,则在步骤312处,处理单元可提示用户103允许使用户查询能够供一个或多个其他用户163a-c访问。如前所述,提示用户103允许可包括:使客户端计算设备102和/或器具104输出提示消息(例如,经由相关联的显示器、扬声器或某种其他输出机构)。具体地,这可包括检索和/或生成提示消息(例如,文本、音频、图像/视频等),并经由网络110传递提示消息以经由客户端计算设备102和/或器具104递送给用户103。

如先前所提到的,某些场景可具有严格的计时要求。例如,如果用户正在烤牛排并且问“我要烤牛排多长时间”,则即使回答不完全准确,他们也可能需要尽快得到该回答。因此,如由图3a中所描绘的流程图中的箭头所示,在一些实施例中,即使可用响应与高于阈值置信水平的查询的意图不匹配,在步骤312处提示允许的情况下,可用响应(预先确定的或生成的)也可在步骤310处并行地(或至少在时间上接近)输出到用户103。即使该相对较高的置信水平不满足必要的置信阈值,输出消息也可例如对应于最高相对置信水平(即,相对于其他可用响应)。再次考虑用户查询,“我要烤牛排多长时间。”如果与高于阈值置信水平的意图匹配的响应不可用,则处理单元可在步骤310处将临时响应(即,具有最高相对置信水平)输出到用户103,而同时提示用户103使查询能够供其他用户163a-c访问。例如,处理单元可使客户端计算设备输出以下消息:“对不起,我可能需要一些信息,但是您可以在每一侧尝试3分钟。同时,您想要将该问题提交到社区吗?”

在步骤312处提示用户103允许之后,处理单元可接收给予允许或拒绝允许的指示(例如,以消息的形式)。如果用户103拒绝允许使用户查询能够供其他用户163a-c访问,则可采用几个不同的路径。在一些实施例中,如果用户103拒绝允许,则过程300a可简单地在步骤324处结束。可替代地,在一些实施例中,如果用户103拒绝允许,则处理单元可在步骤326处提示用户103输入新消息,例如改述他们的问题。一旦在步骤304处接收来自用户103的新消息,该路径就将实质上重启过程300a。可替换地,如果用户103拒绝允许,则处理单元可在步骤310处使可用响应输出到用户103,即使该可用响应与高于阈值置信水平的用户查询的意图不匹配。

如果用户103批准允许使用户查询能够供其他用户163a-c访问,则在步骤314处,处理单元将可使用户查询能够供那些其他用户163a-c访问。如前所述,“使能够访问”可指:例如,经由任一个或多个通信信道将从用户103所接收的包括用户查询的消息(或与消息相对应的信息)递送给其他用户163a-c。例如,使使用查询能够供访问可包括:在具有一个或多个其他用户的聊天会话室(例如messenger)中发布用户查询、在在线论坛(例如stackoverflow)中发布查询、经由一个或多个社交媒体平台(例如facebook、twitter等)发布用户查询、和/或经由一个或多个私人通信信道(例如,电子邮件、sms、即时通讯、电话等)将用户查询直接传递到与一个或多个其他用户163a-c相关联的客户端计算设备162a-c。相对于图2的众包模块212更详细地描述可在该步骤处执行的附加过程,例如,提示用户103借其使得能够访问的特定平台。

在步骤316处,处理单元可从其他用户163a-c接收对用户查询的一个或多个响应。例如,处理单元可经由通信网络110接收经由与一个或多个其他用户163a-c相关联的一个或多个客户端计算设备162a-c输入的消息。如先前所讨论的,可以包括文本、音频和/或图像/视频的任何格式来接收这些消息。

在从一个或多个其他用户163a-c接收响应之后,处理单元可在步骤317处将所接收的一个或多个响应输出到用户103。例如,如前所述,响应可经由客户端计算设备102和/或器具104中的任一个输出到用户103。在一些实施例中,处理单元可使客户端计算设备102和/或器具104输出一个或多个响应(例如,经由相关联的显示器、扬声器或某种其他输出机构)。在一些实施例中,这可包括:转换或以其他方式修改所接收的响应中的一个或多个,以及经由网络110将一个或多个所接收的响应作为消息传递以经由客户端计算设备102和/或器具104递送给用户103。相对于图2的众包模块212更详细地描述可在该步骤处执行的附加过程,例如从所接收的一个或多个响应中过滤或选择。

在一些实施例中,输出到用户103的响应可包括或跟随着向用户103提示输入关于输出的一个或多个响应的反馈。这可适用于由查询处理系统120检索和/或生成的响应和由其他用户163a-c输入的众包响应两者。如先前所讨论的,例如经由客户端计算设备102或器具104中的任一个,输入反馈的提示可包括在响应的递送中。例如,作为基于文本的消息(例如,经由客户端计算设备102或器具104的显示器)输出到用户103的响应可包括用于输入关于输出响应的反馈的选项。

响应于提示,在步骤318处,处理单元可从用户103接收关于响应的输入反馈。所接收的反馈可基于在客户端计算设备102和/或器具104中的任一个处的输入,并且可经由网络110接收。如先前所讨论的,反馈可由用户103以多种不同方式输入。例如,选项可简单地包括提示,询问用户103所提供的响应是否回答了用户103的查询。使用某种类型的界面机构(例如,按钮、切换键等),用户103可对提示指示是或否。相对于图2的反馈处理模块214描述关于可以如何请求和接收反馈的附加细节。

响应于从用户103接收反馈,处理单元可基于反馈自动地执行某些动作,例如以改善提供给用户103的服务的整体质量。例如,在一些实施例中,处理单元可任选地在步骤320处基于反馈来训练机器学习模块。机器学习模型的训练可基于未回答查询的响应(根据反馈)以及确实回答查询的响应(根据反馈)两者。此外,在一些实施例中,处理单元可在步骤322处基于反馈存储与用户查询和/或所检索、所生成和/或所接收的响应相对应的数据。例如,如相对于图2的反馈处理模块214所述,

在一些实施例中,训练内部机构以改善服务的整体质量的该过程可包括将与输入查询和一个或多个响应(内部生成的和/或众包的)相对应的数据存储在诸如储存库120b的储存库中。需注意,这可包括以其原始格式存储响应和/或与响应相关联的元数据。在一些实施例中,查询/响应可与彼此以及其他相似查询(例如,先前所接收的查询)相关联,以使得当将来接收相似查询时,与相似查询相关联的响应可易于检索和输出。

如果处理单元从用户103接收指示输出响应已经令人满意地回答了他们的查询的反馈,则在步骤324处,过程300a可结束。

然而,如果处理单元从用户103接收指示输出响应未令人满意地回答他们的查询的反馈,则在步骤326处,处理单元可提示用户输入新消息,例如改述其原始查询或提供附加信息。如果响应于该新提示,处理单元从用户接收新消息,则过程300a可重新开始以提供对新消息的响应。

图3c是描述示例过程300c的流程图,所述示例过程300c用于存储与从另一个用户接收的响应相关联的数据,例如类似于关于图3a中的步骤320和322所述。为了说明的目的,再次考虑来自用户103的关于图3b所述的消息350,其叙述“我应该烤十二磅的火鸡多长时间?”。同样,假设与图3b中所述的场景不同,在这里,系统已经确定与高于阈值置信水平的用户查询的意图匹配的响应不可用,并且已经使用户查询能够供其他用户163a-c访问。系统随后可从其他用户163a-c中的一个接收响应消息390。在这里,来自其他用户的响应390理解为:“我可能会在375°f下用4小时烤12磅的火鸡。”在步骤380处,从用户接收指示来自其他用户的该接收的响应回答了问题的反馈。因此,在步骤382处,解析所接收的消息的文本以标识一个或多个关键字。例如,如元素392处所示,已解析所接收的响应以标识某些关键字或字词的组合,诸如“烤”、“12磅”、“火鸡”和“4小时”。在步骤384处,与来自用户103的原始问题和从其他用户163a-c接收的响应相关联的数据用于训练一个或多个机器学习模型和/或被存储以供将来使用。例如,元素394示出可表示特定问题/回答组合的结构化数据的示例集。类似地,元素396示出表示特定问题/回答组合的数据项与知识库中的其他数据项的集成。需注意,与图3b中的元素356一样,为了说明的目的示例性地提供元素396中的数据项的表示。取决于给定实施方式的细节,所存储的数据可利用任何适当的数据结构。

上面关于图3a至图3c所述的示例过程3是为了说明的目的而提供的,并且不应被解释为限制性的。在其他实施例中,过程可包括比如图3a至图3c所示的更少或更多的步骤,可包括与如图3a至图3c所示的不同的步骤和/或可不同于如图3a至图3c所示地对步骤进行排序。

与食物制备指导系统集成

在一些实施例中,类似于关于图1所述的查询处理系统120的查询处理系统的各方面可与其他计算平台集成或以其他方式与其他计算平台相关联。例如,用于处理用户查询的先前所述的技术可应用于被配置成提供定制的食物制备指令、指导和/或控制的计算系统。图4a示出用于提供定制的食物制备指令、指导和/或控制的示例网络环境400,其可包括此类特征。如图4a所示,网络环境400可包括经由一个或多个通信信道,例如通信网络110(例如,lan、wan、因特网、万维网、蜂窝网络、nfc)可通信地联接在一起的一个或多个客户端计算设备102、烹饪器具404以及食物制备指导(“fpg”)系统420。

类似于关于图1所述的查询处理系统120,fpg系统420可采用具有相关联的非暂时性处理器可读存储介质或数据存储装置420b-c的一个或多个服务器计算机系统420a的形式。值得注意的是,图4a中所描绘的fpg系统420包括查询处理模块422(例如,类似于关于图1至图2所述的查询处理模块122)以及食物制备指导模块424。

尽管在图4a中描绘为服务器计算系统420a的一部分,但是查询处理模块422和食物制备指导模块424可包括用于执行指令以进行本文所述的功能的硬件和/或软件的任何组合。具体地,查询处理模块422可处理用于对用户查询作出响应的前述过程中的一个或多个方面,并且食物制备指导模块424可处理用于使用烹饪器具104来控制食物的烹饪的过程(下面更详细地描述)。模块422和424可实现为在机器上、在固件中、在硬件中、在其组合中或在任何可适用的已知或方便的设备或系统中的计算机可读介质或计算机可读存储介质(例如,服务器计算机系统420a内部的存储介质或服务器420a外部的存储介质,诸如储存库420b)当中实例化的软件。在本说明书中所描述的这种模块和其他模块、子模块或引擎旨在包括能够进行在本说明书中含蓄地、明确地或内在地描述的功能中的至少一些和/或进行等效功能的任何机器、制造品或物质组成。此外,虽然模块422和424在图4a中被描绘为两个分开的模块,但是在一些实施例中,它们相关联的功能可由比如图4a所示的更多或更少的模块进行或与所述更多或更少的模块结合进行。

虽然图示为单个服务器计算机系统420a和相关联的非暂时性存储介质420b-c,但是许多实施方式可采用两个或更多个服务器计算机系统420a和/或非暂时性相关联的处理器或计算机可读存储介质420b-c。在一些实施方式或实例中,非暂时性处理器或计算机可读介质420b-c可包括存储以下数据中的一个或多个的数据库或其他数据结构:图像数据、视频数据、音频数据、烹饪模拟模型、查找表、食物制备算法、客户标识符、客户账户标识符、客户身份信息、金融账户信息(例如,信用和/或借记账户号码、有效期、安全码)、客户烹饪历史记录、在烹饪过程中采集的数据和/或其他数据或统计信息。

为了清楚起见,在图4a中未描绘在其中可实现类似于查询处理系统120的查询处理系统的计算环境的其他方面。然而,应当理解,图4a中所描绘的fpg系统420可在包括关于图1所述的网络环境100的部件(即一个或多个外部服务140、外部数据源150和众包者160)中的一个或多个的计算环境中实现。

在所示的实施方式中,烹饪器具404采用真空低温炊具的形式,其包括器皿或容器412和联接到例如容器的边缘的热浸式循环器414。图4a中所描绘的烹饪器具404可对应于图1中所描绘的器具104。因此,对器具104的任何描述将可类似地适用于烹饪器具404。在一些实施方式中,烹饪器具404可以是其他类型的烹饪器具,诸如烤箱、电磁炉等。容器412容纳一定量(例如10升)的液体416(例如水),所述液体416可使用热浸式循环器414进行加热和循环。除了液体之外,可替代地或附加地使用其他流体(例如,空气、油)。此外,在一些实施方式中,容器412可以是绝缘的和/或可具有可选择性移除的盖或盖子417。在所示的示例中,食品418放置在浸入液浴(liquidbath)416中的真空密封的塑料袋或小袋415内。在一些实施方式中,食品418可放置在可重新密封的塑料袋或罐内。食品418可以是多种不同类型的食品中的任一种,诸如肉、蛋或蔬菜。一些食品,诸如蛋,可直接放置在液浴416中,而无需使用塑料袋415。此外,在烹饪器具利用非液体流体(例如空气)的情况下,食品可放置在器皿或烹饪室内,而无需使用将食品与流体分开的容器。

热浸式循环器414可以是电动设备,其在精确且稳定的温度下循环并加热液浴416。热浸式循环器414可包括用于使液体在液浴416中运动的循环泵672(图9)以及浸入液体中以加热液体的加热元件674(图9)。热浸式循环器114还可包括探针或传感器678(图9),例如,温度传感器和控制电路,所述温度传感器用于感测液浴416的温度,所述控制电路将由温度探针测量的温度与所期望的温度值进行比较并根据需要向加热元件供电以控制液浴的温度。烹饪器具404的各种部件在图9中示出。控制电路可控制液浴416的温度,以使得可根据特定的烹饪指令或所确定的烹饪程序来烹饪食品418。例如,在食品418是一英寸厚的肋眼牛排的情况下,可对控制电路进行编程以将液浴416加热至56℃的温度,而可对控制电路进行编程以将液浴加热至90℃的温度以烹饪根用蔬菜。

热浸式循环器414可包括用户界面413,所述用户界面413包括一个或多个输入端(例如,按钮、触摸屏、麦克风)和一个或多个输出端(例如,屏幕、led、扬声器)。用户可与用户界面413进行交互以选择一种或多种烹饪程序,选择一种或多种温度设置或选择一种或多种烹饪持续时间。如下所讨论,在一些实施方式中,用户界面413可向用户提供与烹饪过程的当前状态或估计的未来状态有关的信息。在一些实施方式中,热浸式循环器414可以不包括用户界面,并且用户可与集成到烹饪器具404中的用户界面或另一个设备(例如,可通信地联接到烹饪器具404和/或循环器414的计算设备102)的界面进行交互。

在一些实施方式中,控制电路可利用比例积分微分(“pid”)控制方案来根据所确定的烹饪程序或过程精确地控制液浴416的温度。pid控制器将误差值计算为所测得的温度和所期望的设定点之间的差。pid控制器试图通过使用可控加热元件674(图9)来调节温度以最小化误差。通常,pid控制器算法涉及三个单独的常数参数(例如,“p”、“i”、“d”)。这些参数可按照时间来解释:p取决于当前温度误差,i取决于过去温度误差的累积,并且d是基于当前变化率对未来温度误差的估计。这三个动作的加权总和可用于通过控制供应给可控加热元件674(图9)的功率来调节烹饪过程的温度控制。在一些实施方式中,可使用其他控制算法,诸如pi控制、pd控制、p控制、i控制或其他线性或非线性控制方案。

在一些实施方式中,用户可利用客户端计算设备102与烹饪器具404进行交互。例如,客户端计算设备102可执行程序或“app”,所述程序或“app”向烹饪器具104提供指令或数据中的至少一个,并且经由合适的通信接口(例如,)从烹饪器具接收信息。

另外,用户可使用客户端计算设备102来体验(例如,观看、收听)所制备的食品的一个或多个音频/图像/视频(“媒体”)描绘。一个或多个媒体描绘可以最终特性(诸如质地、稠度或熟度)的各种等级或变量呈现所制备食品的音频或视觉描绘。媒体描绘允许用户基于各种不同等级的食品的视觉图像、图片或视频表示简单地为烹饪食品的一个或多个特性(诸如蛋黄的质地或稠度、蛋白的质地或稠度或牛排的质地或稠度)选择优选的等级。

用户可利用客户端计算设备102经由诸如通信网络110的一个或多个通信信道将一个或多个输入参数(诸如结束偏好或开始条件)发送到食物制备指南(fpg)系统420。作为响应,fpg系统420可通过通信网络110将输出的食物制备参数或输出的烹饪参数(例如,时间、温度、压力、速度等)发送到烹饪器具404,以自主地控制烹饪器具。fpg系统420可经由通信网络110直接与烹饪器具404进行通信,或者可经由客户端计算设备102间接与烹饪器具进行通信。在一些实施方式中,用户可在客户端计算设备102或烹饪器具404的显示器上查看输出的烹饪参数或程序。随后,烹饪器具404可根据所接收的食物制备参数或程序来制备食品418。尽管在本文中使用了术语“烹饪”,但是应当理解,本实施方式也可应用于未必需要加热的食物制备,诸如制备菜泥、冰淇淋、奶昔、面团或其他食品。

在烹饪器具404实施真空低温烹饪(sousvidecooking)的实施方式中,烹饪器具可测量液浴416的温度并测量或估计传递至液体的热量。对于烹饪器具404是另一种类型的实施方式,烹饪器具可使用合适的传感器来测量食品418的表面温度,并测量或估计被食品吸收的热量。在一些实施方式中,烹饪器具404测量食品418的表面温度并测量食品的一个或多个内部温度。

烹饪器具404以固定或可变的时间间隔收集并存储上述数据中的一些或所有。该数据集合形成时间序列数据的集合,可对所述时间序列数据的集合进行处理以提供对烹饪程序的更新和/或通过用户界面(诸如客户端计算设备102的显示器或烹饪器具404的显示器)提供可呈现给用户的烹饪投影。

如上所讨论的,客户端计算设备102可操作以经由通信网络110与fpg系统420和烹饪器具404进行通信。客户端计算设备102可允许用户经由用户界面为用户正在烹饪的食品418选择最终结果。例如,用户可选择在客户端计算设备102的用户界面的显示器上显示的与所期望的肉的熟度相对应的图像。作为另一个示例,用户可选择描绘蛋奶糕的所期望的质地的视频。

客户端计算设备102还可允许用户提供指示用户计划准备哪些食品的信息。例如,用户可提供或选择食品的食谱。由用户提供的细节的数量可改变用烹饪器具404制备食品的方式。例如,简单地将食品指示为牛排可生成不同的烹饪程序,而不是指示食品是重量为1.3公斤的四块优质的、两厘米厚的、上等脊肉牛排。

作为示例,用户可输入与待制备的食品有关的以下任一种或全部:肉、鱼或家禽的切块的种类和/或肌肉;塑料袋中的一种或多种成分、食品的初始温度;食品的体积或质量;食品的表面积;或未加工食品的制备方式(例如,用盐水腌制、风干、腌制、熏制、混合、研磨、模制)。用户还可输入食品的形状,诸如其特征性的长度或宽度,或食品的描述(例如,“板状的”、“大鸡蛋”)。在一些实施方式中,用户可输入或选择可由客户端计算设备102、fpg系统420和/或烹饪器具404使用以生成用于制备食品418的烹饪程序的食品的一个或多个照片或视频。

在一些实施方式中,用户可选择提供可由客户端计算设备102、fpg系统420和/或烹饪器具404使用以生成用于制备食品418的烹饪程序的信息的食谱。例如,用户可在网站上选择食谱,在选择食谱时所述网站自动地向计算设备102、fpg系统420和/或烹饪器具404提供关于待制备的食品的细节。在一些实施方式中,用户可能能够修改所选择的食谱以适合用户的特定偏好。

烹饪器具404可将各种数据或信息传递到客户端计算设备102和/或到fpg系统420。例如,烹饪器具404可不时地将所收集的时间序列测量数据的子集或全部传递到客户端计算设备102或到fpg系统420。在一些实施方式中,烹饪器具104可仅传递所收集的时间序列数据的子集,其包括最近的测量值或自先前成功地将测量数据传递到客户端计算设备102以来获得的测量值。

烹饪器具404还可传递关于烹饪器具的当前状态和/或烹饪器具的一个或多个先前状态的信息。此类信息可包括烹饪器具404是通电的还是处于待机模式、当前和先前的设定点温度、或者烹饪器具的任何手动调节的参数,诸如手动可选择的温度设定点。烹饪器具404还可传递关于非标准操作条件的信息,诸如电源中断或液浴416的低液位。烹饪器具404还可传递系统参数,诸如控制参数设置、固件版本、存储器使用率、采样率等。烹饪器具404还可将从fpg系统420接收的信息或数据传递到客户端计算设备102,反之亦然。

客户端计算设备102可将各种数据或信息传递到烹饪器具404和/或fpg系统420。例如,客户端计算设备102可将烹饪程序传递到烹饪器具404,或者将新固件传递到烹饪器具。

烹饪程序可包括例如程序类型、程序开始时间(例如,立即或在确定的未来时间)以及食谱或菜肴名称(例如,鸡蛋、牛排)。烹饪程序还可指定真空低温炊具的液浴416的设定点温度(例如,60℃、75℃)。烹饪程序还可指定可在开始事件之后开始的烹饪持续时间。开始事件可以是烹饪程序由烹饪器具404接收到的时间,或者是液浴416已加热至确定温度(例如,设定点温度)的时间。开始事件还可以是烹饪器具404感测到食品418已放入其中时,或者是用户指示食品已放入烹饪器具404中时。开始事件还可发生在确定的时间或在一个或多个事件之后的确定的延迟之后发生。

烹饪程序还可指示在将食品418放入液浴之前是否应预先加热液浴416。例如,烹饪程序可指定在食品放置在液浴中之前,液浴416应加热至至少40℃。作为另一个示例,烹饪程序可指示食品418应放置在液浴416中而不预先加热液浴。

在一些实施方式中,烹饪程序可包括用于实施加速烹饪程序的参数。例如,加速烹饪程序可使液浴416在一段时间内被加热至高于设定点温度的第一温度,并且随后液浴的温度在剩余的烹饪时间内可降低至等于或接近设定点温度的第二温度。如下面更多讨论的,烹饪程序可利用食品的特性(例如,质量)或一个或多个测量值(例如,温度、功率)来确定需要多少额外的功率来加热食品418,并使用全功率输送,直到已输送完该功率量。

烹饪程序还可指示烹饪器具404是否应使用时间序列数据来确定或预测指示烹饪过程的完成的食品418的接近平衡条件。

在一些实施方式中,烹饪程序可指示食品418应被保持在设定点温度或安全保持温度的时间量。例如,烹饪程序可指示在已将食品在较高温度下保持确定的时间段之后将设定点温度降低至较低温度。如果将食品在相对较高温度下保持较长持续时间,则该特征可最小化或减少食品中不需要的质地变化。

烹饪程序还可包括与烹饪程序应何时开始有关的指示。例如,烹饪程序可以等待命令,等待固定的时间量,等待直到烹饪器具404被预先加热,等待直到食品已放入烹饪器具中,等待直到(一种或多种)食品从烹饪器具中取出等。

fpg系统420可将各种信息或数据传递到烹饪器具404和/或客户端计算设备102。例如,fpg系统420可将烹饪程序传递到烹饪器具404以控制其操作。fpg系统420还可将烹饪程序将何时完成的确定或估计传递到客户端计算设备102。例如,fpg系统420可在客户端计算设备102上提供通知,所述通知指示食品的核心在一定时间(例如,103分钟,下午6点)将低于设定点温度1℃,因此用户可计划在那时从烹饪器具404中取出食品。

fpg系统420还可基于用户当前或先前烹饪的食品向客户端计算设备102的用户提供建议。例如,fpg系统420可基于从用户的过去行为收集的反馈来推荐某些食谱或食品的特定熟度。这种反馈可通过用户的直接查询来获得,或者可基于由用户执行的选择或动作(例如,选择特定熟度、在某类食谱中选择食谱)来间接获得。

在一些实施方式中,可在时间序列数据用于其他算法或方法中之前过滤时间序列数据。例如,可使用一个或多个低通滤波器、总变化最小化方法、移动平均、迭代移动平均、使用各种范数(例如,l1或l2)进行最小化的多项式或有理指数拟合等,从时间序列数据中减少或去除噪声。在一些实施方式中,可去除局部中断,诸如尖峰或丢失的数据点。在一些实施方式中,可变时间序列数据可通过内插被改变为固定时间序列数据,或者固定时间序列数据可被改变为可变时间序列数据。

fpg系统420可使用时间序列数据和烹饪器具404的状态来测量或确定一个或多个液浴特性、食品特性和/或液浴和食品的相互作用特性。液浴特性可包括但不限于体积、质量、初始温度、通过容器传导产生的来自环境的热损失或收益、辐射引起的来自环境的热损失或收益、蒸发引起的环境热损失、或蒸发引起的质量和体积变化。

食物特征可包括但不限于表面积、质量、体积、形状、初始温度、状态(例如,部分冷冻、完全冷冻、泥泞、融化)。

液浴和食品的相互作用特性可包括液浴加热食品的效率,如通过液体与食品之间的热传递系数所测量的。液浴和食品的相互作用特性还可包括一块或多块食品何时放入液浴中,这可能发生在液体开始加热之前、液体加热过程中或液体已加热至确定温度之后。

使用时间序列数据和上面所讨论的特征中的一个或多个,fpg系统420可执行各种功能。例如,fpg系统420可确定或估计液浴416达到设定点温度将花费多长时间。作为另一个示例,fpg系统420可确定或估计食品418将何时加热至特定温度。在将食品418加热至特定温度之后,fpg系统420可将液浴418保持在该温度或将温度降低至安全的保持温度。

fpg系统420还可生成快速或加速的烹饪程序。另外,如果存在故障,诸如电源中断,则fpg系统420可确定食物是否仍然可以安全食用。例如,fpg系统420可确定食品在促进食源性病原体生长的范围内持续多长时间且处于什么温度。此外,在识别出的电源中断之后,fpg系统420可确定是否需要对烹饪程序进行任何修改,并使此类修改得以实施。

图4b示出另一个示例网络环境400b,其示出查询处理技术与用于自动食物制备和指导的系统的集成。如图4b所示,并且类似于图4a中所描绘的环境400a,示例环境400b包括客户端设备102以及与用户103相关联的烹饪器具404。

在图4b中所描绘的环境400b中,客户端设备102包括一个或多个客户端应用,诸如查询处理客户端422a、食物制备指导客户端424a和其他应用490a。如先前所讨论的,查询处理系统和/或fpg系统可根据客户端-服务器模型来实现。在图4b中所描绘的此上下文中,查询处理客户端422a可表示与fpg系统420相关联的查询处理模块422的客户端部分。类似地,食物制备指南客户端424a可表示fpg系统420的食物制备指导模块424的客户端部分。在两种情况下,客户端部分都可表示瘦客户端,所述瘦客户端仅提供有限的功能以经由网络110与fpg系统420连接。在一些实施例中,客户端部分可具有更实质的处理组件。例如,查询处理客户端422a可包括图2中所描绘的模块122的子模块中的任一个或多个。作为说明性示例,查询处理客户端422a可包括消息收发接口和意图识别模块,所述意图识别模块用于解析从用户103接收的消息,确定意图,并生成指示消息的所确定的意图的结构化数据,所述结构化数据随后被传递到fpg系统420的服务器端组件用于附加处理。

在示例环境400b中,客户端设备102例如经由本地无线通信协议(例如,蓝牙)与烹饪器具404进行无线通信。例如,如图所示,客户端设备120和烹饪器具404之间的通信可(分别)经由fpg客户端424a和424b。换句话说,在该示例中,烹饪器具可能没有与食物制备指导模块424的服务器端组件的任何直接通信链接。换句话说,链接的客户端设备102可用作相应组件之间的通信桥。

在环境400b中还描绘了与设备162a-c相关联的另一个用户163a。回顾一下,其他用户163a可能是许多众包者160中的一个。如图4b所示,在一些实施例中,用户163a的客户端设备162a可包括查询处理客户端422c。例如,在一些实施例中,fpg系统420可管理作为对来自其他用户的查询的响应的来源的有组织的用户社区。为了成为众包者社区的一部分,用户163a可在其设备162a处安装查询处理系统的客户端组件422c(例如,app)。应当注意,并非在所有实施例中都需要这样做。如先前所讨论的,众包者160可表示连接到网络的任何用户,无论所述用户是与fpg系统420关联还是完全不关联。例如,与其他用户163a的通信可经由网络浏览器492c或任何其他客户端应用490c(例如,专门化消息收发app、社交媒体app等)来完成。

图4c示出另一个示例网络环境400c,其示出查询处理技术与用于自动食物制备和指导的系统的集成。图4c中所描绘的示例环境400c类似于图4b中所描绘的环境400b,不同的是其不包括客户端设备102。如图所示,在示例环境400c中,烹饪器具404包括查询处理客户端422b、食物制备指导客户端424b和其他应用490b。如相对于图4b中的查询处理客户端422a和食物制备指导客户端424a所述,烹饪器具404处的查询处理客户端422b和食物制备指导客户端424b可(分别)表示查询处理模块422和食物制备指导模块424的客户端组件。

在图4c中所描绘的示例环境400c中,用户103可直接与烹饪器具404交互,例如提出问题,接收对问题的响应以及输入关于所提供的响应的反馈。例如,用户103可通过语音输入经由烹饪器具404处的麦克风接收的消息。响应(无论是来自fpg系统420还是来自另一个用户163a)可类似地将音频消息输出到用户103。

使用烹饪器具进行受控食物制备的示例过程

下面描述的是操作基于处理器的设备以控制食物制备指导(fpg)系统(诸如图4a至图4c的fpg系统420)中食品的制备的示例过程。在一些实施例中,示例过程可通过执行与食物制备指导模块424相关联的指令来进行。为了说明的目的,在真空低温烹饪过程的情况下讨论示例过程,但是所述方法不限于这种烹饪过程。例如,可使用烤箱或其他烹饪器具来实施示例过程。如上所述,真空低温烹饪法是在液浴中或在温度受控的蒸汽环境中、在比正常烹饪时间长的时间内、在远低于常规烹饪通常所使用的温度的精确调节的温度下烹饪食物的方法。在一些情况下,食物被密封(例如,液密、气密)在塑料袋中。真空低温烹饪技术通常对肉采用约55℃至80℃的温度并且对蔬菜采用更高的温度。目的是均匀地烹饪物品,从而确保内部被适当地烹饪而不会过度烹饪外部,并保持水分。

值得注意的是,本文所述的方法通过从烹饪器具获得一个或多个测量值并基于所获得的测量值来做出决定而提供对烹饪程序的更新和/或关于烹饪过程的估计。

在一些实施例中,示例过程可响应于特定应用的打开或显示在计算设备的显示器上的图标的选择而开始。作为响应,基于处理器的设备可引起开始画面或介绍画面的显示或呈现。

接下来,基于处理器的设备可接收制备食品的请求。例如,基于处理器的设备可通过通信网络从用户操作的客户端计算设备接收制备牛排的请求。用户可经由客户端计算设备和/或经由烹饪器具选择食谱或者可手动地将指令输入到用户界面中。

接下来,基于处理器的设备可例如经由计算设备的显示器来提供对所选择的食品的结束条件、偏好或特性的提示。例如,基于处理器的设备可显示或促使显示蛋白质地提示屏幕,所述屏幕允许用户查看并滚动浏览具有不同质地(例如稀的、半生熟的、坚硬的)的蛋白图像。可采用各种用户界面元素,包括通常与允许多指输入、轻敲和滑动的触摸屏界面相关联的那些。在一些实施方式中,除一组视频之外或代替一组视频,一组至少两个图形提示可包括一组静止图像。在一些实施方式中,每个视频或图像还可包括音频,所述音频可允许用户观察关于烹饪的食品的特性(例如,松脆度、碎脆性等)的附加信息。在一些实施例中,提供了一组没有视觉提示的音频片段。

基于处理器的设备可接收指示食品的结束条件或偏好的选择。例如,基于处理器的设备可经由触摸屏显示器检测滑动条的输入或选择。

基于处理器的设备至少部分地基于指示待制备的食品和/或结束偏好的所接收的选择来确定烹饪程序。例如,基于处理器的设备可利用所选择的食品和结束偏好作为输入来执行一个或多个模拟,以确定用于烹饪食品的烹饪时间和烹饪温度,从而实现所选择的结束偏好(例如,质地、稠度、熟度)。基于处理器的设备可使用任何合适的方法(诸如一个或多个模拟、建模、一个或多个查找表、一个或多个分析或数字可解方程式等)来确定烹饪程序的一个或多个常规食物制备参数。

基于处理器的设备将所生成或确定的烹饪程序发送到烹饪器具。例如,图4a至图4c的fpg系统420可直接或经由客户端计算设备102、通过通信网络110将所确定的烹饪程序发送到烹饪器具404。

烹饪器具执行烹饪程序。例如,烹饪程序可向烹饪器具提供指令以将液浴加热至60℃,提醒用户在液浴达到60℃时将食品放入液浴中并将液浴的温度保持三个小时。

烹饪器具获得测量值,并将这些测量值作为时间序列存储在数据存储装置中。如上所讨论的,这些测量值可通过直接或间接测量温度、功率、流体流量、是否存在食品、液位、功率中断等中的一个或多个的传感器(参见图9)获得。该时间序列是在不同时间获得的测量值的记录。时间序列数据可按时间顺序或反向时间顺序排列。测量值之间的时间段可以是恒定的或可变的。

接下来,基于处理器的设备可接收由烹饪器具获得的测量值中的一些或全部。例如,图4a至图4c的fpg系统420可直接或经由客户端计算设备102、通过通信网络110从烹饪器具404获得测量值中的一些或全部。在一些实施方式中,烹饪器具可传递时间序列数据的子集,其包括最近的测量值或自先前成功地将测量数据传递到客户端计算设备或到fpg系统以来获得的测量值。

除了接收时间序列数据之外,基于处理器的设备还可接收元数据,诸如烹饪器具的类型、用户信息或食谱信息。如果数据的传递包括fpg系统420确定或更新烹饪程序所需的所有信息,则所述传递可被称为“系统状态”传递。如果数据的传递不包括fpg系统420所需的所有信息,但是当与先前发送的信息组合在一起时就足够了,则所述传递可被称为“系统状态更新”传递。

基于处理器的设备可基于烹饪器具的系统状态来更新烹饪程序和/或生成关于烹饪过程的一个或多个投影(projection)。如上所讨论的,系统状态可以是几个系统状态更新的合成。更新的烹饪程序可被发送到烹饪器具以由其执行。例如,更新的烹饪程序可改变对烹饪器具的一个或多个操作参数(例如,温度、时间、速度、湿度、压力)的控制。可经由合适的界面,诸如计算设备的用户界面和/或烹饪器具的用户界面,将一个或多个生成的投影提供给用户。

例如,基于系统状态,fpg系统420可确定烹饪器具的液浴达到设定点温度需要多长时间。作为另一个示例,fpg系统420可确定食品将何时加热至特定温度,并且在加热至特定温度之后,可将液浴保持在该温度或可将温度降低至安全的保持温度。

fpg系统420还可确定食品已何时加热至液浴的温度与食品的初始温度之间的差的特定分数。在将食品加热至该温度之后,液浴可保持在该温度或降低至安全的保持温度。

如上所讨论的,基于处理器的设备可在计算设备或烹饪器具的显示器上显示或促使显示所确定的更精确的烹饪过程投影。随后,用户可将所提供的投影用于计划或其他目的。

在一些实施例中,用于受控烹饪的示例过程与其他方法或过程同时运行,例如作为关于图3a所述的问题和回答过程300a的一部分或与所述问题和回答过程300a并行,或者作为多线程处理器系统上的多个线程中的一个。

在一些实施方式中,fpg系统420可利用反馈来针对单个用户、组、一个或多个单独用户的朋友、地理区域、或所有用户预先调整一个或多个参数(例如,食物制备参数、提示、推荐)。例如,在一些实施方式中,fpg系统420从用户收集评级,并且评级可用于针对一个或多个用户调整一个或多个参数或推荐。作为另一个示例,fpg系统420可手动地或自动地从用户或从第三方实体(例如,社交网络、零售网站等)收集信息,所述信息可用于针对一个或多个用户调整系统的一个或多个参数、推荐或其他特征。

如上所述,烹饪器具、计算设备和/或fpg系统420可利用各种输入来生成烹饪程序、烹饪程序的更新和/或关于一个或多个烹饪过程的投影。

一种这样的输入是由烹饪器具输送的功率。功率可直接或间接测量,或者可使用一个或多个参数得出。例如,可使用传感器(参见图9)测量实际功率,所述传感器感测由烹饪器具消耗或由烹饪器具供应给加热元件的电压和电流中的一个或两个。

可由fpg系统420使用的另一个输入是温度。例如,烹饪器具可配备有定位在循环泵或搅拌系统的入口处的温度传感器。温度传感器可以是任何合适的传感器,诸如热电偶、热敏电阻、铂电阻温度检测器(rtd)、正温度系数(ptc)加热器/元件或黑体/红外发射检测器。

可由fpg系统420使用的另一个输入是流体流量。任何合适的设备可用于测量烹饪器具中的流体流量,包括但不限于ptc加热器/元件、叶轮等。

可由fpg420系统使用的其他输入包括用户输入。此类用户输入可包括关于食品已何时放入烹饪器具中的信息、关于食品的特性或关于烹饪器具的信息。例如,食品的特性可包括其质量或重量、体积、表面积、类型、温度等。关于烹饪器具的信息可包括热浸式循环器已插入其中的器皿的类型、器皿是否被覆盖、器皿的大小、液浴中的液体量、器皿是否绝缘等。

fpg系统420还可做出关于烹饪器具的假设,所述假设可规避测量电压、电流或电阻中的任一个或多个以确定功率输送的需要。作为示例,fpg系统420可使用来自pid控制器的输出来近似由加热器输送的功率。此外,fpg系统420可做出关于用于加热食品的液浴的效率的假设,如通过液体到食品的表面传热系数所测量的。fpg系统420还可基于在烹饪器具的先前使用或类似烹饪器具的先前使用期间识别出的烹饪器具的特性来做出关于烹饪器具(例如,器皿大小)的假设。烹饪器具的特性描述可基于制造商的设计或相同或相似烹饪器具的经验测量值,或者基于物理计算。作为示例,可做出与烹饪器具的加热器元件的电气性能有关的假设,诸如加热器元件的电阻对温度行为。

示例用户界面交互

图5至图8e示出根据本教导的示例用户界面,用户103(或其他用户163a-c)可通过示例用户界面与查询处理系统120和/或fpg系统420交互。为了清楚起见,将在用户103与fpg系统420之间的交互的上下文中描述实施例,但是示例交互场景可类似地应用于与食物制备无关联的查询处理系统120。如将所说明的,在一些情况下,交互可以是经由图形用户界面、音频界面或其任何组合的。

图5示出经由图形用户界面的示例用户交互,所述图形用户界面例如经由客户端设备102(例如,智能电话)的屏幕102a(例如,触摸屏显示器)显示。如图所示,利用与由用户103输入并由fpg系统420输出(灰色阴影)的消息相对应的文本显示图形元素。图5中所描绘的界面可经由由fpg系统420管理的客户端应用生成,或者可经由单独的消息收发应用(例如,messenger)生成。需注意,如果器具包括可视显示器和用于接收用户输入的一些装置(例如,触摸屏界面),则图5中所描绘的图形交互可类似地在用户103与诸如烹饪器具404的器具之间执行。

在图5中所描绘的示例交互中,用户103已输入消息“我如何真空低温烹饪牛排”。作为响应,fpg系统420提示用户有关例如牛排的切块和所期望的熟度的附加信息。利用由用户输入的附加信息,fpg系统420输出回答他们的问题(即,与具有一定的置信水平的消息的确定意图匹配)的响应。具体地,fpg系统420输出响应,推荐使用真空低温烹饪器具烹饪用户103的牛排的方法。

图6示出与图5中所描绘的相同的用户交互,不同的是经由音频接口。如图6所示,用户103通过对诸如烹饪器具404的设备的麦克风讲话来输入消息。通过从与设备相关联的扬声器产生音频来输出对用户103的响应。需注意,图6中所描绘的音频交互可类似地在用户103与诸如配备有扬声器和麦克风的智能手机的客户端设备102之间执行。

图7至图8e示出用户103与fpg系统420之间的示例交互,其中fpg系统420不知道答案并求助于社区响应模式。为了简明起见,图7a至图8e的示例交互被描绘为经由图形用户界面(例如,如关于图5所描述的),然而,此类交互可类似地经由诸如音频接口的其他装置来执行(例如,如关于图6所描述的)。

在图7中所描绘的示例交互中,响应于来自fpg系统420的对于反馈的提示,用户103输入消息,指示系统的响应未令人满意地回答用户103的原始问题。在该示例中,fpg系统420最初提示用户103对响应中有问题的地方进行阐明。换句话说,fpg系统420正在提示用户103输入在这种情况下带有新查询的新消息。在这里,用户103通过询问“我如何烤牛排”来阐明。如果fpg系统420不知道该问题的答案,则系统提示用户103允许“询问社区”。换句话说,fpg系统420提示用户103允许使用户的查询能够供其他用户访问。

图8a至图8e示出用户103与fpg系统420之间的示例交互,其示出用于输出对从其他用户163a-c所接收的用户查询的响应(即,“众包”或“社区”响应)的各种技术。

在图8a中所描绘的示例交互中,用户103已输入消息,“我应该给我的牛排搭配什么”。fpg系统420没有响应,因此提示用户103允许使用户查询能够供其他用户访问(即,询问社区)。用户103回复指示允许询问社区的消息。

此时,fpg系统420使用户的问题能够供一个或多个其他用户163a-c访问,例如关于图3a所描述的。如图8a所示,将用户的查询发布到一个或多个社区论坛并从其他用户接收一个或多个响应的过程可能花费时间,并且因此fpg系统420输出指示像这样的初始消息。在一些实施例中,图形元素800a显示在消息馈送中,指示过程正在后台中发生,并鼓励用户103等待过程的完成。例如,图形元素800a可包括某种类型的动画图形元素,类似于指示正在进行的过程的旋转圆。

在图8a所示的具体示例中,fpg系统420基于来自单个其他用户“masterchef123”的响应来输出消息。回顾一下,来自其他用户的响应可能以多种不同的方式输出。例如,fpg系统420可在社区响应被接收时简单地基于社区响应来输出消息。可替代地,fpg系统420可等待特定的时间段并输出与用户103查询的意图最匹配的一个或多个社区响应。在该示例中,fpg系统420可能已例如基于回答用户查询的所标识的关键字重新制定来自其他用户163a-c的响应。例如,其他用户163a-c(在这种情况下masterchef123)可能已输入响应,其叙述“我真的喜欢芦笋配牛排”。fpg系统420可从其他用户163a-c接收响应,解析出与用户103查询的意图匹配的关键字“芦笋”,并且例如基于结合关键字“芦笋”的模板重新制定新的响应消息以输出到用户。在这里,fpg系统420已重新制定来自masterchef123的原始消息,以替代地理解为“masterchef123建议用芦笋搭配牛排”,如图8a所示。

在输出来自masterchef123的众包响应之后,fpg系统420例如通过输出跟进消息来提示用户作出关于输出响应的反馈,所述跟进消息叙述“masterchef123的响应回答了您的问题了吗?”。在这里,用户103在以下消息中指示响应已回答他们的问题。

图8b示出如图8a中所描绘的相似的交互,不同的是fpg系统420已返回来自多个其他用户163a-c的响应。例如,如图8b所示,来自多个其他用户163a-c的响应经由图形元素800b输出。图8a中所描绘的示例图形元素800b包括多个响应的列表。例如,masterchef123已回复“芦笋”,而其他用户已回复“土豆”、“菠菜”和“沙拉”。

除了包括与作答的用户相关联的标识符(例如,诸如“masterchef123”的用户名)之外,图形元素800b还包括与论坛或平台相关联的标识符,响应通过论坛或平台被接收。例如,图形元素800b包括在其他用户163a-c的用户名旁边的图标802b,所述图标802b指示社交媒体平台(例如,等),通过社交媒体平台会接收其相应的响应。

在一些实施例中,图形元素800b可包括作答的其他用户163a-c中的任一个的声誉级别的指示。例如,图8b中的图形元素800b包括与用户名“masterchef123”相邻的星形图标804b,其指示该用户具有高的声誉级别。同样,该声誉级别可基于与fpg系统420的交互所专用的或之外的任何数量的因素。

与在图8a中所描绘的示例一样,图8b中的示例还包括对于关于输出的众包响应的用户反馈由fpg系统进行的提示。具体地,如图8b所示,提示可包括交互元素(例如,可选择的框806b),通过交互元素用户103可选择最佳地回答用户查询的响应中的一个或多个。

交互反馈元素806b仅是为了说明的目的而提供的示例。本领域普通技术人员将认识到,可采用其他交互机构来达到相似的效果。例如,如图8c所描绘,在一些实施例中,fpg系统420可提示用户103对来自其他用户163a-c的一个或多个输出响应进行排名。图8d示出又一个示例,其中来自其他用户中的每个用户的实际输入消息经由图形元素800d、810d输出(例如,当输入消息被接收时),图形元素800d、810d包括对用户103的提示,用于例如通过(分别)选择是或否按钮806d、816d来指示每个响应是否令人满意地回答了他们的问题。

如先前所讨论的,在一些实施例中,用户103可将对他们的查询的访问限制为特定组的其他用户。例如,如图8e所示,在使得能够供其他用户163a-c访问之前,fpg系统420例如通过询问他们是否想要“询问特定社区”来提示用户103选择特定子组的其他用户163a-c。如图8e所示,用户103已作出肯定响应,要求fpg系统420限制为仅用户103的朋友的访问。在这种情况下,fpg系统420可以多种不同的方式作出响应。例如,fpg系统420可利用用户查询(经由或以其他方式)单独向用户103的朋友中的每一个发送消息。在一些情况下,fpg系统420可自动将用户查询发布到用户103好友可见的用户103的facebook墙。发布可包括交互机构(例如,回复按钮),用户103的朋友可通过交互机构以回复响应。从用户103的朋友所接收的响应可随后例如经由如图8e中所描绘的图形元素800e而输出到用户。

示例网络处理系统

图9和以下讨论提供形成设备的示例网络处理系统900的组件的简要的、一般描述,所述系统900包括查询处理系统120/fpg系统420、烹饪器具404和计算设备102(仅示出一个),其中可实现各种所示实施例。网络处理系统900可例如实施上面参考图1和图4当下讨论的各种功能和操作。尽管不是必需的,但是将在计算机可执行指令或逻辑(诸如计算机正在执行的程序应用模块、对象或宏)的一般上下文中描述实施例的某部分。相关领域的技术人员将理解,可利用其他计算机系统或基于处理器的设备配置来实践所示实施例以及其他实施例,所述其他计算机系统或基于处理器的设备配置包括手持设备,例如支持web的蜂窝电话或pda、多处理器系统、基于微处理器的或可编程的消费电子产品、个人计算机(“pc”)、网络pc、小型计算机、大型计算机等。实施例可在分布式计算环境中实践,其中任务或模块由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可位于本地存储器存储设备和远程存储器存储设备两者中。

查询处理系统120/fpg系统420可采用执行逻辑或其他机器可执行指令的常规pc、服务器或其他计算系统的形式。系统120、420包括一个或多个处理器906、系统存储器908以及系统总线910,所述系统总线910将包括系统存储器908的各种系统组件联接到处理器906。系统120、420有时在本文中以单数形式指代,但这并不旨在将实施例限制为单个系统,因为在某些实施例中,将存在多于一个的系统120、420或其他相关的网络计算设备。可商购获得的系统的非限制性示例包括但不限于intelcorporation,u.s.a.的80×86或pentium系列微处理器、ibm的powerpc微处理器、sunmicrosystems,inc.的sparc微处理器、hewlett-packardcompany的pa-risc系列微处理器或motorolacorporation的68xxx系列微处理器。

处理器906可以是任何逻辑处理单元,诸如一个或多个中央处理单元(cpu)、微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)等。除非另有描述,否则图9所示的各种框的构造和操作将具有常规设计。因此,如相关领域的技术人员将理解的那样,在本文中不需要进一步详细描述此类框。

系统总线910可采用任何已知的总线结构或体系结构,包括具有存储器控制器的存储器总线、外围总线以及局部总线。系统存储器908包括只读存储器(“rom”)和随机存取存储器(“ram”)。可结合到rom的至少一部分中的基本输入/输出系统(“bios”)包含有助于诸如在启动期间在系统120、420内的元件之间传输信息的基本例程。一些实施例可为数据、指令和电源采用单独的总线。

数据存储装置954可包括硬盘驱动器,用于从硬盘读取和写入到硬盘;以及光盘驱动器和磁盘驱动器,分别用于从可移动光盘和磁盘读取和写入到可移动光盘和磁盘。光盘可以是cd或dvd,而磁盘可以是磁软盘或软盘。硬盘驱动器、光盘驱动器和磁盘驱动器经由系统总线910与处理器906进行通信。如相关领域的技术人员所知,硬盘驱动器、光盘驱动器和磁盘驱动器可包括联接在此类驱动器与系统总线910之间的接口或控制器(未示出)。驱动器及其相关联的计算机可读介质提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储装置。在一些实施例中,数据存储装置954可(分别)包括或形成系统120和420的储存库120b-c或420b-c中的任一个的一部分。相关领域的技术人员将理解,可采用其他类型的计算机可读介质(诸如磁带、闪存卡、伯努利盒、ram、rom、智能卡等)来存储计算机可访问的数据。

程序模块(诸如操作系统、一个或多个应用程序、其他程序或模块和程序数据)可存储在系统存储器908中。

应用程序可包括能够实现与查询处理和/或食物制备有关的前述功能中的任一个的逻辑。例如,存储在系统存储器中的应用程序可包括查询处理模块122、422或食物制备指导模块424中的任一个。此类应用程序可例如存储在系统存储器908内作为一组或多组逻辑或一组或多组机器可执行指令。

系统存储器908可包括通信程序,所述通信程序允许系统120、420访问数据并与其他网络系统或组件(例如,烹饪器具404、其他计算设备102或任何其他外部计算机系统)交换数据,所述任何其他外部计算机系统例如与外部服务140、外部数据源150和/或众包者160相关联。

操作系统、应用程序、其他程序/模块、程序数据和通信可存储在系统存储器或其他数据存储装置上。

授权人员可使用用户界面912将命令(例如,系统维护、升级等)和信息(例如,烹饪模拟参数、方程式、机器学习模型等)输入到系统120、420中,所述用户界面912包括一个或多个可通信联接的输入设备(诸如触摸屏或键盘)、指点设备(诸如鼠标)和/或按钮。其他输入设备可包括麦克风、操纵杆、游戏手柄、平板电脑、扫描仪、生物特征扫描设备等。这些和其他输入设备通过诸如联接到系统总线210的通用串行总线(“usb”)接口的接口连接到处理单元906,然而可使用诸如并行端口、游戏端口或无线接口或串行端口的其他接口。用户界面912可包括监视器或其他显示设备,所述监视器或其他显示设备经由诸如视频适配器的视频接口联接到系统总线910。在至少一些情况下,例如,当系统安装在系统用户的处所处时,输入设备可位于系统120、420附近。在其他情况下,例如,当系统安装在服务提供商的处所上时,输入设备可远离系统120、420定位。

在一些实施方式中,系统120、420使用逻辑连接中的一个或多个来操作环境100和/或400,以任选地经由一个或多个通信信道(例如,一个或多个网络110)与一个或多个远程计算机、服务器和/或其他设备进行通信。这些逻辑连接可有利于允许计算机诸如通过一个或多个lan和/或wan进行通信的任何已知方法。此类网络环境在有线和无线企业范围的计算机网络、内部网、外部网和因特网中是众所周知的。

在一些实施方式中,可通信地链接到系统总线910的网络端口或接口956可用于建立和维护通过通信网络110的通信。此外,可通信地链接到系统总线910的数据库接口952可用于建立与可以(分别)是系统120、420的一部分或者至少与其可操作地通信的非暂时性处理器可读存储介质或数据存储装置120b-c和/或420b-c的通信。例如,数据存储装置120b-c、420b-c可包括用于存储以下中的任一个或多个的储存库:图像数据、视频数据、音频数据、文本数据、机器学习模型、查找表、自然语言处理算法、烹饪程序、烹饪模拟参数、烹饪模拟模型、描绘食品的结束分级或偏好的媒体文件(例如,描绘蛋黄的质地和/或稠度、蛋白的质地和/或稠度的图像或视频、描绘牛排的外部的图像、描绘牛排的内部的图像)、最终用户账户信息(例如,用户烹饪器具及其参数、用户偏好等)、最终用户计算设备信息或其组合。在一些实施例中,数据库接口952可经由网络110与数据存储装置120b-c、420b-c进行通信。

程序模块、应用程序或数据或其部分可存储在未示出的其他服务器计算系统中。例如,在一些实施例中,或更多程序模块、应用程序或数据可由一个或多个云计算服务(诸如amazontmaws)托管。相关领域的技术人员将认识到,图9所示的网络连接仅是在计算机之间建立通信的方式的一些示例,并且可使用其他连接,包括无线连接。在一些实施例中,程序模块、应用程序或数据或其部分甚至可存储在其他计算机系统或其他设备(未示出)中。

处理器906、系统存储器908、网络端口956和数据库接口可经由系统总线910彼此可通信地联接,从而在上述组件之间提供连通性。在替代实施例中,上述组件可以与图9所示不同的方式可通信地联接。例如,上述组件中的一个或多个可经由中间组件(未示出)直接联接到其他组件,或者可彼此联接。在一些实施例中,省略了系统总线910,并且使用合适的连接将组件直接彼此联接。

计算设备102可包括具有至少有线或无线通信能力的任何设备、系统或系统和设备的组合。在大多数情况下,计算设备102包括能够提供图形数据显示能力的附加设备、系统或系统和设备的组合。此类计算设备102的示例可包括但不限于蜂窝电话、智能电话、平板计算机、台式计算机、膝上型计算机、超便携式计算机或上网本、个人数字助理、手持设备等。

计算设备102可包括一个或多个处理器982和非暂时性计算机或处理器可读介质或存储器,例如一个或多个非易失性存储器984,诸如只读存储器(rom)或闪存和/或一个或多个易失性存储器986,诸如随机存取存储器(ram)。

计算设备102可包括一个或多个收发器或无线电设备988以及相关联的天线990。例如,计算设备102可包括一个或多个蜂窝收发器或无线电设备、一个或多个收发器或无线电设备和一个或多个收发器或无线电设备,以及相关联的天线。计算设备102还可包括一个或多个有线接口(未示出),所述一个或多个有线接口利用了能够例如经由universalserial(usb)、或gigabyte中的一个或多个进行高速通信的并行电缆、串行电缆或无线信道。

计算设备102可包括用户输入/输出子系统,例如,包括触摸屏或触敏显示设备992以及一个或多个麦克风/扬声器993。触摸屏或触敏显示设备992可包括任何类型的触摸屏,包括但不限于电阻式触摸屏或电容式触摸屏。触摸屏或触敏显示设备992可呈现例如呈许多不同的屏幕或窗口的形式的图形用户界面,所述屏幕或窗口包括提示和/或字段以供选择。触摸屏或触敏显示设备992可呈现或显示各个图标和控件,例如虚拟按钮或滑块控件以及虚拟键盘或小键盘,其用于传达指令、命令和/或数据。尽管未示出,但是用户界面可附加地或可替代地包括一个或多个附加的输入或输出设备,例如,麦克风、气压计(例如,用于高度估计)、字母数字小键盘、qwerty键盘、操纵杆、滚轮、触摸板或相似的物理或虚拟输入设备。例如,计算设备102可包括允许对计算设备进行语音控制的麦克风。

计算设备102可包括一个或多个图像捕获设备994,例如具有合适镜头的摄像机,以及任选地一个或多个闪光灯或照明灯,用于照亮视野以捕获图像。图像捕获设备994可捕获静止数字图像或运动或视频数字图像。例如,图像信息可经由非易失性存储器984存储为文件。

计算设备102内的组件中的一些或全部可使用至少一个总线996或相似结构来可通信地联接,所述至少一个总线996或相似结构被适配成在用于计算设备102内的设备、系统或组件之间传输、传送或递送数据。总线996可包括一个或多个串行通信链路或并行通信链路,诸如8位、16位、32位或64位数据总线。在一些实施例中,可存在冗余总线(未示出),以在主总线996发生故障或中断的情况下提供故障切换能力。

处理器982可包括任何类型的处理器(例如,armcortext-a8、armcortext-a9、snapdragon600、snapdragon800、nvidiategra4、nvidiategra4i、intelatomz2580、samsungexynos5octa、applea7、motorolax8),其被适配来执行一个或多个机器可执行指令集,例如常规微处理器、基于精简指令集计算机(risc)的处理器、专用集成电路(asic)、数字信号处理器(dsp)或类似物。在处理器982内,非易失性存储器984可存储在初始施加功率时,由处理器982执行的基本输入/输出系统(bios)、引导顺序、固件、启动例程和通信设备操作系统(例如,phone、8和类似物)中的全部或一部分。在向处理器982初始施加功率之后,处理器982还可执行从易失性存储器986加载的一组或多组逻辑或一个或多个机器可执行指令集。处理器982还可包括系统时钟、日历或相似的时间测量设备。未在图9中示出的一个或多个地理位置设备,例如全球定位系统(gps)接收器和一个或多个位置感测设备(例如,一个或多个微机电系统或“mems”加速度计、陀螺仪等)可通信地联接到处理器982,以向处理器982提供诸如地理位置数据和三维位置数据的附加功能。

收发器或无线电设备988可包括能够经由电磁能传递和接收通信的任何设备。蜂窝通信收发器或无线电设备988的非限制性示例包括cdma收发器、gsm收发器、3g收发器、4g收发器、lte收发器以及具有语音电话能力或数据交换能力中的至少一个的任何相似的当前或将来开发的计算设备收发器。在至少一些情况下,蜂窝收发器或无线电988可包括多于一个的接口。例如,在一些情况下,蜂窝收发器或无线电设备988可包括至少一个专用的、全双工或半双工的、语音呼叫接口和至少一个专用的数据接口。在其他情况下,蜂窝收发器或无线电设备988可包括能够同时适应全双工或半双工语音呼叫和数据传输的至少一个集成接口。

收发器或无线电设备988的非限制性示例包括购自broadcom的各种芯片组(包括bcm43142、bcm4313、bcm94312mc、bcm4312)和购自atmel、marvell或redpine的芯片组。收发器或无线电设备988的非限制性示例包括购自nordicsemiconductor、texasinstruments、cambridgesiliconradio、broadcom和emmicroelectronic的各种芯片组。

如所指出的,非暂时性计算机或处理器可读介质可包括非易失性存储存储器984,并且在一些实施例中也可包括易失性存储器986。存储器的至少一部分可用于存储由处理器982执行的一个或多个处理器可执行指令集。在一些实施例中,存储器的全部或一部分可例如以高速缓存的形式设置在处理器982内。在一些实施例中,存储器可补充有一个或多个插槽,所述一个或多个插槽被配置成接受一个或多个可移除存储设备(诸如安全数字(sd)卡、紧凑式闪存(cf)卡、通用串行总线(usb)记忆“棒”等)的插入。

在至少一些实施方式中,提供处理器982可执行的应用或“app”的一组或多组逻辑或机器可执行指令可全部或部分地存储在存储器984、986的至少一部分中。在至少一些情况下,应用可由最终用户例如使用诸如苹果应用商店(appleappstore)、亚马逊市场(amazonmarketplace)或googleplay市场的在线市场来下载或以其他方式获取。在一些实施方式中,此类应用可响应于用户或消费者对相应的用户可选图标的选择而启动。应用可有利于经由收发器或无线电设备988和通信网络110在计算设备102、系统120、420或烹饪器具404之间建立数据链路。

如以下更详细地讨论的,应用可包括逻辑或指令以向最终用户提供对具有允许用户103经由系统120、420输入查询、接收响应、获得食物制备指令、控制或指导的提示、字段和其他用户界面结构的多个图形屏幕或窗口的访问。这可包括例如用于各种屏幕或窗口的逻辑或机器可执行指令。

烹饪器具404可包括实现所公开的功能的设备、系统或系统和设备的组合。在一些实施方式中,烹饪器具404具有有线或无线通信能力,并且包括能够提供图形数据显示能力的附加设备、系统或系统和设备的组合。此类烹饪器具的示例可包括但不限于热浸式循环器和器皿、水烘箱、烘箱、电磁炉等。

烹饪器具404可包括一个或多个处理器960和非暂时性计算机或处理器可读介质,例如一个或多个非易失性存储器962(诸如只读存储器(rom)或闪存)和/或一个或多个易失性存储器964(诸如随机存取存储器(ram))。

烹饪器具404可包括烹饪室412(例如,容器、器皿),所述烹饪室412具有定位在其中用于例如在烹饪室412内加热流体(例如,水、空气)的一个或多个加热器974(例如,作为热浸式循环器414的一部分)。烹饪室412可以是绝缘的,并且可包括可选择性关闭的盖(例如,盖子、门等)。烹饪器具404还可包括在烹饪室412中搅拌流体的一个或多个循环器或循环泵972(例如,作为热浸式循环器414的一部分)。如上所讨论的,烹饪器具404还可包括一个或多个传感器或检测器978,其感测或检测一个或多个特性,诸如温度、压力、功率、运动、流体流量、是否存在食品等。循环器972、加热器974和传感器978可以可操作地联接到一个或多个处理器960。传感器978可包括热电偶、热敏电阻、铂电阻温度检测器(rtd)、正温度系数(ptc)加热器/元件、黑体/红外发射检测器、电压传感器、电流传感器(例如,分流电阻器、电流变换器、霍尔效应传感器、磁力计/gmr(巨磁阻))、电阻传感器、气压计(例如,用于高度估计)等中的一个或多个。

烹饪器具404可包括一个或多个收发器或无线电设备966以及相关联的天线968。例如,烹饪器具404可包括一个或多个蜂窝收发器或无线电设备、一个或多个收发器或无线电设备和一个或多个收发器或无线电设备,以及相关联的天线。烹饪器具404还可包括一个或多个有线接口(未示出),所述一个或多个有线接口利用能够例如经由universalserial(usb)、或gigabyte中的一个或多个进行高速通信的并行电缆、串行电缆或无线信道。

烹饪器具404可包括用户输入/输出子系统928,例如,其包括触摸屏或触敏显示设备以及一个或多个麦克风/扬声器。触摸屏或触敏显示设备可包括任何类型的触摸屏,包括但不限于电阻式触摸屏或电容式触摸屏。触摸屏或触敏显示设备可呈现例如呈许多不同的屏幕或窗口的形式的图形用户界面,所述屏幕或窗口包括提示和/或字段以供选择。触摸屏或触敏显示设备可呈现或显示各个图标和控件,例如虚拟按钮或滑块控件以及虚拟键盘或小键盘,其用于传达指令、命令和/或数据。尽管未示出,但是用户界面可附加地或可替代地包括一个或多个附加的输入或输出设备,例如,麦克风、字母数字小键盘、qwerty键盘、操纵杆、滚轮、触摸板或相似的物理或虚拟输入设备。例如,烹饪器具404可包括麦克风,所述麦克风允许烹饪器具的语音控制和/或用户查询的基于语音的输入。

烹饪器具404内的组件中的一些或全部可使用被适配来在用于烹饪器具404内的设备、系统或组件之间传输、传送或递送数据的至少一个总线970或相似结构来可通信地联接。总线970可包括一个或多个串行通信链路或并行通信链路,诸如8位、16位、32位或64位数据总线。在一些实施例中,可存在冗余总线(未示出),以在主总线970发生故障或中断的情况下提供故障切换能力。

处理器960可包括被适配来执行一个或多个机器可执行指令集的任何类型的处理器(例如,armcortext-a8、armcortext-a9、snapdragon600、snapdragon800、nvidiategra4、nvidiategra4i、intelatomz2580、samsungexynos5octa、applea7、motorolax8),例如常规微处理器、基于精简指令集计算机(risc)的处理器、专用集成电路(asic)、数字信号处理器(dsp)或类似物。在处理器960内,非易失性存储器可存储在初始施加功率时,由处理器960执行的基本输入/输出系统(bios)、引导顺序、固件、启动例程和通信设备操作系统(例如,phone、8和类似物)中的全部或一部分。在向处理器960初始施加功率之后,处理器960还可执行从易失性存储器964加载的一组或多组逻辑或一个或多个机器可执行指令集。处理器960还可包括系统时钟、日历或相似的时间测量设备。未在图9中示出的一个或多个地理位置设备,例如全球定位系统(gps)接收器和一个或多个位置感测设备(例如,一个或多个微机电系统或“mems”加速度计、陀螺仪等)可以可通信地联接到处理器960,以向处理器960提供诸如地理位置数据和三维位置数据的附加功能。

收发器或无线电设备966可包括能够经由电磁能传递和接收通信的任何设备。蜂窝通信收发器或无线电设备966的非限制性示例包括cdma收发器、gsm收发器、3g收发器、4g收发器、lte收发器以及具有语音电话能力或数据交换能力中的至少一个的任何相似的当前或将来开发的计算设备收发器。在至少一些情况下,蜂窝收发器或无线电设备966可包括多于一个的接口。例如,在一些情况下,蜂窝收发器或无线电设备966可包括至少一个专用的、全双工或半双工的、语音呼叫接口和至少一个专用的数据接口。在其他情况下,蜂窝收发器或无线电设备966可包括能够同时适应全双工或半双工语音呼叫和数据传输的至少一个集成接口。

收发器或无线电设备966的非限制性示例包括购自broadcom的各种芯片组(包括bcm43142、bcm4313、bcm94312mc、bcm4312)和购自atmel、marvell或redpine的芯片组。收发器或无线电设备966的非限制性示例包括购自nordicsemiconductor、texasinstruments、cambridgesiliconradio、broadcom和emmicroelectronic的各种芯片组。

如所指出的,非暂时性计算机或处理器可读介质可包括非易失性存储存储器,并且在一些实施例中也可包括易失性存储器。存储器的至少一部分用于存储由处理器960执行的一个或多个处理器可执行指令集。在一些实施例中,存储器的全部或一部分可例如以高速缓存的形式设置在处理器960内。在一些实施例中,存储器可补充有一个或多个插槽,所述一个或多个插槽被配置成接受一个或多个可移除存储设备(诸如安全数字(sd)卡、紧凑式闪存(cf)卡、通用串行总线(usb)记忆“棒”等)的插入。

在至少一些实施方式中,提供处理器960可执行的程序的一组或多组逻辑或机器可执行指令可全部或部分地存储在存储器962、964的至少一部分中。在至少一些情况下,应用可由最终用户例如使用在线市场来下载或以其他方式获取。在一些实施方式中,此类应用可响应于用户或消费者对相应的用户可选图标的选择而启动。应用可有利于经由收发器或无线电设备966和通信网络110在烹饪器具404、系统120、420和/或计算设备102之间建立数据链路。

在一些实施方式中,烹饪器具404的组件中的一些可体现在与烹饪室412分开的计算设备中,诸如在图4a所示的示例中。在一些实施例中,烹饪器具404可以是包括前述组件中的一些或全部的集成设备。此外,应当理解,尽管在本文中将某些功能描述为在客户端计算设备102、烹饪器具404和/或系统120、420中的一个中实现,但是此类功能中的一些或全部可通过这些设备的多种组合来执行,或者可在与上述不同的设备中的一个或多个中执行。换句话说,本文所述的功能可以高度分布式的方式实现,或者可在单个独立设备中实现。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1