将目前正在被考虑的用户称为“目标用户”。换言之,执行方法200是为了获取目标用户的一个或多个特征。而且,根据本发明的实施例,可以使用方法200在目标用户正在web环境中进行操作的同时动态地获取其特征,以实现在线特征获取。备选地或附加地,也可以使用用户在web环境中的历史操作数据来获取特征,以实现离线特征获取。
[0025]在此使用的术语“特征”是指描述用户的性格、行为、心理、认知等方面的习惯或偏好的任何信息。作为示例,在一个实施例中,用户特征包括用户的各种性格特征。这些性格特征可被用于提高计算服务的智能性和灵活性,从而改善用户体验和操作效率。例如,在一个实施例中,用户特征可以包括“大五人格”中的一个或多个性格特征。如已知的,大五人格是指用户的外倾性、情绪稳定性、开放性、随和性和尽责性。这些性格特征对于社交网络等web环境中的应用通常具有重要意义。
[0026]如图所示,方法200开始于步骤S210,对于任意待处理的用户(称为“目标用户”),响应于确定目标用户的第一类数据不足以确定用户的特征,获取该目标用户的第二类数据。
[0027]在此使用的术语“第一类数据”是指能够被独立使用以获取用户特征的数据。例如,在一个实施例中,第一类数据可以包括文本数据,其描述与用户相关联的文本。例如,文本数据可以包括用户在浏览社交网络站点、博客、微博或者任何其他网站时,针对特定内容或对象发表的评论、帖子、回复或者各种其他形式的言论,等等。例如,在从提供开源程序代码的网站上下载特定的代码片段之后,用户可以在该网站上评论所下载的代码片段的质量,例如其编程风格、注释风格,等等。
[0028]备选地或附加地,充当第一类数据的文本数据也可以包括与目标用户有关的任何其他文本,例如描述目标用户的以下一个或多个方面的文本:背景、兴趣、工作单位、家庭地址,等等。这样的文本信息例如可以由目标用户提供,并且由相应的网站维护,例如维护在用于目标用户的简档(profile)中。
[0029]在下文描述的某些实施例中,将使用文本数据作为第一类数据的示例。然而应当理解,这仅仅是出于说明之目的,并非意在限制本发明的范围。除了文本数据之外或者作为替代,第一类数据可以包括其他类型的数据,例如描述用户的行为或动作的数据,等等。
[0030]如果目标用户的第一类数据足以获取该目标用户的特征,则可以直接基于第一类数据而获取用户的一个或多个特征。例如,在第一类数据包含文本数据的实施例中,可以基于文本中所包含的心理语言学(psycholinguistic)词汇,来预测目标用户的一个或多个性格特征。图3示出了这方面的一个示例性方法300的流程图。
[0031]方法300开始于步骤S310,在此从与用户相关联的文本数据中提取心理语言学词汇。与用户相关联的文本例如是用户过去输入的文本。在一个实施例中,语言学词汇可以是预先定义的。接下来,在步骤S320,可以基于提取的词汇来计算心理语言学特征或得分。在一个实施例中,不同的语言心理学词汇与心理特征或得分之间的对应关系可以被预先定义和存储。通过将步骤S310处提取的语言心理学词汇与预定义对应关系中的词汇相匹配,可以确定目标用户的心理学特征和/或得分。以这些特征或者得分作为输入,在步骤S330,可以使用任何目前已知或者将来开发的心理特征预测模型,来预测用户的一个或多个心理特征作为用户特征。这样的心理预测模型是已知的,在此不再赘述,以避免混淆本发明的主匕曰。
[0032]应当理解,方法300仅仅是基于第一类数据来获取用户特征的一个示例性实施例,并非意在限制本发明的范围。可以采用任何其他适当的方式来获取用户特征。例如,在一个备选实施例中,可以通过实验建立文本数据(例如,关键词)与用户特征之间的直接关联关系。在这样的实施例中,可以从用户过往输入的文本数据中提取关键词。继而,通过关键词匹配,可以基于预定义的关联关系直接确定用户的一个或多个特征。任何其他的实施例均是可行的,本发明的范围在此方面不受限制。
[0033]继续参考图2,在步骤S210处,如果确定目标用户本人的第一信息并不足以获取他/她的特征,则目标用户的第二类数据将被收集。根据本发明的实施例,第二类数据和第一类数据是不同类别的数据,其分别描述目标用户的不同方面。例如,在第一类数据包括文本数据的实施例中,第二类数据可以包括行为数据,其描述目标用户的一个或多个历史行为。
[0034]可以理解,动作数据通常比文本数据更加丰富,因此也更加容易获取。例如,在浏览网站时,某些用户可能仅仅进行浏览而不会发表言论。又如,一些网站可能根本不允许用户发布文本信息。此时,这些情况将会导致文本数据的不足甚至缺失。然而,描述用户在浏览网站中的浏览行为、交互动作、浏览历史等等的数据可以作为行为数据被收集和保存。这样,即便无法收集到足够的文本数据,仍然可以收集到比较丰富的行为数据。
[0035]在下文对某些实施例的描述中,将使用行为数据作为第二类数据的示例。然而应当理解,第二类数据并不限于行为数据。在某些情况下,用户的文本信息可能比行为数据更加丰富。作为示例,对于社交网站而言,这是很可能发生的情况,因为用户使用社交网站的主要目的是与其他人互动而不是简单地进行内容浏览。相应地,在一个实施例中,可以使用行为数据作为第一类数据,而使用文本数据作为第二类数据。
[0036]接下来,方法200进行到步骤S220,在此基于在步骤S210处收集的第二类数据,确定与目标用户相似的一个或多个参考用户(reference user)。作为示例,如上所述,第二类数据可以包括行为数据。在这样的实施例中,可以根据第二类数据确定目标用户的一个或多个历史行为。相应地,对于任何给定的其他用户(成为“候选用户”),可以收集该候选用户的有关动作数据,以便确定该候选用户的一个或多个历史行为。如果候选用户的历史行为与目标用户的历史行为足够接近,可以将该候选用户确定为一个参考用户。
[0037]仅出于描述之目的,现在考虑一个具体示例。假设在步骤S210处收集的目标用户的第二类数据包括涉及如下行为的数据:(1)目标用户在提供开源程序代码的网站上对一个或多个程序代码片段的下载,以及(2)目标用户对所下载的程序代码片段的评级或打分。此时,对于给定的候选用户,可以收集该候选用户的行为数据,其描述该候选用户在该网站上下载的程序代码片段。基于目标用户和候选用户的行为数据,可以二者所下载的程序代码段之间的重叠。在一个实施例中,可以将重叠的数目或者比例量化为得分,称为“下载得分”。下载得分指示了目标用户与候选用户在“下载”这一行为上的相似性。以类似方式,可以获得“评级得分”。在一个实施例中,可以对各种得分进行加权和或者加权平均之类的操作,以其结果作为目标用户与候选用户之间的相似性得分。如果该相似性得分超过预定阈值,表明目标用户与候选用户在这些行为上具有足够的相似性。由此,该候选用户可被选择为参考用户。
[0038]特别地,在步骤S220处,可以从各种不同的候选用户群中选择与目标用户相似的参考用户。在一个实施例中,部分或者全部参考用户可以从“种子用户”(seed user)中确定。在此使用的术语“种子用户”是指具有足够的第一类数据的用户。换言之,每个种子用户的第一类数据足以独立地获取或预测一个或多个用户特征。例如,在第一类数据包括文本数据的实施例中,与种子用户相关联的文本量(例如,以字符数衡量)超过预定阈值,足以预测该用户的一个或多个特征。
[0039]备选地或附加地,在一个实施例中,可以从“非种子用户”(non_seed user)中选择与目标用户相似的参考用户。在此使用的术语“非种子用户”是指单独不具备足够的第一类数据的那些用户