本發(fā)明的實施例一般涉及用于響應(yīng)于查詢而向用戶提供更相關(guān)和有用的內(nèi)容的方法和系統(tǒng),并且更具體地涉及響應(yīng)于查詢而使用特有預留短語向用戶提供結(jié)果。
背景技術(shù):
由用戶執(zhí)行的Web搜索或企業(yè)搜索常常將返回與搜索的預期目標不相關(guān)的結(jié)果。例如,可能向搜尋產(chǎn)品的技術(shù)幫助的用戶呈現(xiàn)針對不相關(guān)的產(chǎn)品的結(jié)果或者該產(chǎn)品的新版本的銷售報價。在許多情況下,當用戶沒有輸入產(chǎn)品的全名或其它搜索項時,web搜索或企業(yè)搜索可能不會返回任何結(jié)果。因此,需要改進的方法和系統(tǒng),以用于向用戶提供更相關(guān)和有用的內(nèi)容。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例提供了用于響應(yīng)于查詢而向用戶提供更相關(guān)和有用的內(nèi)容的系統(tǒng)和方法。根據(jù)一個實施例,可以利用特有預留短語來改進對內(nèi)容的搜索。預留短語可以將查詢指向內(nèi)容的具體預選部分。同義詞可以被生成并且與預留短語相關(guān)聯(lián),以使得即使當查詢不包括預留短語時,同義詞也可以被用于將查詢映射到預留短語和相關(guān)聯(lián)的內(nèi)容。同義詞可以被生成和過濾,以使得同義詞僅與一個預留短語相關(guān)聯(lián),由此減少搜索歧義。
根據(jù)一個實施例,搜索字符串擴展可以包括接收預留短語的列表。列表中的每個預留短語可以與內(nèi)容相關(guān),并且每個字符串可以與內(nèi)容的一部分相關(guān)聯(lián)。每個預留短語可以根據(jù)語言特性來分類。例如,語言特性包括名詞、動詞或地點中的至少一個。
可以為列表中的每個預留短語生成同義詞的候選列表??梢酝ㄟ^去除同義詞重復、將同義詞與同義詞規(guī)則進行比較以及去除與同義詞規(guī)則匹配的同義詞來過濾同義詞的候選列表。每個同義詞可以根據(jù)相關(guān)聯(lián)的預留詞的語言特性進行分類。根據(jù)一個實施例,生成同義詞的候選列表可以包括生成預留短語中的每個預留短語的子串變體的列表。附加地或可替代地,生成同義詞的候選列表可以包括分析內(nèi)容并且確定內(nèi)容中的被用于指代預留短語中的每個預留短語的替代詞。
一旦接收到查詢字符串,就可以識別來自候選同義詞的經(jīng)過濾的列表的與查詢字符串的一部分匹配的匹配同義詞??梢躁P(guān)于查詢字符串的該部分是否與匹配同義詞的語言特性匹配做出確定。然后可以發(fā)送與匹配同義詞的預留短語相關(guān)聯(lián)的內(nèi)容的部分。
附圖說明
圖1是示出其中可以實現(xiàn)本發(fā)明的各種實施例的示例性分布式系統(tǒng)的組件的框圖。
圖2是示出由本發(fā)明的實施例提供的服務(wù)可以通過其作為云服務(wù)被提供的系統(tǒng)環(huán)境的組件的框圖。
圖3是示出其中可以實現(xiàn)本發(fā)明的實施例的示例性計算機系統(tǒng)的框圖。
圖4是示出根據(jù)本發(fā)明的一個實施例的上下文搜索系統(tǒng)的元件的框圖。
圖5是示出根據(jù)本發(fā)明的實施例的同義詞引擎的元件的附加細節(jié)的框圖。
圖6是示出根據(jù)本發(fā)明的一個實施例的用于為預留短語確定同義詞的過程的流程圖。
圖7是示出根據(jù)本發(fā)明的一個實施例的使用預留短語以及它們的同義詞對用戶查詢進行處理的附加細節(jié)的流程圖。
圖8是示出根據(jù)本發(fā)明的一個實施例的用于為預留短語確定同義詞的過程的流程圖。
具體實施方式
在以下描述中,為了解釋的目的,闡述了許多具體細節(jié)以便提供對本發(fā)明的各種實施例的透徹理解。然而,對于本領(lǐng)域技術(shù)人員將明顯的是,可以在沒有這些具體細節(jié)中的一些細節(jié)的情況下實踐本發(fā)明的實施例。在其它實例中,公知的結(jié)構(gòu)和設(shè)備以框圖的形式示出。
隨后的描述僅提供示例性的實施例,并且不是旨在限制本公開的范圍、適用性或配置。相反,示例性實施例的隨后描述將為本領(lǐng)域技術(shù)人員提供用于實現(xiàn)示例性實施例的可行描述。應(yīng)當理解,在不背離如所附權(quán)利要求中闡述的本發(fā)明的精神和范圍的情況下,可以對元件的功能和布置進行各種改變。
在以下描述中給出了具體細節(jié)以提供對實施例的透徹理解。然而,本領(lǐng)域普通技術(shù)人員將理解,可以在沒有這些具體細節(jié)的情況下實踐實施例。例如,電路、系統(tǒng)、網(wǎng)絡(luò)、過程和其它組件可以以框圖的形式被示為組件,以便不會以不必要的細節(jié)模糊實施例。在其它實例中,公知的電路、過程、算法、結(jié)構(gòu)和技術(shù)可以在沒有不必要的細節(jié)的情況下被示出,以便避免模糊實施例。
而且,應(yīng)當指出,單獨的實施例可以被描述為被描繪為流程圖表、流程圖、數(shù)據(jù)流程圖、結(jié)構(gòu)圖或框圖的過程。雖然流程圖可以將操作描述為順序的過程,但是操作中的許多操作可以被并行地或并發(fā)地執(zhí)行。此外,操作的順序可以被重新布置。過程在它的操作完成時被終止,但是可以具有未包括在附圖中的附加步驟。過程可以對應(yīng)于方法、函數(shù)、進程(procedure)、子例程、子程序等。當過程對應(yīng)于函數(shù)時,它的終止可以對應(yīng)于函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。
術(shù)語“機器可讀介質(zhì)”包括但不限于便攜式或固定存儲設(shè)備、光存儲設(shè)備、以及能夠存儲、包含或攜帶(一條或多條)指令/或數(shù)據(jù)的各種其它介質(zhì)。代碼段或機器可執(zhí)行指令可以表示進程、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類、或指令、數(shù)據(jù)結(jié)構(gòu)或程序語句的任何組合。代碼段可以通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲器內(nèi)容耦接到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可以經(jīng)由包括存儲器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)鹊娜魏魏线m的手段來傳遞、轉(zhuǎn)發(fā)或傳輸。
此外,實施例可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或其任何組合來實現(xiàn)。當用軟件、固件、中間件或微代碼來實現(xiàn)時,用于執(zhí)行必要任務(wù)的程序代碼或代碼段可以被存儲在機器可讀介質(zhì)中。(一個或多個)處理器可以執(zhí)行必要任務(wù)。
網(wǎng)站、互聯(lián)網(wǎng)門戶、內(nèi)聯(lián)網(wǎng)等可以具有允許用戶輸入查詢的搜索能力。可以包括與產(chǎn)品、產(chǎn)品名稱或其它查詢項相關(guān)的問題的查詢可以被處理并且與現(xiàn)有內(nèi)容進行比較,以向用戶提供與查詢相關(guān)的信息或者到信息的鏈接。
例如,搜索功能可以被包括在計算機產(chǎn)品制造商的網(wǎng)站上。搜索功能可以是允許用戶輸入查詢項的文本輸入框。查詢項可以包括關(guān)于制造商的產(chǎn)品的問題、對關(guān)于與產(chǎn)品相關(guān)的技術(shù)問題的更多信息的請求,等等。查詢可以被處理,以向用戶返回與查詢項相關(guān)的來自網(wǎng)站的內(nèi)容或到內(nèi)容的鏈接。
在一些實施例中,查詢項可以與網(wǎng)站或內(nèi)容管理系統(tǒng)中的詞或文本進行比較。查詢可以返回與查詢的詞匹配的內(nèi)容的部分。搜索系統(tǒng)可以具有用于基于搜索結(jié)果的期望精度將搜索項與內(nèi)容文本匹配的不同方法。在一些情況下,內(nèi)容以及查詢的語言分析可以被用于提高結(jié)果的精度。
在一些情況下,可以使用查詢詞和內(nèi)容的直接匹配。在一些情況下,僅用戶輸入的確切項與內(nèi)容文本匹配。搜索系統(tǒng)可以僅返回與查詢項完全匹配的結(jié)果。雖然直接匹配可以提供良好的精度,但是它對許多應(yīng)用來說可能是不夠的。用戶可以輸入嵌有在內(nèi)容中使用的詞或短語的完整句子或問題。用戶可以輸入在內(nèi)容中使用的詞的變體。由于字的小變化,可能不向用戶呈現(xiàn)任何結(jié)果。例如,制造商的網(wǎng)站可以包括關(guān)于制造商的產(chǎn)品的信息。網(wǎng)站上的產(chǎn)品的官方名稱可以包括諸如“Computec X 1000”和“Computec V”之類的名稱??赡茌斎刖哂许棥癢here can I buy the ComputecX”的查詢的用戶可能不會接收到任何結(jié)果。
在一些其它情況下,可以使用子串搜索。在一些情況下,輸入的查詢項的變體或子串可以與內(nèi)容文本的子串匹配。子串搜索可以提供較低的精度并且可以返回更多的結(jié)果。在許多情況下,子串搜索可能返回不相關(guān)的結(jié)果。繼續(xù)上面的示例,如果用戶輸入具有項“Computec 1000”的查詢,則系統(tǒng)可能嘗試將內(nèi)容與子串“Computec”和“1000”匹配,這可以匹配用于兩個產(chǎn)品“Computec X 1000”和“Computec V”的字符串。
取得來自用戶的輸入的搜索系統(tǒng)應(yīng)當將返回結(jié)果的精度與返回結(jié)果的數(shù)量進行平衡。直接搜索項映射可能導致查詢結(jié)果太少并且可能錯過常見的變體,而子串搜索可能導致涉及不相關(guān)的產(chǎn)品或概念的太多結(jié)果。
給出了在精度和不相關(guān)結(jié)果的數(shù)量之間提供平衡的搜索系統(tǒng)。在實施例中,搜索系統(tǒng)接收可以與內(nèi)容的具體部分相關(guān)聯(lián)的預留短語(諸如產(chǎn)品名稱)的列表。搜索系統(tǒng)可以為與內(nèi)容相關(guān)的預留短語的列表中的每個詞生成同義詞的列表。用于每個預留短語的同義詞可以相互比較,以去除任何重復。在去除重復之后,每個預留關(guān)鍵字將與特有的同義詞相關(guān)聯(lián)。同義詞可以與用戶輸入的查詢文本在上下文中匹配。匹配的查詢文本可以被轉(zhuǎn)換成每個匹配的同義詞的相關(guān)聯(lián)的預留短語,并且與預留短語相關(guān)的內(nèi)容可以被返回給用戶。
系統(tǒng)可以接收預留短語的列表。預留短語的列表可以是與網(wǎng)站或其它搜索內(nèi)容相關(guān)的重要項(term)、產(chǎn)品、地點等的列表。例如,預留短語的列表可以對應(yīng)于制造商網(wǎng)站上列出的產(chǎn)品。預留短語的列表可以由用戶手動確定。在一些實施例中,預留短語的列表可以通過掃描網(wǎng)站或其它內(nèi)容來自動確定。預留短語的列表可以通過確定詞在內(nèi)容中的頻率來識別。不是常見詞但是在內(nèi)容中具有高出現(xiàn)頻率的詞可以被選為預留短語。
預留短語的列表可以包括在內(nèi)容中找到的詞。預留短語的列表可以對應(yīng)于內(nèi)容的一個或多個具體部分。例如,對于計算機產(chǎn)品制造商的網(wǎng)站,預留短語的列表可以包括產(chǎn)品名稱。制造商的網(wǎng)站可以包括用于每個產(chǎn)品的網(wǎng)頁、文檔等,并且可以與每個產(chǎn)品名稱相關(guān)聯(lián)。
預留短語的列表可以被處理,以識別可以與每個預留詞相關(guān)聯(lián)的可能的替代項或同義詞。每個預留短語可以與附加的同義詞相關(guān)聯(lián)。對于每個預留詞,同義詞可以由用戶手動地和/或由系統(tǒng)自動地識別并且與預留短語相關(guān)聯(lián)。用戶可以為每個預留詞輸入或提供常用詞或替代詞的列表。
在一些實施例中,系統(tǒng)可以為預留短語中的每個預留短語自動生成子串變體。在一些情況下,每個預留短語的比兩個或三個字母長的所有可能的子串可以被用作同義詞并且與預留詞相關(guān)聯(lián)。在一些實施例中,可以定義用于生成子串同義詞的附加規(guī)則。例如,在一些情況下,可以生成從預留短語中去除數(shù)字的子串。在產(chǎn)品名稱的情況下,用戶可能發(fā)現(xiàn)難以記住數(shù)字并且可能僅通過其第一組詞或第一組數(shù)字來指代產(chǎn)品。預留的產(chǎn)品名稱“Computec X 1000”例如可以被處理以在標記化(tokenization)之后生成諸如“Computec X”、“Computec”和“Computec 1000”之類的同義詞。
用于基于預留短語的子串定義同義詞的許多不同的規(guī)則和方法可以被使用并且可以依賴于上下文、應(yīng)用和其它設(shè)置。
在一些實施例中,系統(tǒng)可以掃描其它內(nèi)部或外部內(nèi)容,以確定與預留短語相關(guān)聯(lián)的替代詞。附加的網(wǎng)站(諸如博客、評論網(wǎng)站、在線論壇等)可以被掃描和分析,以確定與預留短語一起使用或相關(guān)聯(lián)的替代詞。
在一些實施例中,可以用語音的一部分或其它類別來注釋預留短語??梢灾甘绢A留短語是名詞、產(chǎn)品、地點還是動詞等的標識符可以與每個預留短語相關(guān)聯(lián)。為每個預留短語識別的同義詞可以繼承預留詞的所指定的語音的部分或其它類別。
在實施例中,與每個預留短語相關(guān)聯(lián)的同義詞的列表可以被比較或分析,以去除重復。被發(fā)現(xiàn)與多于一個預留短語相關(guān)聯(lián)的同義詞可以被去除,以使得每個同義詞僅與一個預留詞相關(guān)聯(lián)??梢酝ㄟ^各種搜索和匹配算法來去除重復。
預留短語的列表可以被分類為語音的不同部分或其它分組。例如,一些預留短語可以被分類為名詞,而其它被分類為動詞。在一些實施例中,如果同義詞的重復與來自不同組的預留短語相關(guān)聯(lián),則同義詞的重復可以保持原樣。例如,預留短語“bicycling”可以具有同義詞“bike”。另一個預留詞“bicycle”可以具有相同的同義詞“bike”。由于bicycling是動詞,而bicycle是名詞,因此兩個同義詞“bike”可以在每個預留詞的同義詞列表中保持原樣。
在又一個實施例中,當識別出同義詞重復時,可以將所有同義詞一起去除,以避免引起召回問題的歧義。在一些實施例中,除了同義詞的一個副本之外的所有副本都可以被去除,以使得僅一個預留短語與該同義詞相關(guān)聯(lián)。在一個實施例中,與排名最高的預留短語相關(guān)聯(lián)的重復同義詞可以保持原樣并且所有其它的重復同義詞被去除。預留短語可以基于一個或多個因素(諸如它們在內(nèi)容中出現(xiàn)的次數(shù))來排名。預留短語出現(xiàn)得越頻繁,預留短語的排名可能越高。在一些實施例中,可以將重復同義詞與它們相關(guān)聯(lián)的預留短語進行比較。同義詞與預留短語的相似度可以基于編輯距離或其它度量來計算。在一個實施例中,編輯距離可以每字符地應(yīng)用,而在另一個實施例中,它可以每標記(token)地應(yīng)用。
同義詞的列表可以由可以去除更多同義詞的附加詞過濾器進行處理。詞過濾器可以去除例如小于2或3個字符的同義詞。詞過濾器可以包括用于過濾的過濾字典或詞列表。過濾字典可以包括冒犯的詞、競爭對手的產(chǎn)品名稱等。
預留短語的列表和同義詞的列表可以被用于處理來自用戶的查詢請求。當用戶提交查詢字符串時,該字符串可以被分析,以確定一個或多個預留短語或同義詞是否與查詢的部分匹配。在一些實施例中,同義詞、預留短語和查詢字符串之間的匹配可以包括分析和匹配語音的部分或其它語言特性。查詢字符串的詞可以被分析,以確定它們的上下文并且識別詞是否被用作名詞、動詞、地點等。僅當語音的部分和其它分組匹配時,查詢字符串中的詞才可以與同義詞和/或預留短語匹配。查詢字符串中與預留短語或同義詞不匹配的詞也可以由搜索系統(tǒng)使用。即,查詢可以是復雜的并且可以包含比僅預留短語更多的信息,并且這種信息也可以與獲得良好的搜索結(jié)果相關(guān)。
如果查詢字符串的一部分與預留短語中的一個預留短語匹配,則可以對包括匹配的預留詞的內(nèi)容執(zhí)行搜索。如果查詢字符串的一部分與同義詞中的一個同義詞匹配,則可以對包括相關(guān)聯(lián)的預留短語的內(nèi)容執(zhí)行搜索。在一些情況下,每個預留短語可以與某個主題一起被索引或映射到內(nèi)容的具體部分。當用戶輸入包括預留短語或它的同義詞中的一個同義詞的查詢字符串時,加索引的內(nèi)容或到內(nèi)容的鏈接可以在查詢與主題匹配時被呈現(xiàn)給用戶。如果用戶輸入查詢項“my Computec X 1000is broken”,主題是關(guān)于某物被損壞,匹配的產(chǎn)品是“Computec X 1000”,則可以向用戶呈現(xiàn)關(guān)于如何處理被損壞的“Computec X 1000”的內(nèi)容。
在實施例中,用于每個預留短語的同義詞列表可以被連續(xù)地和/或周期性地更新。當向預留短語的列表添加新的預留短語或從預留短語的列表中去除預留短語時,可以重新計算用于每個預留短語的同義詞列表。當添加新的預留短語時,用于新的預留短語的同義詞可以被確定并且可以與現(xiàn)有的詞列表進行比較,以去除重復的同義詞。當預留短語從以前可能重復的同義詞的列表中被去除時,可以被添加到剩余預留短語中的一些剩余預留短語的同義詞的列表中。
在一些實施例中,可以記錄用戶的查詢字符串中的詞。查詢字符串中與內(nèi)容中的任何項都不匹配或沒有向用戶返回結(jié)果的詞可以被記錄和保存。系統(tǒng)可以監(jiān)視沒有返回結(jié)果的特定詞被用戶輸入了多少次。不匹配的詞和它們的頻率的列表可以被提供給管理員以供考慮。操作人員可以選擇不匹配的詞中的一個或多個,并且將它們添加到預留詞的同義詞的列表。在一些實施例中,當用戶的查詢字符串中的特定詞不匹配超過預定閾值時,可以觸發(fā)管理員警報。在一些情況下,當詞不匹配超過5次或10次時,可以導致管理員通知,諸如電子郵件或警報。下面將參考附圖描述本發(fā)明的實施例的各種附加細節(jié)。
圖1是示出其中可以實現(xiàn)本發(fā)明的各種實施例的示例性分布式系統(tǒng)的組件的框圖。在所示的實施例中,分布式系統(tǒng)100包括一個或多個客戶端計算設(shè)備102、104、106和108,該一個或多個客戶端計算設(shè)備被配置為經(jīng)一個或多個網(wǎng)絡(luò)110執(zhí)行和操作客戶端應(yīng)用,諸如web瀏覽器、專有客戶端(例如,Oracle Forms)等。服務(wù)器112可以經(jīng)由網(wǎng)絡(luò)110與遠程客戶端計算設(shè)備102、104、106和108可通信地耦接。
在各種實施例中,服務(wù)器112可以適于運行由系統(tǒng)的組件中的一個或多個組件提供的一個或多個服務(wù)或軟件應(yīng)用。在一些實施例中,這些服務(wù)可以作為基于web的服務(wù)或云服務(wù)或者在軟件即服務(wù)(Software as a Service,SaaS)模型下被提供給客戶端計算設(shè)備102、104、106和/或108的用戶。操作客戶端計算設(shè)備102、104、106和/或108的用戶又可以利用一個或多個客戶端應(yīng)用與服務(wù)器112交互,以利用由這些組件提供的服務(wù)。
在該圖中繪出的配置中,系統(tǒng)100的軟件組件118、120和122被示為在服務(wù)器112上實現(xiàn)。在其它實施例中,系統(tǒng)100的組件中的一個或多個組件和/或由這些組件提供的服務(wù)還可以由客戶端計算設(shè)備102、104、106和/或108中的一個或多個客戶端計算設(shè)備來實現(xiàn)。操作客戶端計算設(shè)備的用戶然后可以利用一個或多個客戶端應(yīng)用來使用由這些組件提供的服務(wù)。這些組件可以用硬件、固件、軟件或其組合來實現(xiàn)。應(yīng)當理解,可以不同于分布式系統(tǒng)100的各種不同的系統(tǒng)配置是可能的。因此,在該圖中示出的實施例是用于實現(xiàn)實施例系統(tǒng)的分布式系統(tǒng)的一個示例,并且不是旨在是限制性的。
客戶端計算設(shè)備102、104、106和/或108可以是運行諸如Microsoft Windows之類的軟件和/或各種移動操作系統(tǒng)(諸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)并且啟用互聯(lián)網(wǎng)、電子郵件、短消息服務(wù)(SMS)、或其它通信協(xié)議的便攜式手持設(shè)備(例如,蜂窩電話、計算平板、個人數(shù)字助理(PDA))或可穿戴設(shè)備(例如,Google頭戴式顯示器)。客戶端計算設(shè)備可以是通用個人計算機,作為示例包括,運行各種版本的MicrosoftApple和/或Linux操作系統(tǒng)的個人計算機和/或筆記本計算機。客戶端計算設(shè)備可以是運行包括但不限于各種GNU/Linux操作系統(tǒng)(諸如像Google Chrome OS)的各種商用或類UNIX操作系統(tǒng)中的任何操作系統(tǒng)的工作站計算機。可替代地或附加地,客戶端計算設(shè)備102、104、106和108可以是能夠經(jīng)(一個或多個)網(wǎng)絡(luò)110通信的任何其它電子設(shè)備,諸如瘦客戶端計算機、啟用互聯(lián)網(wǎng)的游戲系統(tǒng)(例如,具有或不具有姿勢輸入設(shè)備的Microsoft Xbox游戲機)和/或個人消息傳送設(shè)備。
雖然示例性分布式系統(tǒng)100被示為具有四個客戶端計算設(shè)備,但是任何數(shù)量的客戶端計算設(shè)備可以被支持。諸如具有傳感器的設(shè)備等之類的其它設(shè)備可以與服務(wù)器112交互。
在分布式系統(tǒng)100中的(一個或多個)網(wǎng)絡(luò)110可以是對于本領(lǐng)域技術(shù)人員來說熟悉的、可以支持利用各種商用協(xié)議中的任何商用協(xié)議的數(shù)據(jù)通信的任何類型的網(wǎng)絡(luò),這些商用協(xié)議包括但不限于TCP/IP(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)、SNA(系統(tǒng)網(wǎng)絡(luò)架構(gòu))、IPX(互聯(lián)網(wǎng)分組交換)、AppleTalk等。僅僅作為示例,(一個或多個)網(wǎng)絡(luò)110可以是局域網(wǎng)(LAN),諸如基于以太網(wǎng)、令牌環(huán)等的局域網(wǎng)。(一個或多個)網(wǎng)絡(luò)110可以是廣域網(wǎng)和互聯(lián)網(wǎng)。它可以包括虛擬網(wǎng)絡(luò),該虛擬網(wǎng)絡(luò)包括但不限于虛擬專用網(wǎng)(VPN)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、公共交換電話網(wǎng)(PSTN)、紅外網(wǎng)絡(luò)、無線網(wǎng)絡(luò)(例如,在電氣和電子協(xié)會(IEEE)802.11協(xié)議套件、和/或任何其它無線協(xié)議中的任何協(xié)議下操作的網(wǎng)絡(luò));和/或這些網(wǎng)絡(luò)和/或其它網(wǎng)絡(luò)的任何組合。
服務(wù)器112可以包括一個或多個通用計算機、專用服務(wù)器計算機(作為示例,包括PC(個人計算機)服務(wù)器、服務(wù)器、中型服務(wù)器、大型計算機、機架式服務(wù)器等)、服務(wù)器場、服務(wù)器集群或者任何其它適當?shù)牟贾煤?或組合。在各種實施例中,服務(wù)器112可以適于運行上述公開內(nèi)容中描述的一個或多個服務(wù)或軟件應(yīng)用。例如,服務(wù)器112可以對應(yīng)于用于執(zhí)行上文描述的根據(jù)本公開的實施例的處理的服務(wù)器。
服務(wù)器112可以運行操作系統(tǒng),包括上文討論的操作系統(tǒng)中的任何操作系統(tǒng),以及任何商用的服務(wù)器操作系統(tǒng)。服務(wù)器112還可以運行各種附加的服務(wù)器應(yīng)用和/或中間層應(yīng)用中的任何服務(wù)器應(yīng)用和/或中間層應(yīng)用,這些服務(wù)器應(yīng)用和/或中間層應(yīng)用包括HTTP(超文本傳輸協(xié)議)服務(wù)器、FTP(文件傳輸協(xié)議)服務(wù)器、CGI(公共網(wǎng)關(guān)接口)服務(wù)器、服務(wù)器、數(shù)據(jù)庫服務(wù)器等。示例性數(shù)據(jù)庫服務(wù)器包括但不限于來自O(shè)racle、Microsoft、Sybase、IBM(國際商業(yè)機器公司)等的商用數(shù)據(jù)庫服務(wù)器。
在一些實施方式中,服務(wù)器112可以包括用于分析和整合從客戶端計算設(shè)備102、104、106和108的用戶接收到的數(shù)據(jù)饋送和/或事件更新的一個或多個應(yīng)用。作為示例,數(shù)據(jù)饋送和/或事件更新可以包括但不限于饋送、更新或者從一個或多個第三方信息源和連續(xù)數(shù)據(jù)流接收到的實時更新,該一個或多個第三方信息源和連續(xù)數(shù)據(jù)流可以包括與傳感器數(shù)據(jù)應(yīng)用、金融報價機、網(wǎng)絡(luò)性能測量工具(例如,網(wǎng)絡(luò)監(jiān)視和業(yè)務(wù)管理應(yīng)用)、點擊流分析工具、汽車交通監(jiān)視等相關(guān)的實時事件。服務(wù)器112還可以包括經(jīng)由客戶端計算設(shè)備102、104、106和108的一個或多個顯示設(shè)備顯示數(shù)據(jù)饋送和/或?qū)崟r事件的一個或多個應(yīng)用。
分布式系統(tǒng)100還可以包括一個或多個數(shù)據(jù)庫114和116。數(shù)據(jù)庫114和116可以駐留在各種位置中。作為示例,數(shù)據(jù)庫114和116中的一個或多個可以駐留在服務(wù)器112本地(和/或駐留在服務(wù)器112中)的非暫態(tài)存儲介質(zhì)上??商娲兀瑪?shù)據(jù)庫114和116可以遠離服務(wù)器112,并且經(jīng)由基于網(wǎng)絡(luò)的或?qū)S玫倪B接與服務(wù)器112進行通信。在一組實施例中,數(shù)據(jù)庫114和116可以駐留在存儲區(qū)域網(wǎng)絡(luò)(SAN)中。類似地,用于執(zhí)行屬于服務(wù)器112的功能的任何必要的文件可以適當?shù)乇淮鎯υ诜?wù)器112本地和/或遠程存儲。在一組實施例中,數(shù)據(jù)庫114和116可以包括適于響應(yīng)于SQL格式的命令來存儲、更新和檢索數(shù)據(jù)的關(guān)系數(shù)據(jù)庫,諸如由提供的數(shù)據(jù)庫。
圖2是示出由本發(fā)明的實施例提供的服務(wù)可以通過其被提供為云服務(wù)的系統(tǒng)環(huán)境的組件的框圖。在所示的實施例中,系統(tǒng)環(huán)境200包括可以由用戶使用以與提供云服務(wù)的云基礎(chǔ)設(shè)施系統(tǒng)202交互的一個或多個客戶端計算設(shè)備204、206和208??蛻舳擞嬎阍O(shè)備可以被配置為操作可以由客戶端計算設(shè)備的用戶使用以與云基礎(chǔ)設(shè)施系統(tǒng)202交互、以便使用由云基礎(chǔ)設(shè)施系統(tǒng)202提供的服務(wù)的客戶端應(yīng)用,諸如web瀏覽器、專有客戶端應(yīng)用(例如,F(xiàn)orms)或一些其它應(yīng)用。
應(yīng)當理解,在該圖中繪出的云基礎(chǔ)設(shè)施系統(tǒng)202可以具有除了所繪出的組件之外的其它組件。此外,在該圖中示出的實施例僅是可以結(jié)合本發(fā)明的實施例的云基礎(chǔ)設(shè)施系統(tǒng)的一個示例。在一些其它實施例中,云基礎(chǔ)設(shè)施系統(tǒng)202可以具有比在該圖中示出的更多或更少的組件、可以組合兩個或更多個組件、或者可以具有不同的組件配置或布置。
客戶端計算設(shè)備204、206和208可以是類似于對于102、104、106和108上文描述的設(shè)備。
雖然示例性系統(tǒng)環(huán)境200被示為具有三個客戶端計算設(shè)備,但是任何數(shù)量的客戶端計算設(shè)備可以被支持。諸如具有傳感器的設(shè)備等之類的其它設(shè)備可以與云基礎(chǔ)設(shè)施系統(tǒng)202交互。
(一個或多個)網(wǎng)絡(luò)210可以便于客戶端204、206和208與云基礎(chǔ)設(shè)施系統(tǒng)202之間的通信和數(shù)據(jù)交換。每個網(wǎng)絡(luò)可以是對于本領(lǐng)域技術(shù)人員來說熟悉的、可以支持利用各種商用協(xié)議中的任何商用協(xié)議的數(shù)據(jù)通信的任何類型的網(wǎng)絡(luò),包括對于(一個或多個)網(wǎng)絡(luò)110上文描述的網(wǎng)絡(luò)。
云基礎(chǔ)設(shè)施系統(tǒng)202可以包括一個或多個計算機和/或服務(wù)器,該一個或多個計算機和/或服務(wù)器可以包括對于服務(wù)器112上文描述的服務(wù)器。
在某些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)提供的服務(wù)可以包括云基礎(chǔ)設(shè)施系統(tǒng)的用戶按需可用的許多(a host of)服務(wù),諸如在線數(shù)據(jù)存儲和備份解決方案、基于Web的電子郵件服務(wù)、托管的辦公套件和文檔協(xié)作服務(wù)、數(shù)據(jù)庫處理、受管理的技術(shù)支持服務(wù)等。由云基礎(chǔ)設(shè)施系統(tǒng)提供的服務(wù)可以動態(tài)地縮放,以滿足它的用戶的需求。由云基礎(chǔ)設(shè)施系統(tǒng)提供的服務(wù)的具體實例化在本文中被稱為“服務(wù)實例”。一般而言,來自云服務(wù)提供商的系統(tǒng)的、經(jīng)由諸如互聯(lián)網(wǎng)之類的通信網(wǎng)絡(luò)對用戶可用的任何服務(wù)被稱為“云服務(wù)”。通常,在公共云環(huán)境中,構(gòu)成云服務(wù)提供商的系統(tǒng)的服務(wù)器和系統(tǒng)與客戶自己本地的服務(wù)器和系統(tǒng)不同。例如,云服務(wù)提供商的系統(tǒng)可以托管應(yīng)用,并且用戶可以經(jīng)由諸如互聯(lián)網(wǎng)之類的通信網(wǎng)絡(luò)按需訂購和使用應(yīng)用。
在一些示例中,計算機網(wǎng)絡(luò)云基礎(chǔ)設(shè)施中的服務(wù)可以包括對存儲裝置、托管的數(shù)據(jù)庫、托管的web服務(wù)器、軟件應(yīng)用的受保護的計算機網(wǎng)絡(luò)訪問,或由云供應(yīng)商提供給用戶的其它服務(wù),或者如以其它方式在本領(lǐng)域中已知的服務(wù)。例如,服務(wù)可以包括通過互聯(lián)網(wǎng)對云上的遠程存儲裝置的受密碼保護的訪問。作為另一個示例,服務(wù)可以包括用于由聯(lián)網(wǎng)的開發(fā)人員私人使用的基于web服務(wù)的托管的關(guān)系數(shù)據(jù)庫和腳本語言中間件引擎。作為另一個示例,服務(wù)可以包括對在云供應(yīng)商的網(wǎng)站上托管的電子郵件軟件應(yīng)用的訪問。
在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)202可以包括以自助服務(wù)、基于訂閱、彈性可擴展、可靠、高度可用并且安全的方式交付給客戶的一套應(yīng)用、中間件和數(shù)據(jù)庫服務(wù)提供物(offering)。這樣的云基礎(chǔ)設(shè)施系統(tǒng)的示例是由本受讓人提供的公共云。
在各種實施例中,云基礎(chǔ)設(shè)施系統(tǒng)202可以適于自動供應(yīng)、管理和跟蹤客戶對由云基礎(chǔ)設(shè)施系統(tǒng)202提供的服務(wù)的訂閱。云基礎(chǔ)設(shè)施系統(tǒng)202可以經(jīng)由不同的部署模型來提供云服務(wù)。例如,服務(wù)可以在公共云模型下被提供,在該公共云模型中云基礎(chǔ)設(shè)施系統(tǒng)202由銷售云服務(wù)的組織擁有(例如,由Oracle擁有)并且服務(wù)對一般公眾和不同行業(yè)企業(yè)可用。作為另一個示例,服務(wù)可以在私有云模型下被提供,在該私有云模型中云基礎(chǔ)設(shè)施系統(tǒng)202僅為單個組織操作并且可以為該組織內(nèi)的一個或多個實體提供服務(wù)。云服務(wù)還可以在社區(qū)云模型下被提供,在該社區(qū)云模型中云基礎(chǔ)設(shè)施系統(tǒng)202和由云基礎(chǔ)設(shè)施系統(tǒng)202提供的服務(wù)由相關(guān)社區(qū)中的若干組織共享。云服務(wù)還可以在混合云模型下被提供,該混合云模型是兩種或更多種不同模型的組合。
在一些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)202提供的服務(wù)可以包括在軟件即服務(wù)(SaaS)類別、平臺即服務(wù)(PaaS)類別、基礎(chǔ)設(shè)施即服務(wù)(IaaS)類別、或包括混合服務(wù)的其它服務(wù)類別下提供的一個或多個服務(wù)。客戶經(jīng)由訂閱訂單可以訂購由云基礎(chǔ)設(shè)施系統(tǒng)202提供的一個或多個服務(wù)。云基礎(chǔ)設(shè)施系統(tǒng)202然后執(zhí)行處理,以提供客戶的訂閱訂單中的服務(wù)。
在一些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)202提供的服務(wù)可以包括但不限于應(yīng)用服務(wù)、平臺服務(wù)和基礎(chǔ)設(shè)施服務(wù)。在一些示例中,應(yīng)用服務(wù)可以由云基礎(chǔ)設(shè)施系統(tǒng)經(jīng)由SaaS平臺提供。SaaS平臺可以被配置為提供落入SaaS類別下的云服務(wù)。例如,SaaS平臺可以提供在集成的開發(fā)和部署平臺上構(gòu)建和交付按需應(yīng)用套件的能力。SaaS平臺可以管理和控制用于提供SaaS服務(wù)的底層軟件和基礎(chǔ)設(shè)施。通過利用由SaaS平臺提供的服務(wù),客戶可以利用在云基礎(chǔ)設(shè)施系統(tǒng)上執(zhí)行的應(yīng)用??蛻艨梢垣@取應(yīng)用服務(wù),而無需客戶購買分開的許可和支持??梢蕴峁└鞣N不同的SaaS服務(wù)。示例包括但不限于為大型組織提供用于銷售業(yè)績管理、企業(yè)集成和業(yè)務(wù)靈活性的解決方案的服務(wù)。
在一些實施例中,平臺服務(wù)可以由云基礎(chǔ)設(shè)施系統(tǒng)經(jīng)由PaaS平臺提供。PaaS平臺可以被配置為提供落入PaaS類別下的云服務(wù)。平臺服務(wù)的示例可以包括但不限于使得組織(諸如Oracle)能夠在共享的公共架構(gòu)上整合現(xiàn)有應(yīng)用,以及利用由平臺提供的共享服務(wù)來構(gòu)建新應(yīng)用的能力的服務(wù)。PaaS平臺可以管理和控制用于提供PaaS服務(wù)的底層軟件和基礎(chǔ)設(shè)施??蛻艨梢垣@得由云基礎(chǔ)設(shè)施系統(tǒng)提供的PaaS服務(wù),而無需客戶購買分開的許可和支持。平臺服務(wù)的示例包括但不限于Oracle Java云服務(wù)(Oracle Java Cloud Service,JCS)、Oracle數(shù)據(jù)云服務(wù)(Oracle Database Cloud Service,DBCS)以及其它服務(wù)。
通過利用由PaaS平臺提供的服務(wù),客戶可以采用由云基礎(chǔ)設(shè)施系統(tǒng)支持的編程語言和工具,并且還可以控制所部署的服務(wù)。在一些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)提供的平臺服務(wù)可以包括數(shù)據(jù)庫云服務(wù)、中間件云服務(wù)(例如,Oracle Fusion Middleware服務(wù))和Java云服務(wù)。在一個實施例中,數(shù)據(jù)庫云服務(wù)可以支持共享服務(wù)部署模型,該共享服務(wù)部署模型使得組織能夠匯集數(shù)據(jù)庫資源并且以數(shù)據(jù)庫云的形式向客戶提供數(shù)據(jù)庫即服務(wù)。在云基礎(chǔ)設(shè)施系統(tǒng)中,中間件云服務(wù)可以為客戶提供開發(fā)和部署各種業(yè)務(wù)應(yīng)用的平臺,而Java云服務(wù)可以為客戶提供部署Java應(yīng)用的平臺。
各種不同的基礎(chǔ)設(shè)施服務(wù)可以由云基礎(chǔ)設(shè)施系統(tǒng)中的IaaS平臺提供?;A(chǔ)設(shè)施服務(wù)便于利用由SaaS平臺和PaaS平臺提供的服務(wù)的客戶對底層計算資源(諸如存儲裝置、網(wǎng)絡(luò)和其它基本計算資源)的管理和控制。
在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)202還可以包括基礎(chǔ)設(shè)施資源230,以用于提供被用來向云基礎(chǔ)設(shè)施系統(tǒng)的客戶提供各種服務(wù)的資源。在一個實施例中,基礎(chǔ)設(shè)施資源230可以包括用于執(zhí)行由PaaS平臺和SaaS平臺提供的服務(wù)的硬件(諸如服務(wù)器、存儲裝置和聯(lián)網(wǎng)資源)的預先集成的和優(yōu)化的組合。
在一些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)202中的資源可以由多個用戶共享并且按需動態(tài)地重新分配。此外,資源可以被分配給在不同時區(qū)中的用戶。例如,云基礎(chǔ)設(shè)施系統(tǒng)230可以使得第一時區(qū)中的第一用戶集合能夠利用云基礎(chǔ)設(shè)施系統(tǒng)的資源指定的小時數(shù),然后使得能夠?qū)⑼毁Y源重新分配給位于不同時區(qū)中的另一用戶集合,從而最大化資源的利用率。
在某些實施例中,可以提供由云基礎(chǔ)設(shè)施系統(tǒng)202的不同組件或模塊以及由云基礎(chǔ)設(shè)施系統(tǒng)202提供的服務(wù)共享的若干內(nèi)部共享服務(wù)232。這些內(nèi)部共享服務(wù)可以包括但不限于安全性和身份服務(wù)、集成服務(wù)、企業(yè)儲存庫服務(wù)、企業(yè)管理器服務(wù)、病毒掃描和白名單服務(wù)、高可用性、備份和恢復服務(wù)、用于實現(xiàn)云支持的服務(wù)、電子郵件服務(wù)、通知服務(wù)、文件傳輸服務(wù)等。
在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)202可以在云基礎(chǔ)設(shè)施系統(tǒng)中提供對云服務(wù)(例如,SaaS、PaaS和IaaS服務(wù))的綜合管理。在一個實施例中,云管理功能可以包括用于供應(yīng)、管理和跟蹤由云基礎(chǔ)設(shè)施系統(tǒng)202接收到的客戶的訂閱的能力等。
在一個實施例中,如在附圖中繪出的,云管理功能可以由諸如訂單管理模塊220、訂單編排模塊222、訂單供應(yīng)模塊224、訂單管理和監(jiān)視模塊226以及身份管理模塊228之類的一個或多個模塊提供。這些模塊可以包括一個或多個計算機和/或服務(wù)器或者利用一個或多個計算機和/或服務(wù)器來提供,該一個或多個計算機和/或服務(wù)器可以是通用計算機、專用服務(wù)器計算機、服務(wù)器場、服務(wù)器集群或任何其它適當?shù)牟贾煤?或組合。
在示例性操作234中,使用客戶端設(shè)備(諸如客戶端設(shè)備204、206或208)的客戶可以通過請求由云基礎(chǔ)設(shè)施系統(tǒng)202提供的一個或多個服務(wù)并且對由云基礎(chǔ)設(shè)施系統(tǒng)202提供的一個或多個服務(wù)的訂閱下訂單來與云基礎(chǔ)設(shè)施系統(tǒng)202交互。在某些實施例中,客戶可以訪問云用戶界面(UI),云UI 212、云UI 214和/或云UI 216并且經(jīng)由這些UI下訂閱訂單。響應(yīng)于客戶下訂單而由云基礎(chǔ)設(shè)施系統(tǒng)202接收到的訂單信息可以包括識別客戶以及客戶旨在訂閱的由云基礎(chǔ)設(shè)施系統(tǒng)202提供的一個或多個服務(wù)的信息。
在客戶已下訂單之后,訂單信息經(jīng)由云UI 212、214和/或216被接收。
在操作236處,訂單被存儲在訂單數(shù)據(jù)庫218中。訂單數(shù)據(jù)庫218可以是由云基礎(chǔ)設(shè)施系統(tǒng)218操作并且結(jié)合其它系統(tǒng)元素操作的若干數(shù)據(jù)庫中的一個數(shù)據(jù)庫。
在操作238處,訂單信息被轉(zhuǎn)發(fā)到訂單管理模塊220。在一些實例中,訂單管理模塊220可以被配置為執(zhí)行與訂單相關(guān)的計費和記帳功能,諸如驗證訂單,并且在通過驗證時,預訂訂單。
在操作240處,關(guān)于訂單的信息被傳送到訂單編排模塊222。訂單編排模塊222可以利用訂單信息來編排用于客戶下的訂單的服務(wù)和資源的供應(yīng)。在一些實例中,訂單編排模塊222可以編排資源的供應(yīng),以利用訂單供應(yīng)模塊224的服務(wù)來支持訂閱的服務(wù)。
在某些實施例中,訂單編排模塊222使得能夠管理與每個訂單相關(guān)聯(lián)的業(yè)務(wù)流程,并且應(yīng)用業(yè)務(wù)邏輯來確定訂單是否應(yīng)當繼續(xù)供應(yīng)。在操作242處,當接收到對新訂閱的訂單時,訂單編排模塊222向訂單供應(yīng)模塊224發(fā)送分配資源和配置履行訂閱訂單所需的那些資源的請求。訂單供應(yīng)模塊224實現(xiàn)用于由客戶訂購的服務(wù)的資源分配。訂單供應(yīng)模塊224提供在由云基礎(chǔ)設(shè)施系統(tǒng)200提供的云服務(wù)和被用來供應(yīng)用于提供所請求的服務(wù)的資源的物理實現(xiàn)層之間的抽象層。因此,訂單編排模塊222可以與諸如服務(wù)和資源是實際上被實時供應(yīng)還是預先被供應(yīng)并且僅在請求時才進行分配/指派之類的實現(xiàn)細節(jié)隔離。
在操作244處,一旦供應(yīng)了服務(wù)和資源,云基礎(chǔ)設(shè)施系統(tǒng)202的訂單供應(yīng)模塊224就可以向客戶端設(shè)備204、206和/或208上的客戶發(fā)送所提供的服務(wù)的通知。
在操作246處,客戶的訂閱訂單可以由訂單管理和監(jiān)視模塊226管理和跟蹤。在一些實例中,訂單管理和監(jiān)視模塊226可以被配置為收集訂閱訂單中的服務(wù)的使用統(tǒng)計數(shù)據(jù),諸如所使用的存儲量、所傳送的數(shù)據(jù)量、用戶的數(shù)量、以及系統(tǒng)運行時間和系統(tǒng)停機時間的量。
在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)200可以包括身份管理模塊228。身份管理模塊228可以被配置為提供身份服務(wù),諸如云基礎(chǔ)設(shè)施系統(tǒng)200中的訪問管理和授權(quán)服務(wù)。在一些實施例中,身份管理模塊228可以控制關(guān)于希望利用由云基礎(chǔ)設(shè)施系統(tǒng)202提供的服務(wù)的客戶的信息。這樣的信息可以包括認證這些客戶的身份的信息以及描述這些客戶被授權(quán)相對于各種系統(tǒng)資源(例如,文件、目錄、應(yīng)用、通信端口、存儲器段等)執(zhí)行哪些動作的信息。身份管理模塊228還可以包括對關(guān)于每個客戶的描述性信息以及關(guān)于如何和由誰來訪問和修改描述性信息的管理。
圖3是示出其中可以實現(xiàn)本發(fā)明的實施例的示例性計算機系統(tǒng)的框圖。系統(tǒng)300可以被用來實現(xiàn)上文描述的計算機系統(tǒng)中的任何計算機系統(tǒng)。如圖所示,計算機系統(tǒng)300包括經(jīng)由總線子系統(tǒng)302與若干外圍子系統(tǒng)通信的處理單元304。這些外圍子系統(tǒng)可以包括處理加速單元306、I/O子系統(tǒng)308、存儲子系統(tǒng)318和通信子系統(tǒng)324。存儲子系統(tǒng)318包括有形的計算機可讀存儲介質(zhì)322和系統(tǒng)存儲器310。
總線子系統(tǒng)302提供用于讓計算機系統(tǒng)300的各種組件和子系統(tǒng)按預期彼此通信的機制。雖然總線子系統(tǒng)302被示意性地示為單條總線,但是總線子系統(tǒng)的可替代實施例可以利用多條總線??偩€子系統(tǒng)302可以是利用各種總線架構(gòu)中的任何總線架構(gòu)的若干類型的總線結(jié)構(gòu)中的任何類型的總線結(jié)構(gòu),這些類型的總線結(jié)構(gòu)包括存儲器總線或存儲器控制器、外圍總線以及局部總線。例如,這些架構(gòu)可以包括工業(yè)標準架構(gòu)(ISA)總線、微通道架構(gòu)(MCA)總線、增強型ISA(EISA)總線、視頻電子標準協(xié)會(VESA)局部總線和外圍組件互連(PCI)總線,其中PCI總線可以被實現(xiàn)為按IEEE P1386.1標準制造的夾層(Mezzanine)總線。
可以被實現(xiàn)為一個或多個集成電路(例如,常規(guī)的微處理器或微控制器)的處理單元304控制計算機系統(tǒng)300的操作。一個或多個處理器可以被包括在處理單元304中。這些處理器可以包括單核或多核處理器。在某些實施例中,處理單元304可以被實現(xiàn)為一個或多個獨立的處理單元332和/或334,其中在每個處理單元中包括單核或多核處理器。在其它實施例中,處理單元304還可以被實現(xiàn)為通過將兩個雙核處理器集成到單個芯片中而形成的四核處理單元。
在各種實施例中,處理單元304可以響應(yīng)于程序代碼執(zhí)行各種程序并且可以維護多個并發(fā)執(zhí)行的程序或進程。在任何給定時間,要執(zhí)行的程序代碼中的一些或全部可以駐留在(一個或多個)處理器304中和/或存儲子系統(tǒng)318中。通過適當?shù)木幊蹋?一個或多個)處理器304可以提供上文描述的各種功能。計算機系統(tǒng)300可以附加地包括處理加速單元306,處理加速單元306可以包括數(shù)字信號處理器(DSP)、專用處理器等。
I/O子系統(tǒng)308可以包括用戶接口輸入設(shè)備和用戶接口輸出設(shè)備。用戶接口輸入設(shè)備可以包括鍵盤、諸如鼠標或軌跡球之類的指示設(shè)備、結(jié)合到顯示器中的觸摸板或觸摸屏、滾輪、點撥輪、撥盤、按鈕、開關(guān)、鍵板、具有語音命令識別系統(tǒng)的音頻輸入設(shè)備、麥克風以及其它類型的輸入設(shè)備。用戶接口輸入設(shè)備可以包括例如運動感測和/或姿勢識別設(shè)備,諸如使得用戶能夠通過利用姿勢和口頭命令的自然用戶接口來控制輸入設(shè)備(諸如Microsoft360游戲控制器)并且與該輸入設(shè)備交互的Microsoft運動傳感器。用戶接口輸入設(shè)備還可以包括眼睛姿勢識別設(shè)備,諸如檢測來自用戶的眼睛活動(例如,當拍攝圖片和/或進行菜單選擇時的“眨眼”)并且將眼睛姿勢變換為到輸入設(shè)備(例如,Google)中的輸入的Google眨眼檢測器。附加地,用戶接口輸入設(shè)備可以包括使得用戶能夠通過語音命令與語音識別系統(tǒng)(例如,導航器)交互的語音識別感測設(shè)備。
用戶接口輸入設(shè)備還可以包括但不限于三維(3D)鼠標、操縱桿或指示桿、游戲板和圖形平板、以及音頻/視覺設(shè)備,諸如揚聲器、數(shù)碼相機、數(shù)碼攝像機、便攜式媒體播放器、網(wǎng)絡(luò)攝像機、圖像掃描儀、指紋掃描儀、條形碼讀取器3D掃描儀、3D打印機、激光測距儀、以及視線跟蹤設(shè)備。附加地,用戶接口輸入設(shè)備可以包括例如醫(yī)療成像輸入設(shè)備,諸如計算機斷層掃描設(shè)備、磁共振成像設(shè)備、正電子發(fā)射斷層掃描設(shè)備、醫(yī)療超聲設(shè)備。用戶接口輸入設(shè)備還可以包括例如音頻輸入設(shè)備,諸如MIDI鍵盤、數(shù)字樂器等。
用戶接口輸出設(shè)備可以包括顯示子系統(tǒng)、指示器燈或諸如音頻輸出設(shè)備之類的非視覺顯示器等。顯示子系統(tǒng)可以是陰極射線管(CRT)、諸如利用液晶顯示器(LCD)或等離子顯示器的平板設(shè)備之類的平板設(shè)備、投影設(shè)備、觸摸屏等。一般而言,術(shù)語“輸出設(shè)備”的使用旨在包括用于向用戶或其它計算機輸出來自計算機系統(tǒng)300的信息的所有可能類型的設(shè)備和機構(gòu)。例如,用戶接口輸出設(shè)備可以包括但不限于可視地傳達文本、圖形和音頻/視頻信息的各種顯示設(shè)備,諸如監(jiān)視器、打印機、揚聲器、耳機、汽車導航系統(tǒng)、繪圖儀、語音輸出設(shè)備和調(diào)制解調(diào)器。
計算機系統(tǒng)300可以包括存儲子系統(tǒng)318,存儲子系統(tǒng)318包括被示為當前位于系統(tǒng)存儲器310內(nèi)的軟件元素。系統(tǒng)存儲器310可以存儲在處理單元304上可加載并且可執(zhí)行的程序指令以及在這些程序執(zhí)行期間生成的數(shù)據(jù)。
依賴于計算機系統(tǒng)300的配置和類型,系統(tǒng)存儲器310可以是易失性的(諸如隨機存取存儲器(RAM))和/或非易失性的(諸如只讀存儲器(ROM)、閃存存儲器,等等)。RAM通常包含可由處理單元304立即訪問和/或目前正由處理單元304操作和執(zhí)行的數(shù)據(jù)和/或程序模塊。在一些實施方式中,系統(tǒng)存儲器310可以包括多種不同類型的存儲器,諸如靜態(tài)隨機存取存儲器(SRAM)或動態(tài)隨機存取存儲器(DRAM)。在一些實施方式中,包含有助于諸如在啟動期間在計算機系統(tǒng)300內(nèi)的元素之間傳送信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS)通??梢员淮鎯υ赗OM中。作為示例,而不是限制,系統(tǒng)存儲器310還示出了應(yīng)用程序312、程序數(shù)據(jù)314以及操作系統(tǒng)316,其中應(yīng)用程序312可以包括客戶端應(yīng)用、Web瀏覽器、中間層應(yīng)用、關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)等。作為示例,操作系統(tǒng)316可以包括各種版本的MicrosoftApple和/或Linux操作系統(tǒng)、各種商用或類UNIX操作系統(tǒng)(包括但不限于各種GNU/Linux操作系統(tǒng)、GoogleOS等)和/或諸如iOS、Phone、OS、10 OS和OS操作系統(tǒng)之類的移動操作系統(tǒng)。
存儲子系統(tǒng)318還可以提供用于存儲提供一些實施例的功能的基本編程和數(shù)據(jù)構(gòu)造的有形計算機可讀存儲介質(zhì)。當由處理器執(zhí)行時提供上文描述的功能的軟件(程序、代碼模塊、指令)可以被存儲在存儲子系統(tǒng)318中。這些軟件模塊或指令可以由處理單元304執(zhí)行。存儲子系統(tǒng)318還可以提供用于存儲根據(jù)本發(fā)明來使用的數(shù)據(jù)的儲存庫。
存儲子系統(tǒng)300還可以包括計算機可讀存儲介質(zhì)讀取器320,計算機可讀存儲介質(zhì)讀取器320可以被進一步連接到計算機可讀存儲介質(zhì)322。與系統(tǒng)存儲器310一起并且可選地與系統(tǒng)存儲器310組合,計算機可讀存儲介質(zhì)322可以全面地表示用于臨時和/或更永久地包含、存儲、傳送和檢索計算機可讀信息的遠程存儲設(shè)備、本地存儲設(shè)備、固定存儲設(shè)備和/或可移動存儲設(shè)備以及存儲介質(zhì)。
包含代碼或代碼的部分的計算機可讀存儲介質(zhì)322還可以包括本領(lǐng)域已知或使用的任何適當?shù)慕橘|(zhì),這些介質(zhì)包括存儲介質(zhì)和通信介質(zhì),諸如但不限于以用于信息的存儲和/或傳輸?shù)娜魏畏椒ɑ蚣夹g(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。這可以包括有形的計算機可讀存儲介質(zhì),諸如RAM、ROM、電可擦除可編程ROM(EEPROM)、閃存存儲器或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲裝置、磁帶盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或其它有形的計算機可讀介質(zhì)。這還可以包括非有形的計算機可讀介質(zhì),諸如可以被用來傳送期望的信息并且可以由計算機系統(tǒng)300訪問的數(shù)據(jù)信號、數(shù)據(jù)傳輸或者任何其它介質(zhì)。
作為示例,計算機可讀存儲介質(zhì)322可以包括從不可移動的非易失性磁介質(zhì)讀取或?qū)Σ豢梢苿拥姆且资源沤橘|(zhì)寫入的硬盤驅(qū)動器、從可移動的非易失性磁盤讀取或?qū)梢苿拥姆且资源疟P寫入的磁盤驅(qū)動器、以及從可移動的非易失性光盤(諸如CD ROM、DVD和盤或其它光學介質(zhì))讀取或?qū)梢苿拥姆且资怨獗P寫入的光盤驅(qū)動器。計算機可讀存儲介質(zhì)322可以包括但不限于驅(qū)動器、閃存卡、通用串行總線(USB)閃存驅(qū)動器、安全數(shù)字(SD)卡、DVD盤、數(shù)字音頻帶等。計算機可讀存儲介質(zhì)322還可以包括基于非易失性存儲器的固態(tài)驅(qū)動器(SSD)(諸如基于閃存存儲器的SSD、企業(yè)閃存驅(qū)動器、固態(tài)ROM等)、基于易失性存儲器的SSD(諸如固態(tài)RAM、動態(tài)RAM、靜態(tài)RAM,基于DRAM的SSD,磁阻RAM(MRAM)SSD)、以及使用基于DRAM的SSD和基于閃存存儲器的SSD的組合的混合SSD。盤驅(qū)動器和它們的相關(guān)聯(lián)的計算機可讀介質(zhì)可以為計算機系統(tǒng)300提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。
通信子系統(tǒng)324提供到其它計算機系統(tǒng)和網(wǎng)絡(luò)的接口。通信子系統(tǒng)324充當用于從來自計算機系統(tǒng)300的其它系統(tǒng)接收數(shù)據(jù)以及向來自計算機系統(tǒng)300的其它系統(tǒng)傳送數(shù)據(jù)的接口。例如,通信子系統(tǒng)324可以使得計算機系統(tǒng)300能夠經(jīng)由互聯(lián)網(wǎng)連接到一個或多個設(shè)備。在一些實施例中,通信子系統(tǒng)324可以包括用于(例如,利用蜂窩電話技術(shù),諸如3G、4G或EDGE(用于全球演進的增強的數(shù)據(jù)速率)之類的先進數(shù)據(jù)網(wǎng)絡(luò)技術(shù)、Wi-Fi(IEEE 802.11族標準)、或其它移動通信技術(shù)、或其任何組合)訪問無線語音網(wǎng)絡(luò)和/或數(shù)據(jù)網(wǎng)絡(luò)的射頻(RF)收發(fā)器組件、全球定位系統(tǒng)(GPS)接收器組件和/或其它組件。在一些實施例中,除了無線接口之外或者作為無線接口的替代,通信子系統(tǒng)324可以提供有線網(wǎng)絡(luò)連接(例如,以太網(wǎng))。
在一些實施例中,通信子系統(tǒng)324還可以代表可以使用計算機系統(tǒng)300的一個或多個用戶接收以結(jié)構(gòu)化和/或非結(jié)構(gòu)化的數(shù)據(jù)饋送326、事件流328、事件更新330等的形式的輸入通信。
作為示例,通信子系統(tǒng)324可以被配置為從社交網(wǎng)絡(luò)和/或其它通信服務(wù)的用戶實時地接收數(shù)據(jù)饋送326,諸如饋送、更新、諸如豐富站點摘要(RSS)饋送之類的web饋送和/或來自一個或多個第三方信息源的實時更新。
此外,通信子系統(tǒng)324還可以被配置為接收以連續(xù)數(shù)據(jù)流的形式的本質(zhì)上可以是連續(xù)的或無界的沒有明確結(jié)束的數(shù)據(jù),其中該連續(xù)數(shù)據(jù)流可以包括實時事件的事件流328和/或事件更新330。生成連續(xù)數(shù)據(jù)的應(yīng)用的示例可以包括例如傳感器數(shù)據(jù)應(yīng)用、金融報價機、網(wǎng)絡(luò)性能測量工具(例如網(wǎng)絡(luò)監(jiān)視和業(yè)務(wù)管理應(yīng)用)、點擊流分析工具、汽車交通監(jiān)視等。
通信子系統(tǒng)324還可以被配置為向一個或多個數(shù)據(jù)庫輸出結(jié)構(gòu)化的和/或非結(jié)構(gòu)化的數(shù)據(jù)饋送326、事件流328、事件更新330等,其中該一個或多個數(shù)據(jù)庫可以與耦接到計算機系統(tǒng)300的一個或多個流數(shù)據(jù)源計算機進行通信。
計算機系統(tǒng)300可以是各種類型中的一種類型,這些類型包括手持便攜式設(shè)備(例如,蜂窩電話、計算平板、PDA)、可穿戴設(shè)備(例如,Google頭戴式顯示器)、PC、工作站、大型機、信息亭、服務(wù)器機架或任何其它數(shù)據(jù)處理系統(tǒng)。
由于計算機和網(wǎng)絡(luò)不斷變化的本質(zhì),在附圖中繪出的計算機系統(tǒng)300的描述僅僅旨在作為具體示例。具有比附圖中繪出的系統(tǒng)更多或更少的組件的許多其它配置是可能的。例如,定制的硬件還可以被使用和/或特定的元素可以用硬件、固件、軟件(包括小程序)或其組合來實現(xiàn)。此外,可以采用到諸如網(wǎng)絡(luò)輸入/輸出設(shè)備之類的其它計算設(shè)備的連接?;诒疚乃峁┑墓_內(nèi)容和教導,本領(lǐng)域普通技術(shù)人員將理解實現(xiàn)各種實施例的其它方式和/或方法。
圖4是示出根據(jù)本發(fā)明的一個實施例的上下文搜索系統(tǒng)的元件的框圖。系統(tǒng)400可以被用于為預留短語的列表識別同義詞和/或使用同義詞和預留短語來處理用戶查詢。系統(tǒng)可以包括內(nèi)容儲存庫406,內(nèi)容儲存庫406可以包括網(wǎng)站、文檔和/或其它內(nèi)容。內(nèi)容儲存庫可以是例如產(chǎn)品制造商的網(wǎng)站。系統(tǒng)可以包括預留短語404的一個或多個列表。系統(tǒng)可以包括與預留短語404相關(guān)聯(lián)的同義詞416的一個或多個列表。預留短語404和同義詞416的列表可以被生成或具體地與內(nèi)容406相關(guān)。在一些情況下,預留短語404的列表可以由系統(tǒng)從外部源或從用戶接收。在一些情況下,內(nèi)容分析引擎412可以被配置為掃描或處理內(nèi)容406,以識別預留短語。系統(tǒng)400還可以包括同義詞引擎408。同義詞引擎可以被配置為自動生成用于預留短語中的每個預留短語的同義詞。用于預留短語404的同義詞416可以由同義詞引擎408通過取得該預留短語的特有子串來生成。在一些實施例中,同義詞引擎408可以通過利用內(nèi)容分析引擎412分析內(nèi)容中的相關(guān)詞、分析外部內(nèi)容和/或監(jiān)視用戶查詢來生成同義詞。
用戶界面414可以由用戶用來提交查詢。查詢可以是與內(nèi)容406相關(guān)的問題或搜索。這些搜索的目的應(yīng)當是識別查詢的主題并且識別查詢中存在的預留短語或同義詞。在一個實施例中,用戶界面414可以是在web瀏覽器中顯示的網(wǎng)頁或者在用戶的計算機或移動計算設(shè)備上顯示的應(yīng)用。用戶界面可以包括用于提交搜索或查詢的文本框或其它輸入?yún)^(qū)域。來自用戶界面414的查詢可以被發(fā)送到查詢處理引擎402。在用戶界面414遠離查詢處理引擎402的情況下,來自用戶界面414的查詢可以經(jīng)由網(wǎng)絡(luò)410發(fā)送。查詢處理引擎402可以分析查詢、查詢的上下文,并且識別查詢的詞中是否有任何詞與預留短語404和同義詞416匹配。查詢處理引擎402可以將與同義詞416匹配的查詢詞映射到相關(guān)聯(lián)的預留短語。查詢處理引擎可以將相關(guān)的預留短語映射到內(nèi)容406的具體區(qū)域。相關(guān)內(nèi)容或到相關(guān)內(nèi)容的鏈接可以被返回并且發(fā)送到用戶界面414。
在一些實施例中,查詢處理引擎402可以監(jiān)視并且保持用戶查詢的記錄、以及用戶查詢是否被成功地映射到內(nèi)容406的區(qū)域中。查詢處理引擎402可以記錄用戶查詢中不匹配的詞中的每個不匹配的詞被輸入了多少次。查詢以及它們到內(nèi)容406的成功映射的歷史可以被用于完善由系統(tǒng)使用的同義詞416和預留短語404。
圖5是示出根據(jù)本發(fā)明的實施例的同義詞引擎的元件的附加細節(jié)的框圖。同義詞引擎408可以被用于識別用于預留短語的列表的同義詞。同義詞引擎408可以包括用于處理預留短語404和內(nèi)容以自動生成用于預留短語404的同義詞的列表的各種模塊。同義詞引擎可以包括子串分析模塊502、語言分析模塊504、詞過濾器506、內(nèi)容匹配模塊508、重復檢測模塊510以及各種字典512。在實施例中,各種模塊的功能可以被組合或被劃分成不同數(shù)量的模塊,并且同義詞引擎408的一些實施例包括本文描述的功能的子集。
預留短語404的一個或多個列表可以由同義詞引擎408接收。預留短語404的列表可以包括分組或語言指示符。分組可以包括指示符,諸如預留短語是名詞、地點還是動詞等。當指示符對于預留短語不可用時,語言分析模塊504可以被用于識別預留短語的語言屬性。在一些情況下,語言屬性(諸如預留短語是名詞還是動詞)可以直接從預留詞確定。在一些情況下,孤立的預留短語可能太模糊。在一些實施例中,語言分析模塊504可以從內(nèi)容分析引擎412請求包括預留短語的內(nèi)容。內(nèi)容分析引擎412可以返回包含預留短語的內(nèi)容的完整句子、段落或其它部分?;陬A留短語在內(nèi)容中的使用,語言分析模塊504可以確定預留短語的語言屬性。語言分析模塊504可以確定預留短語是否被一致地用作名詞、動詞等。預留短語的分組和語言特性可以與每個預留短語和為每個預留詞確定的同義詞相關(guān)聯(lián)。
子串分析模塊502可以被用于生成每個預留詞的可能子串的列表。子串分析模塊502可以將預留短語解析成用作同義詞的各種子串。在一些情況下,子串分析模塊502可以包括用于生成子串同義詞的規(guī)則集合。例如,子串模塊可以被限制為生成至少三個字符長的子串。附加的規(guī)則可以包括子串以與預留詞相同的字母開頭。在用于生成子串同義詞的規(guī)則的另一個示例中,模塊502可以被配置為通過去除數(shù)字字符并且僅留下字母字符來生成子串。
可以包括辭典(thesaurus)、字典等的字典512可以被用于確定用于預留短語的附加的同義詞。字典512可以被用于確定相關(guān)詞和/或語言特性的列表。
在一些實施例中,內(nèi)容匹配模塊508可以被用于直接從內(nèi)容中確定用于預留短語的同義詞。內(nèi)容匹配模塊508可以分析內(nèi)容,以識別與預留短語可互換使用的詞。
由同義詞引擎408的模塊生成的同義詞列表可以由重復檢測模塊510處理。重復檢測模塊510可以被配置為識別可能已經(jīng)被識別為用于多于一個預留詞的同義詞的詞。重復檢測模塊510可以識別重復的同義詞并且去除重復詞。在一些情況下,重復檢測模塊510可以識別重復的同義詞,并且刪除除了一個重復詞之外的所有重復詞。重復項的修剪可以基于與每個重復同義詞相關(guān)聯(lián)的預留短語的重要性或排名。與排名最高的預留短語相關(guān)聯(lián)的重復同義詞可以留在同義詞的列表中,而所有其它的重復同義詞被去除。
在實施例中,詞過濾器模塊506可以被用于進一步處理同義詞的列表。過濾器模塊506可以將同義詞的列表與禁用詞的列表進行比較和/或使用規(guī)則來分析同義詞。與禁用詞中的任何禁用詞匹配的同義詞可以由過濾器模塊506過濾或去除。與一個或多個規(guī)則匹配的同義詞也可以被過濾或去除。例如,規(guī)則可以包括同義詞至少有三個字符長,或者同義詞以與預留詞相同的字母開始。
圖6是示出根據(jù)本發(fā)明的一個實施例的用于確定預留短語的同義詞的過程的流程圖。方法600可以使用先前描述的系統(tǒng)來執(zhí)行。例如,可以使用圖5的同義詞引擎500或圖7的系統(tǒng)700。這樣的系統(tǒng)的組件可以使用硬件、軟件和/或固件來實現(xiàn)。
在步驟602處,系統(tǒng)可以接收預留短語的一個或多個列表。預留短語可以從用戶或系統(tǒng)的不同部分接收。預留短語的列表可以包括名稱或產(chǎn)品或者可以在諸如網(wǎng)站之類的內(nèi)容中找到的詞。預留短語可以與內(nèi)容的具體部分相關(guān)聯(lián)或鏈接到內(nèi)容的具體部分。在步驟604處,可以識別預留短語的上下文。上下文可以從預留詞確定。字典和其它參考資料可以被用于確定預留短語的語言特性。在一些情況下,可以搜索使用預留短語的內(nèi)容,以識別預留短語的上下文。使用預留短語的句子可以被分析,以確定它們的上下文,該上下文可以包括它們的語言特性、相關(guān)主題等。
在步驟606處,通過至少部分地使用預留短語的所確定的上下文,系統(tǒng)可以確定用于預留短語的同義詞。同義詞可以經(jīng)由參考資料、分析內(nèi)容、子串分析等來確定。在步驟608處,可以過濾不期望的同義詞。不期望的同義詞可以包括與多于一個預留詞、競爭對手產(chǎn)品名稱等相關(guān)聯(lián)的重復同義詞。在步驟610處,剩下的同義詞可以繼承相關(guān)聯(lián)的預留短語的上下文。
圖7是示出根據(jù)本發(fā)明的一個實施例的使用預留短語和它們的同義詞對用戶查詢進行處理的附加細節(jié)的流程圖。方法700可以使用先前描述的系統(tǒng)來執(zhí)行。例如,可以使用圖5的同義詞引擎500或圖4的系統(tǒng)400。這樣的系統(tǒng)的組件可以使用硬件、軟件和/或固件來實現(xiàn)。
在步驟702處,可以接收查詢字符串。查詢可以經(jīng)由用戶界面從用戶接收并且經(jīng)由網(wǎng)絡(luò)發(fā)送到查詢系統(tǒng)。在一些情況下,查詢可以從系統(tǒng)的不同部分或不同的系統(tǒng)接收。在步驟704處,查詢字符串可以被分析和處理,以識別是否有任何預留短語或預留短語的同義詞是查詢字符串的一部分。在步驟706處,可以識別所識別的同義詞和/或預留短語的位置和上下文。至少部分地基于在查詢字符串中的位置、查詢字符串的結(jié)構(gòu)等,查詢字符串中匹配詞的諸如語言特性之類的特性可以由系統(tǒng)確定。查詢字符串中的詞的上下文可以與預留短語和同義詞的上下文進行比較,以確定它們是否匹配。如果上下文匹配,則查詢字符串的同義詞和/或預留短語可以被認為匹配。如果查詢字符串包括匹配的同義詞,則在步驟708中同義詞可以被映射到相關(guān)聯(lián)的預留短語。在步驟710處,映射的預留短語可以被用于處理查詢字符串。預留短語可以與內(nèi)容的具體部分或到內(nèi)容的鏈接相關(guān)聯(lián)。與查詢字符串中識別出的預留短語相關(guān)聯(lián)的內(nèi)容或到內(nèi)容的鏈接可以被返回給用戶。
圖8是示出根據(jù)本發(fā)明的一個實施例的用于確定預留短語的同義詞的過程的流程圖。方法800可以使用先前描述的系統(tǒng)來執(zhí)行。例如,可以使用圖5的同義詞引擎500或圖4的系統(tǒng)400。這樣的系統(tǒng)的組件可以使用硬件、軟件和/或固件來實現(xiàn)。
在步驟802處,可以接收預留短語??梢允褂靡粋€或多個步驟來處理預留短語,以生成用于預留詞的同義詞。在一些實施例中,可以在步驟804處理預留短語,以將預留短語的子串識別為潛在的同義詞。子串生成可以包括諸如最小和/或最大字符數(shù)之類的規(guī)則。在一些情況下,子串可以包括不是原始預留詞的一部分的附加結(jié)尾。具有替代結(jié)尾、后綴和/或前綴的子串可以被生成,以用作潛在的同義詞。諸如“ed”或“ing”之類的后綴可能適用于一些預留短語。
在一些實施例中,在步驟806處,可以使用字典、辭典等來處理預留短語,以識別用于預留詞的常見的或眾所周知的同義詞。在一些實施例中,在步驟808處,可以使用目標內(nèi)容來處理預留短語。內(nèi)容的文本可以被分析,以確定與預留詞可互換使用的詞??苫Q的詞可以被標記為用于預留詞的同義詞的潛在候選者。在步驟810處,識別出的同義詞可以被進一步處理,并且與同義詞規(guī)則和/或禁用詞列表進行比較。同義詞規(guī)則可以包括指定同義詞的最小或最大字符數(shù)、非字母字符數(shù)等的規(guī)則。與規(guī)則不匹配或作為禁用詞列表的一部分的任何同義詞可以在步驟812處被過濾。
在前述描述中,為了說明的目的,以特定順序描述了方法。應(yīng)當理解,在可替代的實施例中,方法可以以與所描述的順序不同的順序來執(zhí)行。還應(yīng)當理解,上文描述的方法可以由硬件組件執(zhí)行或者可以以機器可執(zhí)行指令的序列來實施,機器可執(zhí)行指令可以被用來使得用該指令對其編程的諸如通用或?qū)S锰幚砥骰蜻壿嬰娐分惖臋C器執(zhí)行該方法。這些機器可執(zhí)行指令可以被存儲在一個或多個機器可讀介質(zhì)或存儲器設(shè)備上,諸如存儲在CD-ROM或其它類型的光盤、軟盤、ROM、RAM、EPROM、EEPROM、磁卡或光卡、閃存存儲器、或適合于存儲電子指令的其它類型的機器可讀介質(zhì)或存儲器設(shè)備上。可替代地,方法可以通過硬件和軟件的組合來執(zhí)行。
雖然本文已經(jīng)詳細描述了本發(fā)明的說明性實施例和當前優(yōu)選的實施例,但是要理解的是,本發(fā)明性概念可以以其它方式不同地實施和采用,并且所附權(quán)利要求旨在被解釋為包括除了由現(xiàn)有技術(shù)限制的之外的這些變化。