本申請為分案申請,其原申請是于2011年12月29日向中國專利局提交的專利申請,申請?zhí)枮?01110449854.4,發(fā)明名稱為“對分面搜索的動態(tài)面排序”。
背景技術:
分面搜索(facetedsearch)(即在其中基于特定于被搜索的詢問的方面或面(facet)來過濾搜索結果的搜索)作為使得對搜索結果的用戶參與度(engagement)增加的呈現(xiàn)搜索結果的方式已經得到普及。詢問的對象和/或主題通常具有大量的面,關于這些面,所述對象和/或主題可以被過濾。因此,確定關于哪些面來過濾搜索結果以使得用戶參與度最大化對于確保實現(xiàn)分面搜索的所有益處是重要的。通常,這是高度手動的處理,其中接收特定詢問,由知識工作者或者領域專家決定的各種面過濾器應用于該特定詢問的一組結果,據(jù)此將結果呈現(xiàn)給各種用戶,并監(jiān)視對結果的排列的用戶參與度?;趯τ脩魠⑴c數(shù)據(jù)的人工分析,決定單個最成功的排列并在輸入該特定詢問時將其示出給所有將來的用戶。
技術實現(xiàn)要素:
提供此發(fā)明內容以按簡化的形式引入將在以下具體實施方式中進一步描述的概念的選擇。此發(fā)明內容不意圖標識要求保護的主題的關鍵特征或者必要特征,也不意圖用作在確定要求保護的主題的范圍時的幫助。
本發(fā)明的實施例尤其涉及用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的系統(tǒng)、方法和計算機可讀介質。確定特定于特定詢問的面,并動態(tài)地產生多個面排序?;诟鞣N面排序產生多個各種搜索結果排列。在多個用戶輸入特定詢問、類似詢問或者屬于共同詢問向量的詢問時,呈現(xiàn)搜索結果排列中的各個排列,并監(jiān)視關于其的用戶參與度。為了確定要將哪個排列呈現(xiàn)給給定的用戶,考慮多個因素,包括但不限于:跨用戶大眾對每個排列的先前用戶參與度、以及是否已經在先前向該給定的用戶示出了任何的排列、以及在是的情況下的給定的用戶對于該排列的參與度的特性。每次將排列呈現(xiàn)給用戶并且監(jiān)視并記錄關于其的用戶行為時,另外的數(shù)據(jù)可用于決定下次此用戶或任何用戶輸入該特定詢問、類似詢問或者屬于共同詢問向量的詢問時要示出什么排列。即,系統(tǒng)繼續(xù)改進并且可以迅速并自動(即無需用戶交互)響應于可能導致特定排列的成功的變化的趨勢。另外,不需要決定要向輸入該特定詢問的所有用戶示出的單個排列。而是,可以將對于特定用戶或者用戶群產生高用戶參與度的排列呈現(xiàn)給那些用戶,同時可以將對于其他用戶或用戶群產生更高用戶參與度的替代排列呈現(xiàn)給那些群。
附圖說明
通過例子例示本發(fā)明,并且本發(fā)明不被限制在附圖中,在附圖中,類似的附圖標記指代類似的元件,并且在附圖中:
圖1是適合用于實現(xiàn)本發(fā)明的實施例的示例計算系統(tǒng)環(huán)境的框圖;
圖2是示出根據(jù)本發(fā)明的實施例的用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的方法的流程圖;
圖3是示出根據(jù)本發(fā)明的實施例的用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的另一方法的流程圖;
圖4是示出根據(jù)本發(fā)明的實施例的用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的另一方法的流程圖;以及
圖5是示出適合用于實現(xiàn)本發(fā)明的實施例的示例計算系統(tǒng)環(huán)境的框圖。
具體實施方式
在此具體描述本發(fā)明的主題以滿足法定要求。但是,描述本身不意圖限制此專利的范圍。而是,發(fā)明人已預期要求保護的主題也可以結合其他現(xiàn)在或將來的技術而以其他方式體現(xiàn),以包括與此文檔中描述的不同的步驟或者類似步驟的組合。此外,盡管在此可以使用措辭“步驟”和/或“塊”意指所采用的方法的不同要素,但是這些措辭不應被解釋為暗示著在此公開的各個步驟之中或之間的任何特定順序,除非以及除了明確描述各個步驟的順序時。
在此所述的技術的各個方面通常針對尤其用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的系統(tǒng)、方法和計算機可讀介質。當在此利用措辭“面”時,其是構成對象或主題的可定義的方面;在本發(fā)明的情況下,面是特定于所接收的詢問的方面。例如,如果由搜索引擎接收到包含措辭“數(shù)字相機”的詢問,則特定于該詢問的面可以包括“鏡頭”或者“數(shù)字屏幕尺寸”或者“變焦”等。類似地,如果用戶在搜索圖像,則特定于該詢問的面可以包括“肖像”或者“風景”或者“顏色”等。
根據(jù)本發(fā)明的實施例,利用面來過濾搜索結果以呈現(xiàn)給用戶。因此,不是使得響應于詢問而呈現(xiàn)隨機排序(或者根據(jù)與面無關的算法排序)的多個搜索結果,而是基于一個或多個面過濾搜索結果,然后將其呈現(xiàn)給用戶。以此方式,為用戶呈現(xiàn)屬于輸入詢問的對象或主題的特定方面的多個搜索結果,因此這可以得到對于結果的更高的用戶參與度。
根據(jù)在此的實施例,在接收到特定詢問時,確定與該特定詢問有關的面。隨后,動態(tài)地產生多個面排序,該多個面排序的每個包括與該特定詢問有關的面的至少一部分。給出可能屬于給定詢問的潛在面的可能數(shù)量以及可以對潛在的方面排序的方式的數(shù)量,取決于詢問,潛在面排序的量的范圍可以從僅幾個到數(shù)百或數(shù)千個?;谒_定的面的至少一部分過濾并基于潛在面排序中的一個或多個來排列滿足該詢問的搜索結果。這樣,可以基于各種面排序的每個產生多個搜索結果排列。
當多個用戶輸入特定詢問(或類似詢問或者屬于共同詢問向量的詢問,如以下更完整地描述的)時,呈現(xiàn)搜索結果排列的各個排列并且監(jiān)視對于其的用戶參與度??梢曰谟脩粜袨榈亩鄠€不同度量(measure)(包括但不限于停留時間、總會話時間、搜索結果選擇、翻頁量等)來監(jiān)視用戶參與度。此外,可以比較地(例如用戶是否趨向于從一個排列中選擇比另一排列更多的搜索結果)或者基于閾值(例如自從呈現(xiàn)起用戶是否已經翻過至少三頁)來測量用戶參與度。另外,可以關于特定排列為用戶行為的度量給予值。通過例子而非限制,這樣的值可以是數(shù)量上的(例如翻頁的實際計數(shù))、二進制的(例如,如果已經達到閾值,則可以給出1的值,如果未達到閾值,則可以給出0的值)或者其任意組合。
為了確定將哪個排列呈現(xiàn)給給定用戶,可以考慮多個因素,包括但不限于:跨大眾用戶對每個排列的先前用戶參與度、以及是否先前已經向給定用戶示出任何排列、以及在是的情況下的給定用戶對其參與度的特性。每次將排列呈現(xiàn)給用戶并且監(jiān)視關于其的用戶行為時,可以將屬于輸入詢問、面排序、搜索結果排列、用戶行為、對該用戶行為記錄的任何值、特定于用戶的信息(例如身份信息)等中的一個或多個的信息記錄在數(shù)據(jù)存儲裝置中。因此,每次記錄呈現(xiàn)數(shù)據(jù)時,另外的數(shù)據(jù)可用于決定下次此用戶或任何用戶輸入特定詢問(即與其基本類似的詢問或者屬于共同詢問向量的詢問)時示出什么排列。即,系統(tǒng)繼續(xù)改進并且可以迅速并自動(即無需用戶交互)對可能導致特定排列的成功的變化的趨勢做出響應,并且可以無縫地引入新的/另外的信息。另外,不需要決定要向輸入該特定詢問、類似詢問或者屬于共同詢問向量的詢問的所有用戶示出的單個排列。而是,可以將對特定用戶或者用戶群產生高用戶參與度的排列呈現(xiàn)給那些用戶,而可以將對于其他用戶或用戶群產生更高用戶參與度的替代排列呈現(xiàn)給那些用戶/群。
因而,在一個實施例中,本發(fā)明針對一個或多個計算機存儲介質,其上包含有計算機可執(zhí)行指令,所述指令在被執(zhí)行時致使計算設備執(zhí)行用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的方法。該方法包括:接收第一詢問,確定屬于該第一詢問的多個面,以及動態(tài)地產生第一面排序,該第一面排序包括屬于該第一詢問的多個面的至少第一部分。該方法還包括:以第一排列呈現(xiàn)根據(jù)該第一面排序而排列的搜索結果,監(jiān)視關于該第一排列的用戶行為的至少一個度量,以及將第一排列和關于該第一排列的用戶行為的至少一個度量的值彼此相關聯(lián)地存儲。在實施例中,該方法還可以包括:接收第二詢問,該第二詢問與該第一詢問相同或類似,或者屬于共同詢問向量,以及動態(tài)地產生第二面排序,該第二面排序包括屬于該第一詢問的多個面的至少第二部分。在這樣的實施例中,該方法還可以包括監(jiān)視關于該第二排列的用戶行為的至少一個度量,以及將該第二排列與關于該第二排列的用戶行為的至少一個度量的值彼此相關聯(lián)地存儲。
在另一方面,本發(fā)明針對一種用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的系統(tǒng)。該系統(tǒng)包括與一個或多個處理器以及一個或多個計算機存儲介質相關聯(lián)的計算設備;與計算設備耦合的數(shù)據(jù)存儲裝置;面排序組件,其動態(tài)地產生包括多個面的至少一部分的面排序,該部分屬于接收的詢問;以及排列產生組件,其將搜索結果呈現(xiàn)在基于面排序的排列中。在實施例中,該系統(tǒng)還包括監(jiān)視組件,其監(jiān)視關于第一排列和第二排列的用戶行為的至少一個度量;將關于第一排列的用戶行為的至少一個度量的值與關于第二排列的用戶行為的至少一個度量的值相比較;基于關于第一和第二排列的用戶行為的至少一個度量的值的比較確定第一和第二排列的哪個產生更高的用戶參與度;以及基于比較將產生更高用戶參與度的第一和第二排列中的一個分類為成功的排列。
在另一方面,本發(fā)明針對一個或多個計算機存儲介質,其上包含有計算機可執(zhí)行指令,該指令在被執(zhí)行時執(zhí)行用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的方法。該方法包括:接收來自用戶的第一詢問;接收與該用戶相關聯(lián)的用戶標識符;以及動態(tài)地產生第一面排序,該第一面排序包括屬于該第一詢問的多個面的至少第一部分。該方法還包括以第一排列呈現(xiàn)根據(jù)該第一面排序而排列的搜索結果;監(jiān)視關于該第一排列的用戶行為的至少一個度量;將該第一排列與關于該第一排列的用戶行為的至少一個度量的值彼此相關聯(lián)地存儲。此外,該方法包括:接收來自該用戶的第二詢問,該第二詢問與該第一詢問相同或類似,或者屬于共同詢問向量;以及基于關于該第一排列的用戶行為的至少一個度量確定該第一排列是否是成功的排列。在確定該第一排列是成功的排列時,該方法還包括響應于接收到第二詢問,將該第一排列呈現(xiàn)給用戶。在確定該第一排列是失敗的排列時,該方法還包括動態(tài)地產生第二面排序,該第二面排序包括屬于該第一詢問的多個面的至少第二部分;以及以第二排列呈現(xiàn)根據(jù)第二面排序而排列的搜索結果。
現(xiàn)在轉向圖1,例示了示出適合用于實現(xiàn)本發(fā)明的實施例的示例計算系統(tǒng)環(huán)境100的框圖。本領域普通技術人員將理解并認識到,圖1所示的計算系統(tǒng)環(huán)境100僅僅是一個合適的計算系統(tǒng)環(huán)境的例子,并且不意圖暗示對本發(fā)明的實施例的使用或功能性的范圍的任何限制。也不應該將該計算系統(tǒng)環(huán)境100解釋為具有與在此例示的任何單個模塊/組件或者模塊/組件的組合相關的依賴性或者需要。
計算系統(tǒng)環(huán)境100包括計算設備110、排列引擎112和數(shù)據(jù)存儲裝置114,它們所有經由網絡116彼此通信。網絡116可以沒有限制性地包括一個或多個局域網(lan)和/或廣域網(wan)。這樣的聯(lián)網環(huán)境在辦公室、企業(yè)范圍計算機網絡、內聯(lián)網和因特網中是常見的。因而,在此不進一步描述網絡116。
在一些實施例中,所例示的組件/模塊中的一個或多個可以實現(xiàn)為獨立的應用。在其他實施例中,所例示的組件/模塊中的一個或多個可以直接被集成在排列引擎112和/或終端用戶計算設備110的操作系統(tǒng)中。本領域普通技術人員將理解,圖1中例示的組件/模塊在特性和數(shù)量方面是示例性的,并且不應被解釋為是限制的。在此的實施例的范圍內,可以采用任意數(shù)量的組件/模塊來實現(xiàn)期望的功能性。此外,組件/模塊可以位于任意數(shù)量的服務器或者客戶端計算設備上。僅通過例子,排列引擎112可能存在于服務器、服務器簇或者與其余組件中的一個或多個遠離的計算設備上。
應該理解,在此描述的此排列以及其他排列僅僅作為例子闡述。除了或者代替所示出的那些,可以使用其他排列和要素(例如機器、接口、功能、順序以及功能的分組等),并且可以一起省略一些要素。此外,在此所述的要素中的許多是可以被實現(xiàn)為分立的或者分布的組件或者與其他組件/模塊結合以及在任何適當?shù)慕M合中和位置上的功能實體。如由一個或多個實體執(zhí)行的在此描述的各種功能可以由硬件、固件和/或軟件實行。例如,可以由執(zhí)行存儲在存儲器中的指令的處理器實行各種功能。
數(shù)據(jù)存儲裝置114被配置為存儲與動態(tài)排序并產生的分面搜索結果呈現(xiàn)相關聯(lián)的信息。在各個實施例中,沒有限制地,這樣的信息可以包括接收的搜索詢問、基于詢問的面、面排序、搜索結果排列、用戶參與度的度量、特定于特定用戶的歷史行為等。在實施例中,數(shù)據(jù)存儲裝置114被配置為對于與其相關聯(lián)地存儲的一個或多個項可搜索。本領域普通技術人員將理解并認識到,與數(shù)據(jù)存儲裝置114相關聯(lián)地存儲的信息可以是可配置的,并且可以包括與動態(tài)排序和產生的分面搜索結果呈現(xiàn)等有關的任何信息。這樣的信息的內容和量不意圖以任何方式限制本發(fā)明的實施例的范圍。此外,盡管被例示為單個的獨立組件,但是數(shù)據(jù)存儲裝置114實際上可以是多個存儲設備,例如數(shù)據(jù)庫簇,其部分可以存在于排列引擎112、計算設備110、另一外部計算設備(未示出)和/或其任意組合上。
圖1所示的計算設備110和排列引擎112的每個可以是任意類型的計算設備,比如例如以下參考圖5描述的計算設備500。僅通過例子而非限制,計算設備110和排列引擎112的每個可以是個人計算機、桌上型計算機、膝上型計算機、手持設備、移動手持機、消費電子設備等。但是,應該注意,實施例不限于實現(xiàn)在這樣的計算設備上,而是可以實現(xiàn)在其實施例的范圍內的各種不同類型的計算設備的任意上。
計算設備110和排列引擎112的組件(為了清楚而未示出),非限制性地,可以包括處理單元、內部系統(tǒng)存儲器以及用于耦合包括用于存儲信息(例如與其相關的文件和元數(shù)據(jù))的一個或多個數(shù)據(jù)庫的各種系統(tǒng)組件的適合的系統(tǒng)總線。計算設備110和排列引擎112的每個通常包括或者有權訪問各種計算機可讀介質。通過例子而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。通常,通信介質使得每個服務器能夠經由網絡、例如網絡116交換數(shù)據(jù)。更具體地,通信介質可以包含計算機可讀指令、數(shù)據(jù)結構、程序模塊或者在諸如載波或者其他傳輸機制的調制的數(shù)據(jù)信號中的其它數(shù)據(jù),并且可以包括任何信息傳遞介質。如在此使用的,措辭“調制的數(shù)據(jù)信號”指以將信息編碼到信號中這樣的方式設置或改變了其屬性中的一個或多個的信號。通過例子而非限制,通信介質包括諸如有線網絡或者直接連線的連接的有線介質以及諸如聲學、rf、紅外、和其他無線介質的無線介質。以上的任意的組合也可以被包括在計算機可讀介質的范圍內。
本領域普通技術人員將理解,計算系統(tǒng)環(huán)境100僅僅是示例性的。盡管排列引擎112和數(shù)據(jù)存儲裝置114被例示為單獨的單元,但是本領域技術人員將認識到,排列引擎112和數(shù)據(jù)存儲裝置114是可縮放的。例如,排列引擎112實際上可以包括彼此通信的多個計算設備。此外,數(shù)據(jù)存儲裝置114或者其部分可以作為計算機存儲介質被包括在例如排列引擎114和/或計算設備110內。單個單元的描繪是為了清楚性,而不是以任何方式限制實施例的范圍。
如所示,終端用戶計算設備110包括顯示屏幕118。顯示屏幕118被配置為向計算設備110的用戶顯示信息,例如與由計算設備110發(fā)起和/或接收的通信、搜索詢問、搜索結果的分面排列等有關的信息。實施例不意圖被限制為可視顯示,而是也可以包括音頻呈現(xiàn)、組合的音頻/可視呈現(xiàn)等。
如圖1所示,排列引擎112包括接收組件120、面確定組件122、面排序組件124、排列產生組件126以及監(jiān)視組件128。在一些實施例中,組件120、122、124、126以及128中的一個或多個可以實現(xiàn)為單獨的應用。在其他實施例中,組件120、122、124、126以及128中的一個或多個可以直接被集成在計算設備110的操作系統(tǒng)中。本領域普通技術人員將理解,圖1所示的組件120、122、124、126以及128在特性和數(shù)量上是示例性的并且不應被理解為限制性的。在其實施例的范圍內,可以采用任意數(shù)量的組件來實現(xiàn)期望的功能性。
接收組件120被配置為接收用戶輸入的詢問并將接收的詢問傳輸?shù)矫娲_定組件122以確定特定于接收的詢問的面,如以下更全面地描述的。接收組件120進一步被配置為接收與用戶(輸入詢問接收自該用戶)相關聯(lián)的用戶標識符。此外,接收組件120被配置為為了特定于用戶和/或接收的詢問的信息而詢問數(shù)據(jù)存儲裝置114(例如經由網絡116)。即,接收組件120被配置為為了關于與接收的用戶標識符相關聯(lián)的用戶先前是否輸入了特定詢問的信息而詢問數(shù)據(jù)存儲裝置114。用戶標識符可以確定地標識特定用戶、可以是匿名的、和/或可以將用戶標識為屬于特定用戶群,例如四十出頭并且居住在西雅圖的男性。如果與接收的用戶標識符相關聯(lián)的用戶先前已經輸入了特定詢問(或類似詢問或者屬于相同詢問向量或分組的詢問),則接下來確定搜索結果的基于面的排列是否先前已示出給用戶。本領域普通技術人員將理解和了解,在確定特定詢問是否先前由用戶輸入過時,也可以考慮與該輸入詢問類似或基本類似的詢問、以及可以考慮屬于相同詢問向量或分組的詢問。在輸入兩個詢問的每個時,可以基于多個因素認為詢問類似或者基本類似,該多個因素包括但不限于彼此一致的搜索結果的百分比。例如,如果被標識為滿足詢問a和詢問b的搜索結果至少95%重合則這兩個詢問可以被確定為彼此基本類似。如果例如兩個詢問在相同的一般主題領域并且在彼此的指定時間幀內被接收,可以認為這些詢問屬于相同的詢問向量或者分組。例如,基于用戶在相同的會話中的先前詢問(例如少于一分鐘之前)是“專業(yè)膠片”的事實,對于詢問“數(shù)字相機”可以選擇搜索結果的特定排列用于呈現(xiàn)給用戶。另外,如果存在以相同或類似樣式執(zhí)行搜索的多個用戶,則可以朝向專業(yè)使用而不是家庭使用而調整所示出的基于面的排列,因此例如要示出的兆像素的選擇可能不同。
接收組件120另外被配置為為了關于基于至少一個目標標準在當前時間是否允許呈現(xiàn)先前示出給用戶的搜索結果的基于面的排列的信息來詢問數(shù)據(jù)存儲裝置114。例如,基于先前示出的排列被呈現(xiàn)給用戶的時間以及當前時間之間的時間延遲的閾值標準可以指示自從上次為用戶呈現(xiàn)先前示出的排列已經經過了太長時間,因此先前示出的基于面的排列不將被呈現(xiàn)給用戶。通過另一例子,基于對先前示出的排列的用戶參與度的閾值標準可以指示用戶與先前示出的排列充分交互以保證隨后的時間為用戶呈現(xiàn)相同的排列。在實施例中,閾值標準可以是自動的和/或可以基于人為定義的商業(yè)考慮因素。預期任意以及所有這樣的變化及其任意組合在本發(fā)明的實施例的范圍內。
接收組件120還被配置為為了關于先前示出的基于面的排列被認為是關于特定用戶、特定用戶群和/或向其示出該特定排列的一般用戶大眾是成功還是失敗的排列的信息來詢問數(shù)據(jù)存儲裝置114?;诖诵畔?,排列產生引擎112可以或者不可以在隨后的時間向用戶呈現(xiàn)該特定排列。
面確定組件122被配置為確定屬于接收的詢問的面。在這點上,面確定組件122被配置為接收來自排列引擎112的接收組件120的輸入詢問。一旦確定了面,面排序組件124就被配置為從面確定組件122接收確定的面并動態(tài)地(即沒有用戶交互地)產生面排序,每個面排序包括屬于接收的詢問的多個面的至少一部分??紤]到可能屬于接收的詢問的潛在面的可能數(shù)量以及可以排序潛在方面的方式的數(shù)量,取決于接收的詢問,潛在的面排序的量范圍可以從僅幾個到幾百或者幾千個。
排列產生組件126被配置為產生根據(jù)由從面排序組件124接收的面排序而排序的搜索結果的排列。即,被確定為滿足該詢問的搜索結果基于由面排序組件124確定的面的至少一部分被過濾,并基于潛在面排序的一個或多個而被組織成可呈現(xiàn)的排列。在這點上,排列產生組件126被配置為從面排序組件124接收面排序并將產生的排列傳輸?shù)接脩粲嬎阍O備110(例如經由網絡116)用于與顯示屏幕118相關聯(lián)地呈現(xiàn)。
在其中先前示出的排列被確定為是可用的并被允許在當前時間示出的實施例中,如在此以上所述,排列產生組件126被配置為(經由網絡114)從數(shù)據(jù)存儲裝置114接收屬于先前示出的排列的信息并將先前示出的排列傳輸?shù)接脩粲嬎阍O備110用于與顯示屏幕118相關聯(lián)地呈現(xiàn)。
監(jiān)視組件128被配置為監(jiān)視關于各種基于面的搜索結果排列的用戶行為的至少一個度量。即,監(jiān)視組件128被配置為(例如經由網絡116從用戶計算設備110)接收用戶行為的各種度量的輸入。通過例子而非限制,用戶行為的這種度量可以包括停留時間、總會話時間、搜索結果選擇、翻頁量等。如前所述,可以比較地或者基于閾值測量用戶參與度。另外,可以關于特定排列為用戶行為的度量給予值。通過例子而非限制,這樣的值可以是數(shù)量上的、二進制的或者其任意組合。
監(jiān)視組件128還被配置為將關于各種排列的用戶行為的至少一個度量的值與關于其他排列的用戶行為的至少一個度量的值相比較。此外,監(jiān)視組件128被配置為基于關于兩個或更多個排列中的每個的用戶行為的至少一個度量的值的比較來確定兩個或更多個排列中的哪個產生更高用戶參與度,并基于比較將產生更高用戶參與度的經比較的排列之一分類為成功的排列和/或基于比較將產生最低用戶參與度的經比較的排列之一分類為失敗的排列。
參考圖2,例示了示出根據(jù)本發(fā)明的實施例用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的方法200的流程圖。如在塊210處所示,從用戶接收詢問,還接收與用戶相關聯(lián)的用戶標識符,如在塊212處所示。響應于相同或基本類似的詢問、或者屬于共同詢問向量的詢問,確定排列是否先前已被示出給用戶。這示出在塊214。如果響應于相同或基本類似的詢問(或者屬于共同詢問向量的詢問),確定排列先前未被示出給用戶,則確定屬于該詢問的多個面,如塊216處所示。動態(tài)地產生包括屬于第一詢問的多個面的至少一部分的面排序,如在塊218處所示。根據(jù)該面排序而排列的搜索結果被示出給用戶,如在塊220處所示。
返回塊214,如果響應于相同或基本類似的詢問(或者屬于共同詢問向量的詢問)確定排列先前已被示出給用戶,則確定是否已經滿足允許呈現(xiàn)先前示出的排列的至少一個閾值標準。這示出在塊222。如果基于至少一個閾值標準確定不允許呈現(xiàn)先前示出的排列,則方法前進到塊216。但是,如果確定允許呈現(xiàn)先前示出的排列,則關于一般用戶大眾、關于特定用戶群和/或特定地關于該用戶,確定先前示出的排列是否已被分類為成功的排列。這在塊224處指示。如果確定先前示出的排列是失敗的或者不成功的排列,則方法前進到塊216。但是,如果確定先前示出的排列是成功的,則將先前示出的排列呈現(xiàn)給用戶,如在塊226處所示。
現(xiàn)在轉向圖3,例示了示出根據(jù)本發(fā)明的實施例用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的方法300的流程圖。如在塊310處所示,接收詢問。接下來,如在塊312處所示,確定屬于該詢問的多個面。然后動態(tài)地產生面排序,如在塊314處所示,面排序包括被確定屬于該詢問的多個面的至少一部分。如在塊316所示,呈現(xiàn)根據(jù)面排序排列的搜索結果。監(jiān)視關于該搜索結果排列的用戶行為的至少一個度量,如塊318所示,并且該搜索結果排列與關于其的用戶行為的至少一個度量的值相關聯(lián)地存儲,如塊320所示。在另一實施例中(未示出),失敗的搜索結果排列可以被丟棄而不是被存儲。預期任何以及所有這樣的變化以及其任意組合在本發(fā)明的實施例的范圍內。
參考圖4,例示了示出根據(jù)本發(fā)明的實施例的用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的方法400的流程圖。如塊410所示,從用戶接收第一詢問。還接收與該用戶相關聯(lián)的用戶標識符,如塊412所示。動態(tài)地產生第一面排序,如塊414所示,該第一面排序包括屬于該第一詢問的多個面的至少第一部分。呈現(xiàn)根據(jù)該第一面排序的搜索結果的第一排列,如塊416所示。監(jiān)視關于該第一排列的用戶行為的至少一個度量,如塊418所示,并且該第一排列以及關于該第一排列的用戶行為的該至少一個度量的值彼此相關聯(lián)地存儲,如塊420所示。
如塊422所示,從該用戶接收與第一詢問相同、基本類似或者屬于相同詢問向量的第二詢問。在接收到該第二詢問時,基于關于該第一排列的用戶行為的至少一個度量確定該第一排列是否是成功的排列。這示出在塊424。如果確定第一排列是成功的排列,則響應于接收到該第二詢問,將該第一排列呈現(xiàn)給用戶,如塊426所示。但是,如果在塊424確定第一排列是失敗的或者不成功的排列,則動態(tài)地產生第二面排序,如塊428所示,該第二面排序包括屬于該第一詢問的多個面的至少一部分。然后將根據(jù)第二面排序而排列的搜索結果呈現(xiàn)給用戶,如塊430所示。
示例操作環(huán)境
為了提供本發(fā)明的各個方面的一般背景,以下描述第一示例操作環(huán)境(可以在其中實現(xiàn)本發(fā)明的各個方面)。特定地,參考圖5,示出了用于實現(xiàn)本發(fā)明的實施例的示例操作環(huán)境,并且概括地將其指定為計算設備500。計算設備400僅僅是適合的計算環(huán)境的一個例子,并且不意圖暗示對本發(fā)明的使用或者功能性的范圍的任何限制。也不應該將計算設備500解釋為具有與例示的組件的任意一個或組合有關的依賴性或者要求。
可以在計算機代碼或者機器可使用指令(包括由計算機或者諸如個人數(shù)據(jù)助理或者其他手持設備的其他機器執(zhí)行的諸如程序模塊的計算機可執(zhí)行指令)的一般背景中描述本發(fā)明的實施例。通常,包括例程、程序、對象、組成部分、數(shù)據(jù)結構等的程序模塊指執(zhí)行特定任務或者實現(xiàn)特定抽象數(shù)據(jù)類型的代碼。本發(fā)明的實施例可以實踐在各種系統(tǒng)配置中,包括手持設備、消費電子設備、通用計算機、更專業(yè)的計算設備等。本發(fā)明的實施例還可以實踐在分布式計算環(huán)境(其中任務由通過通信網絡鏈接的遠程處理設備執(zhí)行)中。
繼續(xù)參考圖5,計算設備500包括直接或間接耦合以下設備的總線510:存儲器512、一個或多個處理器514、一個或多個呈現(xiàn)組件516、輸入/輸出端口518、輸入/輸出組件520以及例示的電源522??偩€510表示一個或多個總線可能是什么(比如地址總線、數(shù)據(jù)總線或其組合)。盡管為了清楚用線示出圖5的各個塊,但是實際上,描繪各個組件沒有那么清楚,并且比喻性地,更準確地,線是灰的和模糊的。例如,可以考慮諸如顯示設備的呈現(xiàn)組件是i/o組件。另外,許多處理器具有存儲器。本發(fā)明人認識到這樣是本領域的特性,并且重申圖5的圖僅僅是可以與本發(fā)明的一個或多個實施例一起使用的示例計算設備的例示。沒有在如像“工作站”、“服務器”、“膝上型電腦”、“手持設備”等這樣的類別之間進行區(qū)分,因為預期所有的都在圖5的范圍內并且稱為“計算設備”。
計算設備500典型地包括各種計算機可讀介質。計算機可讀介質可以是可以由計算設備500訪問的任意可用介質,并且包括易失性和非易失性介質、可移除和不可移除介質。通過例子而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括在用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)的信息的任意方法和技術中實現(xiàn)的易失性和非易失性、可移除和不可移除介質。計算機存儲介質包括但不限于ram、rom、eeprom、閃存或者其他存儲器技術、cd-rom、數(shù)字通用盤(dvd)或其他光盤存儲、磁盒、磁帶、磁盤存儲或其他磁存儲設備、或者可以用于存儲期望的信息并且可以由計算設備500訪問的任何其他介質。通信介質典型地包含在諸如載波的調制的數(shù)據(jù)信號或其他傳輸機制中的計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),并且包括任意的信息傳遞介質。措辭“調制的數(shù)據(jù)信號”意味其特性中的一個或多個以將信息編碼到信號中的方式被設置或改變的信號。通過例子而非限制,通信介質包括諸如有線網絡或者直接連線的連接的有線介質以及諸如聲學、rf、紅外和其他無線介質的無線介質。以上的任意的組合應該也在計算機可讀介質的范圍內。
存儲器512包括易失性和/或非易失性存儲器形式的計算機存儲介質。存儲器可以是可移除的、不可移除的或其組合。示例的硬件設備包括固態(tài)存儲器、硬盤驅動器、光盤驅動器等。計算設備500包括從諸如存儲器512或者i/o組件520的各種實體讀取數(shù)據(jù)的一個或多個處理器。呈現(xiàn)組件516將數(shù)據(jù)指示呈現(xiàn)給用戶或其他設備。示例的呈現(xiàn)組件包括顯示設備、揚聲器、打印組件、振動組件等。
i/o端口518允許計算設備500邏輯地耦合到包括i/o組件520的其他設備,該其他組件的一些可能是內置的。例示的組件包括麥克風、操縱桿、游戲墊、衛(wèi)星電視天線、掃描儀、打印機、無線設備等。
可以在由移動設備執(zhí)行的諸如程序模塊的計算機可執(zhí)行指令的一般背景中描述在此所述的主題的方面。通常,程序模塊包括執(zhí)行特定任務或者實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組成部分、數(shù)據(jù)結構等。也可以在分布式計算環(huán)境(其中任務由通過通信網絡鏈接的遠程處理設備執(zhí)行)中實踐在此所述的主題的方面。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設備的本地和遠程計算機存儲介質中。
此外,盡管經常在此使用措辭服務器,但是將認識到,此措辭也可以包括客戶端、在一個或多個計算機上分布的一個或多個處理的集合、一個或多個單獨的存儲設備、一個或多個其他設備的集合、以上的一個或多個的組合等。
結論
如可見,本發(fā)明的實施例尤其提供了:除了其他系統(tǒng)、方法和計算機可讀介質之外的,用于動態(tài)地排序面以用于搜索結果呈現(xiàn)的系統(tǒng)、方法和計算機可讀介質。盡管本發(fā)明易被進行各種修改和替換構造,但是其某些例示的實施例示出在附圖中并已在以上詳細描述。但是,應該理解,不意味將本發(fā)明限制為所公開的特定形式,而是相反,意圖覆蓋落在本發(fā)明的精神和范圍內的所有的修改、替換構造以及等效物。
本領域普通技術人員將理解,在圖2的方法200、圖3的方法300以及圖4的方法400中所示的步驟的順序不意圖以任何方式限制本發(fā)明的范圍,事實上,各步驟可以在其實施例內以各種不同的順序發(fā)生。例如,盡管確定排列是否是成功在圖2和4的方法中示出為在呈現(xiàn)特定基于面的排列之前發(fā)生,但是可以使確定排列是否是成功作為先驗,使得可以在詢問運行時間跳過此步驟。預期任何以及所有這樣的變化以及其任意組合在本發(fā)明的實施例的范圍內。
已經關于特定實施例描述了本發(fā)明,各特定實施例意圖在所有方面是例示的而非限制性的。不脫離本發(fā)明的范圍的替換實施例對本發(fā)明所屬于的領域的普通技術人員將變得顯而易見。