具体实施方式
在用于向客户端提供内容检索服务的内容检索服务系统内采用本发明的实施例。图1说明内容检索服务系统向客户端提供检索服务。客户端102一般是用户用来通过内容呈递应用(例如网络浏览器所调用的视频呈递程序)查看内容提供商系统106所提供的内容104的个人计算机或工作站。为了便于高效地查看内容,用户向显示于客户端计算机上的文本键入特征108键入包括检索词或检索短语的检索查询,并且调用针对内容相关部分所呈递的内容检索。在本发明的某些实施例中,检索查询可以可替换地由用户预定义或者针对用户预定义以便利用户检索。检索词或者短语被传输110到内容检索服务系统112并且被内容检索服务系统处理,以便返回114内容116特定部分与检索词或检索短语相关性的图形呈递。客户端计算机的用户可以通过额外的检索事务118-119针对额外的检索词或者短语进行额外的检索。
一般来说,呈递给用户的内容是这样一种内容,其不像文本文件,不能使用普遍可用的检索工具(例如文本编辑器中提供的检索设施)被容易地检索以便于找到用户尤其感兴趣的内容部分。在下面的讨论中,假设内容是具有伴音轨道的视频文件,例如新闻服务或体育服务通过因特网提供给访问用户的新闻广播或体育广播。然而,其中可以实现和采用本发明实施例的内容检索服务系统可以为各种不同类型的内容提供检索服务,服务范围从多媒体呈现到各种类型的图像、图形和音乐选择。
一般来说,内容提供商106向内容检索服务系统112提供内容项进行预处理,以便于对指向该内容项的后续客户端检索请求进行快速响应。然而,在可替换的实现中,内容检索服务系统可以并发地接收内容项和从客户端接收检索短语或检索词,处理内容项以准备检索内容,进行检索请求,以及实时地向用户呈递结果。一般来说,客户端系统不同于内容提供商系统和内容检索服务系统二者,但是内容提供商、客户端和内容检索服务有可能可以全部并发或同时在单个计算机系统或分布式计算机系统内进行执行。
图2说明内容呈递应用界面。视频显示在基于网页的视频剪辑查看界面或便携式设备图形用户界面(“GUI”)212所提供的视频屏幕210内。该设备界面或网页提供文本键入窗214,该文本键入窗214允许用户输入充当检索准则的文本,以找到期望的视频来观看、将每个检索的结果显示在结果窗216中,所述结果窗216可以通过向上滚动按钮218和向下滚动按钮220滚动,并且可以从该结果窗216选择视频进行显示。此外,进度显示222在呈递视频剪辑期间向用户显示对正被显示的视频剪辑中当前位置的指示,其中视频剪辑的整个长度由水平条224表示而视频剪辑内的当前位置由位置指示器226相对于水平条的位置来指示。在图2中,位置指示器226指示当前显示的视频帧在整个该视频剪辑的25%位置处。用户界面提供用于开始和停止视频剪辑显示的开始/停止按钮228,以及允许用户查找视频剪辑内不同位置而无需观看中间帧的快退按钮230和快进按钮232。
图3根据本发明的实施例说明添加到图2中所示内容呈递应用界面的热图检索结果显示。该热图检索结果显示可以由从内容检索服务系统下载的客户端侧检索结果呈递应用提供。图3示出图2所示视频剪辑查看界面的导航按钮和进度显示,以及额外的检索结果显示特征。快退按钮130、快进按钮132和开始/停止按钮128在该可视界面中具有与针对图2所示视频剪辑查看界面的这些界面特征所描述功能等同的功能。进度显示124和126也具有与图2所示视频剪辑查看界面的进度显示等同的功能,只是其不是如图2中那样示出简单的纯色水平条来表示视频剪辑的长度,而是在进度显示的水平条124内叠加相关性功能的热图类表示。在该热图类表示中,较深的阴影表示较大量的相关性度量或者评分。该可视界面还包括两个参数指明特征302和304,它们允许用户通过分别沿柱310和312滑动指示器按钮306和308来指明在相对于用户在检索准则键入窗316中指明的检索准则314为信息编码内的位置计算相关性度量或评分时要采用的阈值和平滑程度。在图3所示的实例中,进度显示组件的水平条124表示视频剪辑的长度,并且人们可以通过对叠加于水平条124的热图的可视检视容易地确定与当前指明检索准则相关的内容最可能在位置320、322和324找到。更简单的可视界面可以仅包括相关性功能的热图类表示,并且可以依赖于现有GUI的选择特征来输入检索准则。更复杂的可视界面可以包括额外的选择特征来允许用户指明额外的参数,所述参数控制可视界面的显示以及相关性功能的计算,包括例如主题域。当然,对于所有可视界面,存在可以用来提供对参数、检索准则和其他输入数据的用户输入的很多不同方式和类型的选择与输入特征。另外,可视界面可以支持多种方法来输入任何特定输入数据。例如,在图3所示的可视界面中,用户能够通过使用快退和快进按钮、通过移动位置指示器或者通过在将指针移动到进度显示组件水平条内一位置所表示的位置后输入鼠标点击,来选择开始或继续信息编码呈递的位置。
图4提供代表本发明一个实施例的内容检索服务系统的框图表示。内容检索服务系统(“CSS系统”)402包括检索服务组件404,其从客户端接收检索请求,并且以运行于客户端计算机上的检索结果呈递应用所呈递的检索结果进行响应。在本发明的一个实施例中,检索请求和对检索请求的响应是根据网络服务协议通过因特网在可扩展标记语言(“XML”)消息中被接收406和发送407的。检索请求包括内容标识符(“内容ID”)以及包括检索词或检索短语的检索查询。这些项均被检索服务组件404传给概念服务组件(“CS组件”)408进行处理。CS组件408向检索服务组件404返回评分的副本412或副本的评分部分,该检索服务组件404使用所述评分的副本以及可选地使用概念服务组件返回的词汇表产生在客户端计算机上呈递给用户的检索结果信息。在所描述的本发明的实施例中,评分的副本或部分评分的副本是元组的时间排序列表,每个元组包含词语或短语的指示、呈递媒体内容项期间出现该词语或短语所经过的时间,以及指示该词语或短语与CS组件所接收的检索查询相关度的评分。CS组件访问本体储存器414、提取内容数据组件416和媒体数据服务418,以便于获得本体、副本,以及CS组件对返回给检索服务组件404的副本进行评分所需的其他信息。在所描述的本发明的实施例中,本体是词语和短语的全连通图。该图的每个节点代表词语或短语,并且该图的每条边代表在收集的信息中观察到的由该边连接的节点所代表词语或短语的同现(co-occurrence)关系,所述收集的信息被分析来产生所述本体。为每条边指派一权重,该权重反映该边所代表的同现关系的强度,并且权重是从被分析来产生本体的所述收集信息得出的。本体储存器414包括例如本体422的多个本体,其描述各个主题种类的词之间的同现关系。本体还是加有日期戳或者日期/时间戳的,因为本体随着时间针对任何特定主题而改变,并且对于准备检索结果来说,日期/时间戳指示自内容项数据被检索起合理时间偏离量内日期的本体是最有用的。提取内容数据组件416为CSS系统已经预处理过的每个内容项储存一个或多个副本426。媒体数据服务418储存与每个预处理的内容项相关的信息,包括该内容项所属主题的种类,以及该内容创建或接收的日期或者日期和时间。
CSS服务还包括内容服务组件430,该内容服务组件430从远程内容提供商接收内容项,或者检索、找到并且获取内容提供商提供的内容项,并且将所述内容项供应给内容处理器组件432,该内容处理器组件432准备每个已处理内容项的一个或多个副本426并在提取内容数据组件416中储存每个已处理内容项的一个或多个副本426。内容处理器432访问储存于语言模型储存器436中的语言模型(例如语言模型434),以便于处理给定内容项。内容处理器组件432还将关于内容项的另外的信息存放在媒体内容服务组件418中。在所描述的本发明的实施例中,副本是音轨或者音频文件的基于文本的副本,这是由内容处理器组件的自动语音识别子组件进行的。在本发明的可替换实施例中,文本副本可以从其他类型的媒体内容来准备,包括内容处理器组件的计算机视觉子组件准备的静止或运动图像的描述性副本。
信息汇聚器和分类器组件440连续或者间隔地抓取因特网和文档、文本文件的其他信息源上可获得的信息,以及与内容项可以被指派的各种不同种类相关的其他信息项。信息汇聚器和分类器组件440将认为对CSS系统有用的那些信息项按种类分类,并且将每个种类和特定日期与时间范围的信息项储存到归类信息储存组件442中。这些信息项被信息汇聚器和分类器组件处理,以移除不必要信息,在语言上对词语和短语进行标准化,并且计算与信息项相关联的各个参数和值,所述各个参数和值既被信息汇聚器和分类器组件用来分类所述项又被语言模型构建器组件444和本体构建器组件446使用,所述语言模型构建器组件444和本体构建器组件446使用储存于归类信息储存组件442中的信息项来分别建立语言模型和本体。
图5根据本发明一个实施例说明本体。图5是仅包含很少项的简化本体。实际针对有用信息种类准备的本体可以包含数百、数千或者数百万个词语和短语。在图5中,六个项中的每一个由椭圆节点表示,例如椭圆节点502表示词语“蛇”。每个可能的词语对,例如词语对“蛇”502和“皮肤”504,通过两道弧线互连,例如弧线506和508将词语502和504互连。这两道弧线形成双向对,该对的一道弧线从第一词语或短语(该道弧线的源词语或源短语)指向第二词语或短语(该道弧线的目标词语或目标短语),而该对的第二道弧线从第二词语或短语指向第一词语或短语。每道弧线被标以范围[0.0,1.0]内的数值。该数值是归一化的同现度量,指示该弧线的目标词语或短语与该弧线的源词语或短语同现的频率。因此,在图5中,弧线506指示词语“蛇”以相对低的频率与词语“皮肤”同现,而词语“皮肤”以稍高的频率与词语“蛇”同现。互连两个词语或短语的双向弧线对中两道弧线的同现度量并不相等的事实,反映出所述词语或短语的不同分布以及所述词语或短语在从其准备本体的很多信息项中不同的出现次数,以及这两个词语或短语的不同标准化。回头参照图4,本体(例如图5中所示的简单本体)是由CSS系统的本体构建器组件446通过分析大量与特定种类相关并且在特定时间间隔上收集的信息项来准备的。因此,每个本体,例如图5说明的本体,是与特定信息种类相关联的,并且带有与被本体构建器组件用来建立本体的信息项被CSS系统402的信息汇聚器和分类器组件440收集时的日期或日期时间分别对应的日期戳和/或日期/时间戳。
每个本体在物理或者概念上与一词汇表相关联。该词汇表也是从CSS系统的信息汇聚器和分类器组件(图4中的440)收集的信息项准备的。在某些实施例中,一个信息种类的词汇表是由CSS系统的语言模型构建器组件(图4中的444)准备的,并且被储存在语言模型储存器(图4中的436)中。在本发明的其他实施例中,词汇表可以由本体构建器组件(图4中的446)构造并且储存在本体储存器(图4中的414)中,而在可替换的实施例中,词汇表可以由CSS另外的组件构造。
在本发明的一个实施例中,词汇表包括在与特定信息种类相关的信息项中常出现的名词或名词性短语的列表。例如,可以预期体育种类的内容项包括诸如“球棒”、“垒”、“投手”、“四分卫”“门柱”、“橄榄球”、“标枪”、“轮滑”的名词以及其他这样的名词和名词性短语。由于程序方式处理诸如字符串的符号串是效率低下的,因此在实现CSS系统的组件时,词汇表中的每个词语或短语以整数值来表示。图6根据本发明一个实施例示出种类“动物”的示例性词汇表的部分。如从图6中可以看到的,每种动物名称的字符串表示(例如字符串“食蚁兽”602)与构成信息种类“动物”的词汇表的表606中一小整数值(例如值“96”604)相关联。使用该表,字符串“短吻鳄”608通过表查找操作被容易地翻译为整数“462”610。对于任何计算处理并电子储存的数据,可以以字母表顺序和/或数字顺序对词汇表排序,并且可以额外地与索引或其他额外信息相关联,以允许在表中快速地定位和访问词语和短语。
尽管将本体表示为如图5所示包括由弧线互连的词语和短语节点的图是方便的,但是当将本体表示为m×m的阵列时,可以更容易地计算处理本体,其中m是特定词汇表中词语和短语的数量。图7根据本发明一个实施例说明本体的m×m表示。m×m阵列702包括m2个单元,每个单元(例如单元704)包含标示弧线的一个或多个同现度量,所述弧线例如图5中从第一本体节点(例如图5中的节点502)始发并指向第二本体节点(例如图5中的节点504)的弧线508。单元的行索引指示与弧线始发的第一节点对应的整数值,而单元的列索引指示该弧线指向的第二节点。单元704具有阵列索引(5,m-1),指示该单元中包括的同现度量(例如图7中的度量“0,20”706),标示从整数“5”指明的词汇表词或短语指向整数m-1指明的词汇表词或短语的弧线。
图7中所示本体的m×m表示是一种有用的抽象,但是一般来说还是计算上效率低下的。该表示效率低下的一个原因是,对于实际本体来说,低于阈值的同现度量被视为是无意义的,并且均被指派以诸如值“0.0”的最小值。因此,图7中所示m×m阵列一般是非常稀疏的。为此,并且为了便于快速访问词汇表特定词和短语的特定同现度量,通常将本体表示为列表。图8根据本发明一个实施例示出本体的列表表示。在图8中,列表802的每个元素(例如元素804)被表示为包含三个单元的行。行804的第一单元806是本体图形表示中弧线的目标的数字表示,而第二单元808是本体图形表示中弧线的源,而第三单元810包含对该弧线所标示的同现度量。列表802中仅包括具有非零度量的条目,解决了与本体m×m阵列表示相关联的稀疏问题。列表中的每个条目表示本体的单个弧线。如通过图8中条目第一单元中的值容易看出的,在图8中,条目以相对于储存于每个条目第一单元中值的升序而储存。这种组织便利了对与本体图形表示中弧线指向的特定词语或短语相关联条目的访问。在某些实施例中,可以另外相对于储存于每个条目第二单元中的值而储存,并且在再另外的实施例中,本体的列表表示可以伴随有一个或多个参考表或索引表,以便利对本体特定条目的快速访问。
在实践中,即使是图8中所示的本体列表表示也可能是稍抽象的。在本发明的一个实施例中,本体包括针对每个条目的用于计算同现度量的原始数据,而非计算出的同现度量。图9示出在本发明一个实施例中使用的本体表示的部分。该本体被表示为列表902,类似于图8中说明的列表表示。然而,取代于如图8中包括单个计算出的同现度量,在本发明一个实施例中,图9中列表的每个条目包括三个数值904-906,所述数值对储存于条目第一元素908中值所表示的词或短语在与该条目第二单元910中所储存值表示的词或短语所在大量收集并处理的信息项的相同信息项内或这些信息项的子单元或子段内出现的次数进行编码,所述大量收集并处理的信息项对应于准备该本体所针对的信息种类。
在当前的讨论中,内容项是包括音轨的视频文件。在本发明的一个实施例中,检索是由CSS系统在视频文件音轨上使用用户输入的词语和短语排他地进行的,以找到在音轨的时间点上出现的这些词语或短语或者相关的词语或短语。因此,音轨的部分可以被识别为与检索词相关并且是用户特别感兴趣的。音轨的这些部分又可以与这样的视频图像相关,在通过视频文件呈递应用向用户呈现视频文件时,所述视频图像在音轨的所述部分被呈递的时间间隔内显示。在这些实施例中,副本(图4中的426)实质上是与词语或词语短语在向用户呈递音轨期间在所述音轨中出现的时间或时间间隔相关联的词语或短语出现的列表。图10根据本发明一个实施例说明副本的一种实现。在图10中,一维阵列1002中的每个单元(例如单元1004)要么是空白的,指示在该时间间隔期间未识别出词或短语,要么包含从与内容项种类相关联的词汇表选择的词或短语的数字表示,所述副本是根据所述内容项而准备的。在副本的该实施例中,每个单元代表固定的短时间间隔,从而一维阵列1002代表呈递视频文件音轨的时间线(time line)。图11根据本发明一个实施例说明副本的替换性表示。在图11中,副本被表示为列表或二维阵列,其每个条目或者行包含指示来自词汇表的词或短语的数值(例如数值1102),以及所述词或短语在音轨中出现的相关联时间(例如时间1104),这两者均在条目1106中。很多替换性的副本表示是可能的。
图12说明代表本发明一个实施例的CSS的CS组件(图4中的408)的操作。CS组件从代表本发明一个实施例的CSS的检索服务组件(图4中的404)接收内容ID 1202和检索查询1203。该内容ID一般是数字标识符,或者字母数字串,其唯一地标识特定的内容项。CS组件使用内容ID1202来访问媒体数据服务组件(图4中的418),以获得该内容项的种类ID 1204以及该内容项的日期/时间1206。CS组件另外访问本体储存器(图4中的414),并且在某些实施例中,访问语言模型储存器(图4中的436),以便于获得该内容项适当的本体1208和词汇表1210。使用该本体和词汇表1208和1210,并且使用各种语言处理规则和例程,CS组件随后处理所接收的检索查询1203,以生成一个或多个词语或短语列表1212和1214。首先,针对拼写错误纠正检索查询,并且部分标准化该检索查询,以产生修改的检索词语或短语1216。随后处理修改的检索查询1216,以提取在内容ID 1202所标识内容项所属种类的词汇表中出现的那些词。该种类由从媒体数据服务组件获得的种类ID 1204标识。每个列表1212和1214包括检索词语或短语,以及另外如从本体1208获得的相关检索词语或短语。该列表中的每个词语或短语与从本体提取的同现度量值相关联。在图12所示的实例中,在本体中找到词语“汽油”、“汽车”、“蛇”和“皮肤”与检索词语“油”相关,并且因此把它们包括在针对检索词语“油”的列表1212中。类似地,列表1214包含检索词语“汽车”,并且另外包含相关词语“汽油”和“油”。所述相关词语或短语是从本体从其中检索查询词语或短语作为本体条目中第一值出现的那些条目(参见图8和9)获得的。一旦已经准备了列表,CS组件随后访问提取内容数据组件(图4中的416)以获得内容项的副本1218。CS组件随后使用列表1212和1214向副本1218的在该内容项所属种类的词汇表中出现的那些词语和短语指派同现度量,以产生评分的副本1220。在本发明一个实施例中,CS服务随后将评分的副本和内容ID,以及可选地将修改的检索短语1216和对词汇表的参考返回给CSS系统的检索服务组件(图4中的404)。检索服务组件随后进一步处理该评分的副本,以将检索结果呈递给用户。
图13根据本发明一个实施例说明评分的副本的一个实施例。该评分的副本为元组的列表,在图13中其每个元组以行表示,例如行1304。每个元组,例如元组1304,包括词或短语的数字表示、所述词或短语在音频副本中出现时所经过时间指示,以及针对所述词或短语计算的评分。一般来说,所述评分是从用于对该副本进行评分的本体获得的一个或多个同现度量的函数。在本发明一个实施例中,所述评分例如简单地是从本体获得的同现度量,除非针对其计算评分的词语或短语在多个列表(例如在图12的实例中的列表1212和1214两者)中出现,在这种情况下,评分可以被计算为与该词语或短语出现在的任何列表中的该词语相关联的同现度量的均值或加权均值。
图14提供了根据本发明一个实施例的CSS系统的CS组件的控制流程图。在步骤1402,CS组件接收内容ID,所述内容ID唯一地标识内容项和检索词语或短语。在步骤1404,CS组件使用内容ID来获得针对该内容ID的种类ID和日期/时间。种类ID标识内容项所属的信息种类,而日期/时间标识内容项相关联的日期或日期和时间,以使得CS组件能够找到针对所述内容项的合适本体和词汇表。在步骤1406,CS组件使用在步骤1404获得的种类和日期/时间来获得针对内容项的合适本体和词汇表。在步骤1408,CS组件通过调用例程“处理检索短语”、使用所获得的本体和词汇表来处理所接收的检索词语或检索短语。在步骤1410,CS组件又使用在步骤1404中获得的内容ID来获得该内容ID所标识的内容项的副本。然后,在步骤1412,CS组件通过调用例程“处理副本”来处理副本。最后,在步骤1414,CS组件向CSS的检索服务组件(所述CS组件在步骤1402从所述检索服务组件接收内容ID和检索短语)返回:在步骤1412中由例程“处理副本”返回的评分的副本、内容ID、可选地由步骤1408中调用的例程“处理检索短语”产生的修改的检索短语,以及在步骤1406中获得的词汇表的参考。
图15是根据本发明一个实施例、在图14的步骤1408中调用的例程“处理检索短语”的控制流程图。在步骤1502,例程“处理检索短语”接收检索短语。在步骤1504,纠正检索短语中词语的拼写,并且根据语言规则和语言例程来标准化检索短语中的词。例如,可以用单数词语替代复数词语,并且可以用根词语和短语替代从所述根词语和短语衍生的词语和短语。然后,在步骤1506,移除不能在图14的步骤1406中获得的词汇表内找到的任何词语和短语,留下从该词汇表中选择的与内容项所属信息种类相关联的一个或多个词语和短语。然后,在步骤1508-1513的条件循环中,针对在步骤1506之后剩余的词语和短语中的每个词语和短语创建相关词语列表。同样,如上文所讨论的,与每个列表中的每个词语和短语相关联的同现评分通常是从图14的步骤1406中获得的本体所获得的同现度量。
图16提供了根据本发明一个实施例、在图14的步骤1412中调用的例程“处理副本”的控制流程图。在步骤1602,创建例如如图13中所示的新的词语/时间/评分列表。然后,在步骤1604-1607的条件循环中,在该条件循环的每次迭代期间考虑图14的步骤1410中获得的副本中的每个词语,并且针对当前考虑的词语或短语将词语/时间/评分元组输入新的词语/时间/评分列表中。如上文所讨论的,针对词语或短语输入的评分通常是从本体获得的一个或多个同现度量的函数,或者当词语或短语在图15的步骤1508-1513的条件循环中准备的多个列表内出现时,评分可以被计算为词语或短语的多次出现的均值、加权均值或一些其他函数并针对该词语或短语被储存。在本发明的某些实施例中,可以在步骤1604-1607的条件循环产生词语/时间/评分元组的列表后,执行可选的另外计算。例如,在本发明的一个实施例中,可以执行步骤1610-1613的条件循环以再次考虑新创建的词语/时间/评分列表中的每个词语/时间/评分元组,以根据与该词语/时间/评分列表中的给定词语或短语在时间上相邻的词语和短语来修改每个评分。例如,副本中的特定时间间隔包含来自图15的步骤1508-1513中准备的全部或大部分列表的短语或词语的出现的事实可以指示:与该间隔中的词语和短语相关联的评分应该增加,以反映这些词语和短语与检索短语实际相关的更高概率。可以在另外经历词语/时间/评分列表时作出许多另外的考虑。最后,在步骤1614,例程“处理副本”准备的词语/时间/评分列表被返回为评分的副本。
尽管已经关于特定实施例描述了本发明,但是本发明并不打算被限于这些实施例。在本发明精神内的修改对于本领域技术人员将是显而易见的。例如,可以以任何多种不同的编程语言实现CSS系统的CS组件以在运行于很多不同类型CSS系统内不同硬件平台上的任何多种不同操作系统上执行。CS组件的实现可以根据熟悉的编程参数和特性的改变而不同,所述参数和特性包括控制结构、数据结构、模块组织和其他熟悉的参数和特性。如上文所讨论的,许多不同类型的本体和本体表示以及许多不同类型的副本和副本表示可以被CS组件的各种实施例用来准备评分的副本。在替换性实施例中,同现度量和其他数值可以具有不同的范围和表示。
出于解释的目的,前面的描述使用了特定术语来提供对本发明的全面理解。然而,将对本领域技术人员显而易见的是,实践本发明并不需要这些特定的细节。出于说明和描述的目的,给出了对本发明特定实施例的以上描述。它们不打算是穷尽的,也不打算将本发明限制到所公开的精确形式。根据以上教导,很多修改和变型是可能的。示出和描述所述实施例是为了最佳地解释本发明的原理及其实践应用,由此使得本领域技术人员能够以适于所设想的具体使用的各种修改来最佳地利用本发明和各种实施例。本发明的范围打算通过所附权利要求及其等同物来限定。