语言分类系统的制作方法

文档序号:20685243发布日期:2020-05-08 18:46阅读:168来源:国知局
语言分类系统的制作方法

本主题的实施例总体上涉及数据推断,并且更具体地涉及语言熟练度推断。



背景技术:

许多在线服务支持多种语言。例如,内容提供商可以用英语和西班牙语保存相同内容的副本,并且基于用户的母语向用户展示内容的合适版本。作为另一示例,推荐系统可以以用户的母语为用户生成推荐的响应。因此,确定用户的语言熟练度对于这些系统的功能至关重要,但者不总是一个容易的任务。用户可用的数据可能是受限的,并且因此不足以正确地确定用户的语言熟练度。例如,许多用户具有描述该用户的不完整的简档数据。此外,用户行为通常有很多噪声,并且无法正确地确定用户的语言熟练度。例如,用户可以点击外语文章只是为了查看图像,而不是阅读文本。因此,改进是需要的。

附图说明

在不一定按比例绘制的附图中,相同的数字可以在不同的视图中描述类似的组件。具有不同字母后缀的相同数字可以表示类似组件的不同实例。作为示例而非限制,在附图的图中示出了一些实施例,其中:

图1示出了示例性系统配置,其中,电子设备出于交换内容和其他数据的目的经由网络进行通信。

图2是根据一些示例实施例的语言熟练度推断系统的框图。

图3是示出了根据某些示例实施例的确定用户的一个或多个语言熟练度的示例方法的流程图。

图4是示出了根据某些示例实施例的基于用户的语言熟练度来选择内容的示例方法的流程图。

图5是示出了根据某些示例实施例的基于用户的语言熟练度来生成推荐的响应消息的示例方法的流程图。

图6是示出了可以与本文所述的各种硬件架构结合地使用的代表性软件架构的框图。

图7是示出根据一些示例实施例的机器的组件的框图,所述机器的组件能够从机器可读介质(例如,机器可读存储介质)中读取指令并且执行在本文中所讨论的方法中的任何一个或多个。

具体实施方式

在下面的描述中,出于解释的目的,阐述了各种细节以便提供对一些示例实施例的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节的情况下或以微小的改变来实践本主题。

说明书中对“一个实施例”或“实施例”的引用是指结合该实施例所描述的特定特征、结构、或特性被包括在本主题的至少一个实施例中。因此,在整个说明书中各种地方出现的短语“在一个实施例中”或“在实施例中”的出现不一定全都指同一实施例。

出于解释的目的,阐述了具体的配置和细节,以便提供对本主题的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有本文所呈现的具体细节或如本文所描述的各种组合的情况下实践所描述的主题的实施例。此外,可以省略或简化公知的特征,以免使所描述的实施例难以理解。在该说明书通篇中可以给出各种示例。这些仅仅是对具体实施例的描述。权利要求的范围或含义不限于所给出的示例。

公开了一种用于语言熟练度推断系统的系统、方法、和非暂时性计算机可读介质,该语言熟练度推断系统用于确定用户使用一个或多个语言的熟练度。用户的语言熟练度指示其说和/或理解该语言的能力。语言熟练度推断系统使用用户的简档数据以及与该用户相关联的文本来确定用户的语言熟练度。用户的简档数据包括描述该用户的数据,例如用户的地址、国籍、雇主、教育历史等。与用户相关联的文本包括由用户创作和/或查看的文本。

用于确定用户语言熟练度的先前方法取决于计数器。具体地,先前的方法对用户与特定语言(由语言分类器确定)的文本进行互动的次数进行计数。接着,基于针对特定语言所确定的计数来确定用户的语言熟练度。虽然简单,但是如果语言分类器的噪声足够大,则该方法将失败。此外,该方法仅适合于找到一种口头语言或各种语言的分布,但这种方法的结果在质量上令人怀疑。然而,先前的方法不适合于确定用户所说的语言集。

语言熟练度推断系统可缓解这些先前的缺点。不同于仅仅依赖于计数器,语言熟练度推理系统确定用户讲给定语言或给定语言集的基于文本的概率分数,以及用户讲给定语言或给定语言集的基于简档的概率分数两者。基于文本的概率分数是基于与用户相关联的文本确定的,而基于简档的概率分数是基于用户的简档数据的。语言熟练度推断系统根据基于文本的概率分数和基于简档的概率分数来确定用户说给定语言或给定语言集的聚合概率分数。语言熟练度推断系统使用聚合概率分数来推断用户每种语言的熟练度。例如,语言熟练度推断系统推断出用户具有最高聚合概率分数的一种语言或语言集是用户的主要语言。通过利用多种数据信号以及确定语言集的概率分数,语言熟练度推断系统可以更加准确地评估用户可能会说的语言数量以及用户对这些具体语言的熟练度。

推断出的用户语言熟练度可用于多种目的。例如,推断出的用户语言熟练度可以用于选择要呈现给用户的内容。也就是说,为用户选择的内容可以采用用户的推断出的主要语言。作为另一示例,在为用户生成推荐消息时,可以使用推断的用户语言熟练度。消息传递系统可以向用户提供推荐的响应,该推荐的响应可以被用户用来响应所接收的消息。消息传递系统可以使用推断的用户语言熟练度来确定生成推荐的响应所用的语言。

图1示出了示例系统100,其中,电子设备经由网络进行通信以用于交换内容和其他数据的目的。如图所示,多个设备(即,客户端设备102、客户端设备104、在线服务106、和语言熟练度推断系统108)连接至通信网络110,并且被配置为通过使用通信网络110彼此进行通信。通信网络110是任何类型的网络,包括诸如内联网之类的局域网(lan),诸如因特网之类的广域网(wan),或其任何组合。此外,通信网络110可以是公共网络、专用网络或其组合。通信网络110是使用与一个或多个服务提供商相关联的任何数量的通信链路来实现的,包括一个或多个有线通信链路、一个或多个无线通信链路、或其任何组合。另外地,通信网络110被配置为支持对使用任何数量的协议格式化的数据的传输。

多个计算设备可以连接至通信网络110。计算设备是能够与其他计算设备进行网络通信的任何类型的通用计算设备。例如,计算设备可以是诸如台式机或工作站之类的个人计算设备,商业服务器,或者诸如膝上型计算机、智能电话或平板个人计算机(pc)之类的便携式计算设备。计算设备可以包括图7所示的机器700的特征、组件、和外围设备中的一些或全部。

为了促进与其他计算设备的通信,计算设备包括通信接口,该通信接口配置为从与该计算设备进行网络通信的另一计算设备接收通信内容,例如请求、数据等,并且将该通信内容传递给在计算设备上运行的合适模块。通信接口还向与计算设备进行网络通信的另一计算设备发送通信。

在系统100中,用户与在线服务106交互以利用在线服务106所提供的服务。在线服务106可以提供任何类型的服务,例如社交网络服务、在线零售服务、消息传送服务等。例如,在线服务106可以提供使得用户能够建立并参与彼此的通信会话的消息传送功能。用户可以是通过直接和/或间接通信连接至通信网络110以与在线服务106通信并利用在线服务106的功能的客户端设备102和104。

尽管所示的系统100仅包括两个客户端设备102、104,但这仅是为了易于解释,并不意味着是限制性的。本领域技术人员将意识到,系统100可以包括任何数量的客户端设备102、104。此外,在线服务106可以同时接受来自任何数量的客户端设备102、104的连接并与之交互。在线服务106支持来自多种不同类型的客户端设备102、104的连接,例如台式计算机;移动计算机;移动通信设备,例如移动电话、智能电话、平板计算机;智能电视机;机顶盒;和/或任何支持网络的其他计算设备。因此,客户端设备102和104可以具有不同的类型、能力、操作系统等等。

用户经由安装在客户端设备102和104上的客户端侧应用与在线服务106交互。在一些实施例中,客户端侧应用包括特定于在线服务106的组件。例如,该组件可以是独立应用、一个或多个应用插件和/或浏览器扩展。但是,用户也可以通过第三方应用(例如web浏览器)与在线服务106交互,该第三方应用位于客户端设备102和104上,并被配置为与在线服务106通信。在任一情况下,客户端应用为用户提供了与在线服务106交互的用户界面(ui)。例如,用户经由与文件系统集成的客户端侧应用或经由使用web浏览器应用显示的网页与在线服务106进行交互。

在线服务106是被配置为提供一个或多个服务的一个或多个计算设备。例如,在线服务106可以是促进和管理各种客户端设备102、104之间的通信会话的消息传送服务。作为另一示例,在线服务106可以是社交网络服务,其允许用户与社交网络服务的其他成员共享内容以及查看由该社交网络服务其他成员发布的内容。

作为其提供的服务的一部分,在线服务106可以为用户选择或生成内容,并将该内容呈现给用户。例如,社交网络服务可以选择要在社交网络服务的用户馈送中呈现给用户的内容。作为另一示例,消息传送服务可以为用户生成推荐的响应消息,该用户可以在通信会话(例如,电子邮件通信会话、即时消息传送会话等)期间使用该推荐的响应消息来对另一个用户进行响应。

为了向用户提供相关内容,在线服务106可以基于推断的用户的一个或多个语言的熟练度来为用户选择和/或生成内容。推断的用户的语言熟练度指示该用户能够理解和/或使用给定语言的估计水平。在线服务106使用推断的用户的一个或多个语言的熟练度,来以用户具有足够熟练度的语言为用户选择和/或生成内容。例如,在线服务106可以访问文章的多个版本,其中所述多个版本中的每个版本使用不同的语言。在线服务106可以基于用户对文章的每种可用语言的熟练度来选择要向用户呈现的内容项的版本,从而以用户最熟练的语言向用户呈现该文章。

语言熟练度推断系统108确定用户对给定语言或语言集的语言熟练度。语言熟练度推断系统108被示为与在线服务106分离,但是这仅是一个示例,并且不意味着是限制性的。语言熟练度推断系统108也可以作为在线服务106的一部分或作为另一个在线服务(未显示)的一部分被包含。

语言熟练度推断系统108基于用户的简档数据以及与用户相关联的文本,来确定用户对给定语言或语言集的语言熟练度。用户的简档数据包括描述用户的数据,例如用户的地址、国籍、雇主、教育历史等。与用户相关联的文本包括用户与之互动过的文本。例如,与用户相关联的文本包括由用户创作、查看、点赞、评论等的文本。在线服务106可以为在线服务106的用户保存用户简档,该用户简档既包括用户简档数据也包括用户交互数据,该用户交互数据指示用户已经在使用在线服务106时与之互动过(例如,阅读、创作等)的内容。

语言熟练度推断系统108既确定用户说给定语言或语言集的基于文本的概率分数,又确定用户说给定语言或语言集的基于简档的概率分数。基于文本的概率分数是基于与用户关联的文本确定的,而基于简档的概率分数是基于用户的简档数据的。语言熟练度推断系统108根据基于文本的概率分数和基于简档的概率分数来确定用户说给定语言或语言集的聚合概率分数。

基于文本的、基于简档的概率分数或者聚合概率分数可以是指示概率的数值,或者可替代地可以是基于所确定的概率的另一种类型的值。例如,概率分数可以是指示相对概率的分数,但是其本身并不表示实际概率值。作为另一示例,概率分数可以表示相对于其他分数的排名。由此,最高概率分数将被表示为1,而不是概率百分比。

语言熟练度推断系统108使用聚合概率分数来推断用户对于每种语言和语言集的熟练度。例如,语言熟练度推断系统108推断出用户具有最高聚合概率分数的语言是用户的主要语言。同样,如果用户针对给定语言的聚合概率分数低于预定的阈值,则语言熟练度推断系统108可以确定该用户不精通于给定语言。

图2是根据一些示例实施例的语言熟练度推断系统108的框图。为了避免以不必要的细节使得本发明的主题难以理解,从图2中省略了与传达对本发明主题的理解没有密切关系的各种功能组件(例如,模块)。然而,本领域技术人员将容易认识到,语言熟练度推断系统108可以支持各种另外的功能组件,以促进在本文中没有具体描述的另外的功能。此外,在图2中所描绘的各种功能模块可以驻留在个体计算设备上,或者可以以诸如基于云的架构中使用的那些布置之类的各种布置分布在多个计算设备上。例如,各种功能模块和组件可以分布在促进语言熟练度推断系统108和在线服务106两者的计算设备之间。

如图所示,语言熟练度推断系统108包括数据收集模块202、基于文本的概率分数确定模块204、基于简档的概率分数确定模块206、聚合概率分数确定模块208、语言熟练度确定模块210、输出模块212和数据存储设备214。

数据收集模块202收集语言熟练度推断系统110所使用的数据,以确定用户对于一个或多个语言的熟练度。具体地,数据收集模块202从数据存储设备214收集数据。数据存储设备214保存在线服务106的用户的用户简档数据。尽管数据存储设备214被示出为语言熟练度推断系统110的一部分,但其可替代地是在线服务106的一部分。在该类型的实施例中,数据收集模块202与在线服务106通信以访问数据存储设备214。

存储在数据存储设备214中的用户简档数据包括描述用户的简档数据,例如用户的地址、国籍、雇主、教育历史等,以及描述与用户相关联的文本的交互数据。即,所述交互数据指示用户已经通过以下动作来与之进行互动的文本:例如创作文本、阅读文本、点赞文本、向文本提供反馈、点击文本等。

存储在数据存储设备214中的简档数据与指定给对应用户的唯一用户标识符相关联。数据收集模块202使用用户的唯一用户标识符来识别数据存储设备214中的对应用户简档数据。一旦数据收集模块202已经识别了与唯一标识符相关联的用户简档,则数据收集模块202就收集所述用户简档数据,包括描述用户的数据以及用户的交互数据。

基于文本的概率分数确定模块204确定用户说给定语言或给定语言集合的基于文本的概率分数。基于文本的概率分数确定模块204基于与用户相关联的文本(例如,用户已经创作、阅读、点击、点赞等的文本)来确定基于文本的概率分数。例如,确定的用户与给定语言互动的发生率会增加用户说该语言的概率。基于文本的概率分数确定模块204可以使用任何类型的合适模型或算法来确定用户说给定语言或语言集的基于文本的概率分数。在一些实施例中,基于文本的概率分数确定模块204基于互动类型和/或文本将不同的权重应用于用户与之互动的文本。例如,基于文本的概率分数确定模块204可以将另外的权重添加至用户书写的文本,并且将较小权重添加至用户阅读的文本。在一些实施例中,基于文本的概率分数确定模块204可以基于互动的长度将另外的权重应用于文本。例如,基于文本的概率分数确定模块204可以对用户花费较长时间阅读或与之互动的文本给予较大的权重,而对用户仅在短时间内阅读或与之互动的文本给予较小的权重。

基于文本的概率分数确定模块204可以确定个体文本片段的分数,并且使用这些个体分数来计算最终的基于文本的概率分数。如前所述,基于文本的概率分数确定模块204可以基于文本的类型和/或互动的类型或持续时间将变化的权重应用于所述个体分数。基于文本的概率分数确定模块204可以将最小分数用于基于文本的概率分数,以使得基于文本的概率分数不为零。

在一些实施例中,基于文本的概率分数确定模块204为语言集中的每一种语言以及该语言集的所有可能的组合确定基于文本的概率分数。例如,假设语言集包括英语和法语,则基于文本的概率分数确定模块204确定用户说英语的文本概率分数、用户说法语的文本概率分数、以及用户说英语和法语两者的文本概率分数。同样地,如果语言集包括英语、法语、和西班牙语,则基于文本的概率分数确定模块204确定用户说英语的文本概率分数、用户说法语的文本概率分数、用户说西班牙语的文本概率分数、用户说英语和法语的文本概率分数、用户说英语和西班牙语的文本概率分数、用户说法语和西班牙语的文本概率分数、以及用户说英语、法语、和西班牙语的文本概率分数。

基于简档的概率分数确定模块206确定用户说给定语言或给定语言集合的基于简档的概率分数。与基于文本的概率分数相反,基于简档的概率分数确定模块206基于用户的用户简档数据(例如,用户的地址、国籍、工作历史等)来确定基于简档的概率分数。基于概率的分数确定模块206可以在两部分过程中确定基于简档的概率分数。首先,基于简档的概率分数确定模块206可以使用简档数据来确定指示用户所讲语言数量的概率分数。例如,许多欧洲人说三种或更多种语言,而美国人常常只讲一种或两种语言。另外地,基于简档的概率分数确定模块206可以使用简档数据来确定用户说给定语言或语言集的概率分数。例如,基于简档的概率分数确定模块206可以使用用户的国籍和居住地来推断用户精通的语言。基于简档的概率分数确定模块206组合这些值以确定用户说给定语言或语言集的基于简档的概率分数。也就是说,基于简档的概率分数确定模块206可以使用指示用户所讲语言数量的概率分数和用户说给定语言或语言集的概率分数来确定最终的基于简档的概率分数。基于简档的概率分数确定模块206可以使用任何类型的合适模型或算法来确定用户说给定语言或语言集的基于简档的概率分数。

基于简档的概率分数确定模块206为基于文本的概率分数确定模块204确定同一语言集和/或语言组合的基于简档的概率分数,其中,基于文本的概率分数确定模块204确定了所述同一语言集和/或语言组合的基于本文的概率分数。作为结果,为每个个体的语言和/或语言集确定基于文本的概率分数和基于简档的概率分数。

聚合概率分数确定模块208确定用户说给定语言或给定语言集合的聚合概率分数。聚合概率分数确定模块208基于用户说给定语言或给定语言集的基于文本的概率分数和基于简档的概率分数来确定该用户说给定语言或给定语言集合的聚合概率分数。例如,聚合概率分数确定模块208基于用户说西班牙语的基于文本的概率分数和用户说西班牙语的基于简档的概率分数来确定用户说西班牙语的聚合概率分数。作为另一示例,聚合概率分数确定模块208基于用户说西班牙语和英语的基于文本的概率分数以及用户说西班牙语和英语的基于简档的概率分数来确定用户说西班牙语和英语的聚合概率分数。

聚合概率分数确定模块208可以以任何数量的方式来确定聚合概率分数。例如,在一些实施例中,聚合概率分数确定模块208通过将相应的基于文本的概率分数和基于简档的概率分数相加或相乘来确定聚合概率分数。例如,聚合概率分数确定模块208通过将用户说西班牙语的基于文本的概率分数与用户说西班牙语的基于简档的概率分数相加,来确定用户说西班牙语的聚合概率分数。然而,这仅仅是一个示例,并且不意味着是限制性的。聚合概率分数确定模块208可以使用任何合适的公式以基于对应的基于文本的概率分数和基于简档的概率分数来确定聚合概率分数。例如,在一些实施例中,聚合概率分数确定模块208使用诸如以下算法将基于文本的概率分数和基于简档的概率分数最大化:

语言熟练度确定模块210基于用户说一种语言或语言集的聚合概率分数来确定用户对于一种语言或语言集的熟练度。例如,语言熟练度确定模块210将聚合概率分数彼此比较以确定最高聚合概率分数。然后,语言熟练度确定模块210确定用户精通于与最高聚合概率分数相关联的语言或语言集。例如,语言熟练度确定模块210可以比较用户说西班牙语、英语,或西班牙语和英语的集合的聚合概率分数,并且确定用户精通具有最高聚合概率分数的语言或语言集。即,如果西班牙语的聚合概率分数最高,则语言熟练度确定模块210则确定用户仅精通西班牙语,如果英语的聚合概率分数最高,则确定用户仅精通英语,或者如果西班牙语和英语的集合的聚合概率分数最高,则用户精通西班牙语和英语。

在语言熟练度确定模块210确定用户精通两种或更多种语言的集合的事件中,语言熟练度确定模块210可以确定用户在这些语言中的熟练度的顺序。即,语言熟练度确定模块210可以确定作为用户的主要语言、第二语言、第三语言等的语言。语言熟练度确定模块210可以以多种方式确定熟练度的顺序。例如,语言熟练度确定模块210可以使用集合中每种语言的聚合概率分数来确定熟练度的顺序。即,如果语言熟练度确定模块210确定用户精通西班牙语和英语,则语言熟练度确定模块210使用用户仅会说西班牙语的聚合概率分数和用户仅会说英语的聚合概率分数来确定哪种语言是用户的主要语言,以及哪种语言是用户的次要语言。语言熟练度确定模块210确定具有较高聚合概率分数的语言是用户的主要语言。

作为另一示例,语言熟练度确定模块210可以使用用户的地区来确定用户的主要语言。例如,语言熟练度确定模块210可以确定在用户当前居住,居住的时间最长或长大的地理区域中通常说的语言是用户的主要语言。

在一些实施例中,语言熟练度确定模块210可以使用学习语言的已知常见顺序来确定语言的熟练度顺序。例如,用户最初学习英语,然后学习西班牙语,然后学习法语可能很常见。由此,语言熟练度确定模块210可以基于通常学习语言的该已知顺序来确定用户的熟练度顺序。

输出模块212更新数据存储设备214中的用户简档,以反映用户的确定的语言水平。这可以包括更新用户的简档,以指示用户精通的语言,以及这些语言的熟练度顺序。例如,输出模块212可以更新用户的简档以指示用户的主要语言、第二语言、第三语言等。在一些实施例中,输出模块212还可以更新用户的简档以反映用户不精通的语言。例如,输出模块212可以更新用户的简档以指示用户不精通对应的聚合概率分数低于阈值分数的语言。

在线服务106可以例如在为用户生成和/或选择内容时将用户的语言熟练度用于多种用途。例如,在线服务106可以利用用户的确定的语言熟练度来确定要呈现给用户的内容项的版本。在线服务106可以保存采用不同语言的内容项的多个版本。当选择向用户呈现内容项的哪个版本时,在线服务106可以从数据存储设备214中的用户简档中确定用户精通的语言,并相应地选择内容项。作为另一示例,在线服务106可以使用用户的语言熟练度来选择为用户生成推荐的消息响应所用的语言。这些仅仅是在线服务106如何使用用户的语言熟练度的几个示例,并且不意味着是限制性的。

图3是示出根据某些示例实施例的确定用户对于一个或多个语言的熟练度的示例方法300的流程图。方法300可以被实施在计算机可读指令中,以由一个或多个处理器执行,从而使得方法300的操作可以由语言熟练度推断系统110部分或全部执行;由此,下面作为示例参考方法300进行描述。然而,应当理解的是,方法300的操作中的至少一些可以被部署在各种其他硬件配置上,并且方法300不旨在限于语言熟练度推断系统110。

在操作302处,数据收集模块202收集用户简档数据和用户交互数据。数据收集模块202收集由语言熟练度推断系统110确定用户对一个或多个语言的熟练度所使用的数据。具体地,数据收集模块202从数据存储设备214收集数据。数据存储设备214保存在线服务106的用户的用户简档数据。尽管数据存储设备214被示出为语言熟练度推断系统110的一部分,其可以替代地可以是在线服务106的一部分。在该类型的实施例中,数据收集模块202与在线服务106进行通信以访问数据存储设备214。

存储在数据存储设备214中的用户简档数据包括描述用户的简档数据,例如用户的地址、国籍、雇主、教育历史等,以及描述与用户相关联的文本的交互数据。即,交互数据指示用户已经通过以下动作与之进行互动的文本,所述动作例如创作文本、阅读文本、点赞文本、向文本提供反馈、点击文本等。

存储在数据存储设备214中的简档数据与指定给对应用户的唯一用户标识符相关联。数据收集模块202使用用户的唯一用户标识符来识别数据存储设备214中的对应用户简档数据。一旦数据收集模块202已经识别了与唯一标识符相关联的用户简档,数据收集模块202就收集用户简档数据,其包括描述用户的数据和用户的交互数据。

在操作304处,基于文本的概率确定模块204确定基于文本的概率分数。基于文本的概率分数表示用户说给定语言或给定语言集合的概率。基于文本的概率分数确定模块204基于与用户相关联的文本(例如,用户已经创作、阅读、点击、点赞等的文本)来确定基于文本的概率分数。例如,用户与给定语言互动的确定的发生率增加了用户说该语言的概率。基于文本的概率分数确定模块204可以使用任何类型的合适的模型或算法来确定用户说给定语言或语言集的基于文本的概率分数。在一些实施例中,基于文本的概率分数确定模块204基于互动类型和/或文本将不同的权重应用于用户与之互动的文本。例如,基于文本的概率分数确定模块204可以将另外的权重添加至用户书写的文本,并且将较小权重添加至用户阅读的文本。在一些实施例中,基于文本的概率分数确定模块204可以基于互动的长度来将另外的权重应用于文本。例如,基于文本的概率分数确定模块204可以对用户花费较长时间阅读或以其他方式与之互动的文本给予较大的权重,而对用户仅在短时间内阅读或与之互动的文本给予较小的权重。

基于文本的概率分数确定模块204可以确定个体文本片段的分数,并且使用这些个体分数来计算最终的基于文本的概率分数。如前所述,基于文本的概率分数确定模块204可以基于文本的类型和/或互动的类型或持续时间来将变化的权重应用于个体分数。基于文本的概率分数确定模块204可以将最小分数用于基于文本的概率分数,以使得基于文本的概率分数不是0。

在一些实施例中,基于文本的概率分数确定模块204为语言集中的每一种语言以及该语言集的所有可能的组合确定基于文本的概率分数。例如,假设语言集包括英语和法语,则基于文本的概率分数确定模块204确定用户说英语的文本概率分数、用户说法语的文本概率分数、以及用户说英语和法语两者的文本概率分数。同样地,如果语言集包括英语、法语、和西班牙语,则基于文本的概率分数确定模块204确定用户说英语的文本概率分数、用户说法语的文本概率分数、用户说西班牙语的文本概率分数、用户说英语和法语的文本概率分数、用户说英语和西班牙语的文本概率分数、用户说法语和西班牙语的文本概率分数、以及用户说英语、法语、和西班牙语的文本概率分数。

在操作306处,基于简档的概率分数确定模块206确定基于简档的概率分数。基于简档的概率分数表示用户说给定语言或给定语言集合的概率。与基于文本的概率分数不同,基于简档的概率分数确定模块206基于用户的用户简档数据(例如,用户的地址、国籍、工作历史等)来确定基于简档的概率分数。基于简档的概率分数确定模块206可以在两部分过程中确定基于简档的概率分数。首先,基于简档的概率分数确定模块206可以使用简档数据来确定指示用户所讲语言数量的概率分数。例如,许多欧洲人说3种或更多种语言,而美国人通常只讲1到2种语言。另外,基于简档的概率分数确定模块206可以使用简档数据来确定用户说给定语言或语言集的概率分数。例如,基于简档的概率分数确定模块206可以使用用户的国籍和居住地来推断用户精通的语言。基于简档的概率分数确定模块206组合这些值以确定用户说给定语言或语言集的基于简档的概率分数。也就是说,基于简档的概率分数确定模块206使用指示用户所讲语言数量的概率分数和用户说给定语言或语言集的概率分数来确定最终的基于简档的概率分数。基于简档的概率分数确定模块206可以使用任何类型的合适模型或算法来确定用户说给定语言或语言集的基于简档的概率分数。

基于简档的概率分数确定模块206为基于文本的概率分数确定模块204确定同一语言集和/或语言组合的基于简档的概率分数,其中,基于文本的概率分数确定模块204确定了所述同一语言集和/或语言组合的基于本文的概率分数。作为结果,为每种单独的语言和/或语言集确定了基于文本的概率分数和基于简档的概率分数。

在操作308处,聚合概率分数确定模块208确定聚合概率分数。聚合概率分数确定模块208基于用户说给定语言或给定语言集合的基于文本的概率分数和基于简档的概率分数,来确定用户说给定语言或给定语言集合的聚合概率分数。例如,聚合概率分数确定模块208基于用户说西班牙语的基于文本的概率分数和用户说西班牙语的基于简档的概率分数来确定用户说西班牙语的聚合概率分数。作为另一示例,聚合概率分数确定模块208基于用户说西班牙语和英语的基于文本的概率分数以及用户说西班牙语和英语的基于简档的概率分数,来确定用户说西班牙语和英语的聚合概率分数。

聚合概率分数确定模块208可以以任何数量的方式来确定聚合概率分数。例如,在一些实施例中,聚合概率分数确定模块208通过将相应的基于文本的概率分数和基于简档的概率分数相加来确定聚合概率分数。例如,聚合概率分数确定模块208通过将用户说西班牙语的基于文本的概率分数与用户说西班牙语的基于简档的概率分数相加,来确定用户说西班牙语的聚合概率分数。然而,这仅仅是一个示例,并不意味着进行限制性。聚合概率分数确定模块208可以使用任何合适的公式来基于对应的基于文本的概率分数和基于简档的概率分数来确定聚合概率分数。

在操作310处,语言熟练度确定模块210基于用户说一种语言或语言集的聚合概率分数来确定用户对一种语言或语言集的熟练度。例如,语言熟练度确定模块210将聚合概率分数彼此比较以确定最高聚合概率分数。接着,语言熟练度确定模块210确定用户精通于与最高聚合概率分数相关联的语言或语言集。例如,语言熟练度确定模块210可以比较用户说西班牙语、英语、或西班牙语和英语的集合的聚合概率分数,并且确定用户精通具有最高聚合概率分数的语言或语言集合。即,如果西班牙语的聚合概率分数最高,则语言熟练度确定模块210确定用户仅精通西班牙语,如果英语的聚合概率分数最高,则确定用户仅精通英语,如果西班牙语和英语的集合的聚合概率分数最高,则确定用户精通西班牙语和英语。

在语言熟练度确定模块210确定用户精通两种或更多种语言的集合的情况下,语言熟练度确定模块210可以确定用户对这些语言的熟练度的顺序。即,语言熟练度确定模块210可以确定作为用户的主要语言、第二语言、第三语言等的语言。语言熟练度确定模块210可以以多种方式确定熟练度的顺序。例如,语言熟练度确定模块210可以使用集合中每种语言的聚合概率分数来确定熟练度的顺序。即,如果语言熟练度确定模块210确定用户精通西班牙语和英语,则语言熟练度确定模块210使用用户仅会说西班牙语的聚合概率分数和用户仅会说英语的聚合概率分数来确定哪种语言是用户的主要语言,以及哪种语言是用户的次要语言。语言熟练度确定模块210确定具有较高聚合概率分数的语言是用户的主要语言。

作为另一示例,语言熟练度确定模块210可以使用用户的地区来确定用户的主要语言。例如,语言熟练度确定模块210可以确定在用户当前居住、居住的时间最长、或在其中长大的地理区域中通常所讲的语言是用户的主要语言。

在一些实施例中,语言熟练度确定模块210可以使用学习语言的已知常见顺序来确定语言的熟练度顺序。例如,用户最初学习英语,然后学习西班牙语,然后学习法语可能很常见。由此,语言熟练度确定模块210可以基于该通常学习语言的已知顺序来确定用户的熟练度顺序。

在操作312处,输出模块212更新数据存储设备214中的用户简档以反映用户的确定的语言熟练度。这可以包括更新用户的简档以指示用户精通的语言以及这些语言的熟练度顺序。例如,输出模块212可以更新用户的简档以指示用户的主要语言、第二语言、第三语言等。在一些实施例中,输出模块212还可以更新用户的简档以反映用户不精通的语言。例如,输出模块212可以更新用户的简档以指示用户不精通对应的聚合概率分数低于阈值分数的语言。

在线服务106可以例如在为用户生成和/或选择内容时将用户的语言熟练度用于多种用途。例如,在线服务106可以利用用户的确定的语言熟练度来确定要呈现给用户的内容项的版本。在线服务106可以保存采用不同语言的内容项的多个版本。当选择向用户呈现内容项的哪个版本时,在线服务106可以从数据存储设备214中的用户简档中确定用户精通的语言,并相应地选择内容项。作为另一示例,在线服务106可以使用用户的语言熟练度来选择为用户生成推荐的消息响应所用的语言。这些仅仅是在线服务106如何使用用户的语言熟练度的几个示例,并且不意味着是限制性的。

图4是示出了根据某些示例实施例的基于用户的语言熟练度来选择内容的示例方法400的流程图。方法400可以被实施在计算机可读指令中以由一个或多个处理器执行,从而使得方法400的操作可以由在线服务106部分或全部执行;由此,下面作为示例参考方法400进行描述。然而,应当理解的是,方法400的操作中的至少一些可以被部署在各种其他硬件配置上,并且方法400不旨在限于在线服务106。

在操作402处,在线服务106接收向用户呈现内容项的请求。例如,在线服务106可以是社交网络服务,并且请求可以作为用户登录到他们的帐户中的结果被发送。作为另一示例,在线服务106可以是新闻站点,并且请求可以作为用户选择查看文章的结果被发送。

在操作404处,在线服务106从用户的简档中识别用户语言熟练度。例如,在线服务106访问数据存储设备214中的用户简档,并且收集用户存储的语言熟练度。用户的语言熟练度可以已经由语言熟练度推断系统110确定和更新。

在操作406处,在线服务106基于用户的语言熟练度来选择内容项的版本。例如,在线服务106选择以用户的主要或次要语言书写的内容项的版本。

在操作408处,在线服务106将所选内容项呈现给用户。例如,在线服务106将内容项发送至用户的客户端设备102,接着,该内容项由客户端设备102呈现给用户。

图5是示出了根据某些示例实施例的基于用户的语言熟练度来生成推荐的响应消息的示例方法500的流程图。方法500可以被实施在计算机可读指令中以由一个或多个处理器执行,从而使得方法500的操作可以由在线服务106部分或全部执行;由此,下面作为示例参考方法500进行描述。然而,应当理解的是,方法500的操作中的至少一些可以被部署在各种其他硬件配置上,并且方法500不旨在限于在线服务106。

在操作502处,在线服务106接收预期给接收者用户的消息。例如,在线服务106可以是促进多个用户客户端设备102、104之间的通信会话的消息传送服务。通信允许用户经由在线服务106来回发送消息。例如,从第一客户端设备102发送到第二客户端设备104的消息最初被路由至在线服务106。接着,在线服务106将消息转发到其预期的接收者客户端设备104。

在操作504处,在线服务106从用户的简档中识别用户的语言熟练度。例如,在线服务106访问数据存储设备214中的用户简档,并且收集用户存储的语言熟练度。用户的语言熟练度可以已经由语言熟练度推断系统110确定和更新。

在操作506处,在线服务106基于用户的语言熟练度来生成对接收到的消息的推荐的响应。例如,在线服务106以用户的主要或次要语言来生成推荐的响应。

在操作508处,在线服务106将消息和推荐的响应发送至接收者用户的客户端设备104。客户端设备104向接收者用户呈现消息和推荐的响应。用户可以选择推荐的响应以快速地回复所收的消息。

软件架构

图6是示出了示例软件架构606的框图,该示例软件架构606可以与本文所述的各种硬件架构结合地使用。图6是软件架构606的非限制性示例,并且将意识到,可以实现许多其他架构以促进本文描述的功能。软件架构606可以在诸如图7的机器700的硬件上执行,所述硬件包括处理器704、存储器714、和(输入/输出)i/o组件718等。代表性的硬件层652被示出并且例如可以表示图7的机器700。代表性硬件层652包括具有相关联的可执行指令604的处理单元654。可执行指令604表示软件架构606的可执行指令,包括对在本文中所描述的方法、组件等的实现。硬件层652还包括存储器和/或存储模块656,其也具有可执行指令604。硬件层652还可以包括其他硬件658。

在图6的示例架构中,软件架构606可以被概念化为层的堆叠,其中每个层提供特定的功能。例如,软件架构606可以包括诸如操作系统602、库620、框架/中间件618、应用616、和表示层614之类的层。在操作上,这些层内的应用616和/或其他组件可以通过软件堆栈来调用应用编程接口(api)调用608,并且响应于api调用608来接收响应(例如,消息612)。所示的层本质上是代表性的,且不是所有软件架构都具有所有层。例如,某些移动或专用操作系统可能不提供框架/中间件618,而其他操作系统可以提供这样的层。其他软件架构可以包括其他或不同的层。

操作系统602可以管理硬件资源并提供公共服务。操作系统602可以包括例如内核622、服务624、和驱动器626。内核622可以用作硬件和其他软件层之间的抽象层。例如,内核622可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全性设置等。服务624可以为其他软件层提供其他公共服务。驱动器626负责控制底层硬件或与底层硬件接口。例如,取决于硬件配置,驱动器626包括显示驱动器、相机驱动器、驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等等。

库620提供由应用616和/或其他组件和/或层使用的通用基础结构。库620提供的功能允许其他软件组件以比直接与底层操作系统602功能(例如,内核622、服务624、和/或驱动器626)对接的方式更容易的方式执行任务。库620可以包括系统库644(例如,c标准库),其可以提供诸如存储器分配函数、字符串操纵函数、数学函数等的函数。另外,库620可以包括api库646,诸如媒体库(例如,用于支持各种媒体格式(例如,mpeg4、h.264、mp3、aac、amr、jpg、png)的呈现和操纵的库),图形库(例如,可用于在显示器上以图形内容呈现2d和3d的opengl框架),数据库库(例如,可提供各种关系数据库功能的sqlite),web库(例如,可提供web浏览功能的webkit))等。库620还可以包括各种各样的其他库648,以向应用616和其他软件组件/模块提供许多其他api。

框架/中间件618(有时也称为中间件)提供可以由应用616和/或其他软件组件/模块使用的高级通用基础结构。例如,框架/中间件618可以提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架/中间件618可以提供可以由应用616和/或其他软件组件/模块使用的广谱的其他api,其中一些可以特定于特定操作系统602或平台。

应用616包括内置应用638和/或第三方应用640。代表性内置应用638的示例可以包括但不限于联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息传送应用和/或游戏应用。第三方应用640可以包括由特定平台的供应商以外的实体使用androidtm或iostm软件开发工具包(sdk)开发的应用,并且可以是在iostm、androidtmphone或其他移动操作系统等移动操作系统上运行的移动软件。第三方应用640可以调用api调用608,其由移动操作系统(例如,操作系统602)提供以促进在本文中所描述的功能。

应用616可以使用内置的操作系统功能(例如,内核622、服务624、和/或驱动器626)、库620、和框架/中间件618来创建ui以与系统的用户交互。可替代地或另外地,在一些系统中,可以通过诸如表示层614的表示层发生与用户的交互。在这些系统中,可以将应用/组件“逻辑”与同用户交互的应用/组件的各方面分开。

图7是示出根据一些示例实施例的机器700的组件的框图,所述机器的组件能够从机器可读介质(例如,机器可读存储介质)中读取指令604并且执行在本文中所讨论的方法中的任何一个或多个。具体而言,图7以计算机系统的示例形式示出了机器700的示意表示,在机器700内,可用执行指令710(例如,软件、程序、应用、小应用、应用或其他可执行代码)以使得机器700执行在本文中所讨论的方法中的任何一个或多个。由此,指令710可以用于实现在本文中所描述的模块或组件。指令710将通用的、未编程的机器700转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器700。在可替代实施例中,机器700作为独立设备操作,或者可以耦合(例如,联网)至其他机器。在网络化部署中,机器700可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力运行,或者在对等(或分布式)网络环境中作为对等机器操作。机器700可以包括但不限于服务器计算机、客户端计算机、pc、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、网络设备、网络路由器、网络交换机、网桥、或能够按顺序或以其他方式执行指令710的任何机器700,所述指令指定了机器700所要采取的动作。此外,尽管仅示出了个体机器700,但术语“机器”也应被认为包括单独地或共同地执行指令710以实行在本文中所讨论的方法中的任何一个或多个的机器的集合。

机器700可以包括处理器704、存储器/存储设备706、和i/o组件718,其可以被配置为例如经由总线702彼此通信。存储器/存储设备706可以包括存储器714(例如主存储器,或其他存储器),以及存储单元716,两者都能够例如经由总线702由处理器704访问。存储单元716和存储器714存储实施在本文中所描述的方法或功能中的任何一个或多个的指令710。在由机器700执行期间,指令710还可以全部或部分地驻留在存储器714内,存储单元716内,处理器704中的至少一个内(例如,处理器的高速缓存存储器内),或其任何合适的组合内。由此,存储器714、存储单元716、和处理器704的存储器是机器可读介质的示例。

i/o组件718可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获度量等的宽泛的多种组件。在特定机器700中包括的特定i/o组件718将取决于机器700的类型。例如,诸如移动电话之类的便携式机器将很可能包括触摸输入设备或其他这样的输入机制,但无终端服务器机器将很可能不包含这样的触摸输入设备。但将理解的是,i/o组件718可以包括在图7中没有示出的许多其他组件。为了简化以下的讨论,仅根据功能将i/o组件718分组,并且所述分组一点也没有限制。在各种示例实施例中,i/o组件718可以包括输出组件726和输入组件728。输出组件726可以包括视觉组件(例如,诸如等离子显示面板(pdp)之类的显示器、发光二极管(led)显示器、液晶显示器(lcd)、投影仪、或阴极射线管(crt))、声学组件(例如,扬声器)、触觉组件(例如,振动电动机、电阻机制)、其他信号生成器等。输入组件728可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘、或其他字母数字输入组件)、基于指点的输入组件(例如,鼠标、触摸板、轨迹球、游戏操纵杆、运动传感器、或另一指点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏、或者其他触觉输入组件)、音频输入组件(例如,麦克风)等。

在另外的示例实施例中,i/o组件718还可以包括生物计量组件730、运动组件734、环境组件736、或位置组件738,此外还有大量其他组件。例如,生物计量组件730可以包括用于检测表达(例如,手表达、面部表达、语音表达、身体姿势、或眼睛跟踪)、测量生物信号(例如,血压、心率、身体温度、出汗、或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别、或基于脑电图的识别)等的组件。运动组件734可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件736可以包括例如照度传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近对象的红外线传感器)、气体传感器(例如,为了安全性而检测危险气体浓度或用于测量大气中的污染物的气体检测传感器),或者可以提供与周围物理环境对应的指示、测量、或信号的其他组件。位置组件738可以包括地点传感器组件(例如,全球定位系统(gps)接收器组件)、高度传感器组件(例如,高度计或检测从其可以导出高度的气压的气压计)、方向传感器组件(例如,磁强计)等。

可以使用宽泛的多种技术来实现通信。i/o组件718可以包括可操作以分别经由耦合724和耦合722将机器700耦合至网络732或设备720的通信组件740。例如,通信组件740可以包括用于与网络732接合的网络接口组件或另一合适的设备。在另外的示例中,通信组件740可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低能量)、组件、以及用于经由其他模态来提供通信的其他通信组件。设备720可以是另一机器或者宽泛的多种外围设备(例如,经由usb耦合的外围设备)中的任何一个。

此外,通信组件740可以检测标识符或者包括可用于检测标识符的组件。例如,通信组件740可以包括射频身份(rfid)标签阅读器组件、nfc智能标签检测组件、光学阅读器组件(例如,用于检测诸如通用产品码(upc)条形码之类的一维条形码,诸如快速响应(qr)码、aztec码、数据矩阵、dataglyph、maxicode、pdf417、超级码、ucc-rss-2d条形码、以及其他光学码之类的多维条形码的光学传感器)、或声学检测组件(例如,用于识别被标记的音频信号的麦克风)。另外,可以经由通信组件740来得出多种信息,例如经由互联网协议(ip)地理位置的地点、经由信号三角测量的地点、经由检测可以指示具体地点的nfc信标信号的地点等。

术语

“载波信号”在本文中是指能够存储、编码、或携带由机器700执行的指令710的任何无形介质,并且包括数字或模拟通信信号或促进这种指令710的通信的其他无形介质。可以经由网络接口设备使用传输介质并且使用许多公知的传输协议中的任何一种在网络732上发送或接收指令710。

在本文中,“客户端设备”是指与通信网络732接口以从一个或多个服务器系统或其他客户端设备获得资源的任何机器700。客户端设备102、104可以是但不限于移动电话、台式计算机、膝上型计算机、pda、智能电话、平板电脑、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏控制台、stb或用户可用来访问网络732的任何其他通信设备。

在该上下文中,“通信网络”是指网络732的一个或多个部分,其可以是自组织网络、内联网、外联网、虚拟专用网(vpn)、lan、无线lan(wlan)、wan、无线wan(wwan)、城域网(man)、因特网、因特网的部分、公共交换电话网(pstn)的部分、普通旧电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络或两个或多个此类网络的组合。例如,网络732或网络732的部分可以包括无线或蜂窝网络,并且耦合可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或其他类型的蜂窝或无线耦合。在此示例中,耦合可以实现多种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、增强型数据gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其他标准、其他远程协议或其他数据传输技术。

在该上下文中,“机器可读介质”是指能够临时或永久存储指令710和数据的组件、设备或其他有形介质,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓冲存储器、其他类型的存储器(例如,可擦除可编程只读存储器(eeprom))和/或其任何合适的组合。应将术语“机器可读介质”视为包括能够存储指令710的个体介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还应可以理解为包括能够存储由机器700执行的指令710(例如,代码)的任何介质或多种介质的组合,使得指令710在由机器700的一个或多个处理器704执行时使机器700执行本文所述的任何一个或多个方法。因此,“机器可读介质”是指个体存储设备或设备,以及包括多个存储设备或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”本身不包括信号。

在该上下文中,“组件”是指具有由功能或子例程调用、分支点、api或提供特定处理或控制功能的分区或模块化的其他技术定义的边界的设备、物理实体或逻辑。组件可以通过它们与其他组件的接口进行组合以执行机器过程。组件可以是设计为与其他组件以及通常执行相关功能的特定功能的程序的一部分一起使用的打包功能硬件单元。组件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式进行配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器704)可以由软件(例如,应用616或应用部分)配置为操作为执行本文所述的某些操作的硬件组件。硬件组件也可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括永久性地配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,例如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件组件还可以包括可编程逻辑或电路,其由软件临时配置为执行某些操作。例如,硬件组件可以包括由通用处理器704或其他可编程处理器704执行的软件。一旦由这样的软件配置,硬件组件就变成专门定制来执行所配置功能的特定机器700(或机器700的特定组件),而不再是通用处理器704。应意识到,以专用和永久配置的电路,或以临时配置的电路(例如,由软件配置)以机械方式实现硬件组件的决定可能受成本和时间方面的考虑驱动。因此,短语“硬件组件”(或“硬件实现的组件”)应理解为包含有形实体,是物理构造,永久配置(例如,硬连线)或临时配置(例如,编程)从而以某种方式操作或执行此处所述的某些操作的实体。考虑其中硬件组件被临时配置(例如,编程)的实施例,每个硬件组件不需要在任何时间实例处被配置或实例化。例如,在硬件组件包括由软件配置为成为专用处理器的通用处理器704的情况下,通用处理器704可以在不同的时间分别配置为不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置一个或多个特定处理器704,例如,以在一个时间实例处构成特定的硬件组件,并在不同的时间实例处构成不同的硬件组件。硬件组件可以向其他硬件组件提供信息,或从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为是通信耦合的。在同时存在多个硬件组件的情况下,可以通过在两个或多个硬件组件之间或之中的信号传输(例如,通过适当的电路和总线702)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,可以例如通过在多个硬件组件可以访问的存储器结构中存储和检索信息来实现这种硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在其通信耦合到的存储设备中。然后,另一硬件组件可以在以后的时间访问存储设备以检索和处理所存储的输出。硬件组件还可以发起与输入或输出设备的通信,并且可以在资源(例如,信息的集合)上进行操作。本文描述的示例性方法的各种操作可以至少部分地由一个或多个临时配置(例如,通过软件)或永久地配置为执行相关操作的处理器704执行。无论是临时配置还是永久配置,这种处理器704都可以构成处理器实现的组件,这些组件操作以执行本文所述的一个或多个操作或功能。如本文所使用,“处理器实现的组件”是指使用一个或多个处理器704实现的硬件组件。类似地,本文描述的方法可以至少部分地由处理器实现,其中一个或多个特定处理器704是硬件的示例。例如,一种方法的至少一些操作可以由一个或多个处理器704或处理器实现的组件执行。此外,一个或多个处理器704也可以在“云计算”环境中或作为“软件即服务”(saas)来支持相关操作的执行。例如,至少一些操作可以由一组计算机(作为包括处理器704的机器700的示例)执行,这些操作可以经由网络732(例如,因特网)以及经由一个或多个适当的接口(例如,api)来访问。某些操作的执行可以分布在处理器704之间,不仅驻留在个体机器700内,而且可以跨多个机器700部署。在一些示例实施例中,处理器704或处理器实现的组件可以位于个体地理位置(例如,在家庭环境、办公室环境或服务器场中)。在其他示例实施例中,处理器704或处理器实现的组件可以分布在多个地理位置上。

在该上下文中,“处理器”是指根据控制信号(例如“命令”,“操作代码”,“机器代码”等)操纵数据值并且产生适用于操作机器700的相应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑仿真的物理电路)。处理器704可以是例如中央处理器(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、asic、射频集成电路(rfic)或其任何组合。处理器可以进一步是具有两个或更多个可以同时执行指令710的独立处理器704(有时称为“核”)的多核处理器。

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