提供軟件問題解決方案的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種提供軟件問題解決方案的方法和裝置,所述方法包括:獲取提問用戶的軟件問題;獲取記錄腳本的形式的多個解決方案,所述記錄腳本包括用戶操作序列和對應(yīng)的語義節(jié)點序列,其中語義節(jié)點用于描述用戶操作的含義;通過分析所述多個解決方案的記錄腳本中的語義節(jié)點序列,為所述多個解決方案提供推薦度信息;以及提供所述多個解決方案及其推薦度信息。所述裝置與上述方法對應(yīng)。利用本發(fā)明實施例的方法和裝置,可以就任何軟件問題征集解決方案,并對征集的多個解決方案進行分析以提供推薦度信息。由此,提問用戶可以根據(jù)推薦度信息快速定位出正確的解決方案,使得問題的解決更加高效。
【專利說明】提供軟件問題解決方案的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件幫助信息的提供,更具體而言,涉及提供軟件問題解決方案的方法和裝置。
【背景技術(shù)】
[0002]信息技術(shù)的發(fā)展為人們提供了越來越豐富的軟件產(chǎn)品。相應(yīng)地,在使用這些軟件產(chǎn)品時,用戶可能面對越來越多的問題,例如,“如何將郵箱中的郵件移動到特定文件夾中? ”,“為何發(fā)送email時總是出現(xiàn)錯誤? ”,等等。在出現(xiàn)軟件問題時,用戶常常通過以下方式來嘗試解決。
[0003]一種方式是在知識庫中搜索和瀏覽與使用的軟件相關(guān)的幫助文章,從而自助解決出現(xiàn)的軟件問題。然而,在多數(shù)情況下,用戶并不具備足夠的專業(yè)知識來理解出現(xiàn)的問題,也無法從眾多幫助信息中識別出正確的解決方案。另一方面,盡管知識庫中的資料利用大量網(wǎng)絡(luò)資源來更新,但依然不能保證覆蓋用戶可能面對的所有問題。因此,這樣的方式難以有效地解決用戶面對的軟件問題。
[0004]另一種方式是在出現(xiàn)軟件問題時求助于軟件的幫助臺。這時,幫助臺的技術(shù)人員可以利用電話或一些遠(yuǎn)程控制軟件與用戶溝通,來解決用戶的軟件問題。然而,這樣的幫助方式需要一對一的技術(shù)支持,成本很高。此外,由于溝通方式和自身知識的限制,幫助臺有時并不能充分理解用戶的問題和需求。
[0005]用戶還可以將自己遇到的軟件問題發(fā)布到互聯(lián)網(wǎng)論壇中以征集解決方案。然而,這對用戶自身的技術(shù)水平提出了較高要求,因為用戶需要具備足夠高的計算機知識水平來描述自己的問題、理解其他用戶給出的解決方案,并將解決方案應(yīng)用于自己的電腦。此外,論壇的其他用戶可能提供了許多不同的解決方案,有些解決方案可能是針對不同軟件版本或不同應(yīng)用環(huán)境提出的,有些甚至是錯誤的方案。這使得用戶難以從眾多解決方案中識別出正確的解決方案。
[0006]現(xiàn)有技術(shù)中也提供了一些專用的幫助平臺或幫助系統(tǒng)來解決用戶遇到的軟件問題。例如,在一種幫助平臺下,用戶可以從菜單中選擇自己的問題,或者利用自然語言字符串手動輸入自己的問題。于是,幫助平臺產(chǎn)生與用戶輸入的問題對應(yīng)的偏移值,并使用該偏移值在信息數(shù)據(jù)庫中定位出問題的解決方案。然而,這樣的幫助平臺僅僅能夠識別和解決預(yù)先定義的一些問題,而不能覆蓋所有的用戶問題。在另一種幫助平臺下,分析用戶問題的上下文,以過濾出關(guān)鍵詞,利用該關(guān)鍵詞在幫助系統(tǒng)中搜索適當(dāng)?shù)慕鉀Q建議。利用這樣的幫助平臺,用戶可以相對容易地獲得軟件問題的解決方案。但是,該幫助平臺所支持的內(nèi)容僅限于與預(yù)先定義的關(guān)鍵詞相關(guān)的內(nèi)容,仍然無法全面覆蓋用戶的問題。其他現(xiàn)有的幫助平臺在不同方面具有不足。因此,希望能夠?qū)ΜF(xiàn)有技術(shù)進行改進,更高效地解決用戶在使用軟件產(chǎn)品時遇到的各種問題。
【發(fā)明內(nèi)容】
[0007]考慮到現(xiàn)有技術(shù)中存在的問題,提出本發(fā)明,旨在更加有效地為用戶提供軟件問題的解決方案。
[0008]根據(jù)本發(fā)明的一個方面,提出了一種提供軟件問題解決方案的方法,包括:獲取提問用戶的軟件問題;獲取用于解決所述軟件問題的多個解決方案,所述多個解決方案被提供為記錄腳本的形式,所述記錄腳本包括用戶操作序列和對應(yīng)的語義節(jié)點序列,所述語義節(jié)點序列中的語義節(jié)點用于描述用戶操作的含義;通過分析所述多個解決方案的記錄腳本中的語義節(jié)點序列,為所述多個解決方案提供推薦度信息;以及提供所述多個解決方案及其推薦度信息。
[0009]根據(jù)本發(fā)明的另一個方面,提出了一種提供軟件問題解決方案的裝置,包括:問題獲取單元,配置為獲取提問用戶的軟件問題;方案獲取單元,配置為獲取用于解決所述軟件問題的多個解決方案,所述多個解決方案被提供為記錄腳本的形式,所述記錄腳本包括用戶操作序列和對應(yīng)的語義節(jié)點序列,所述語義節(jié)點序列中的語義節(jié)點用于描述用戶操作的含義;方案分析單元,配置為通過分析所述多個解決方案的記錄腳本中的語義節(jié)點序列,為所述多個解決方案提供推薦度信息;提供單元,配置為提供所述多個解決方案及其推薦度信息。
[0010]利用本發(fā)明實施例的方法和裝置,可以就任何軟件問題征集解決方案,并對征集的多個解決方案進行分析以提供推薦度信息。由此,提問用戶可以根據(jù)推薦度信息快速定位出正確的解決方案,使得問題的解決更加高效。
【專利附圖】
【附圖說明】
[0011]通過結(jié)合附圖對本公開示例性實施方式進行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號通常代表相同部件。
[0012]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖;
[0013]圖2示出根據(jù)本發(fā)明一個實施例的提供軟件問題解決方案的方法的流程圖;
[0014]圖3示出根據(jù)一個實施例獲取一個操作過程的記錄腳本的方法流程圖;
[0015]圖4示出根據(jù)一個實施例提供推薦度信息的執(zhí)行過程;
[0016]圖5示出根據(jù)一個實施例的提供解決方案的方法流程圖;以及
[0017]圖6示出根據(jù)本發(fā)明一個實施例的裝置的框圖。
【具體實施方式】
[0018]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0019]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0020]可以采用一個或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0021]計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0022]計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0023]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言一諸如”C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠(yuǎn)程計算機上執(zhí)行、或者完全在遠(yuǎn)程計算機或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機的情形中,遠(yuǎn)程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0024]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0025]也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0026]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。[0027]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。
[0028]如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0029]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0030]計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0031]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存取存儲器(RAM)30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖3未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0032]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0033]計算機系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進行。并且,計算機系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計算機系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0034]以下結(jié)合附圖和具體例子描述本發(fā)明的實施方式。根據(jù)本發(fā)明的實施例,提問用戶在遇到軟件問題時可以將問題發(fā)布在幫助平臺上,并且?guī)椭脚_可以從其他用戶征集或眾包(crowd source)對該軟件問題的解決方案。為了幫助提問用戶從多個解決方案中識別出正確的解決方案,在其他用戶提交的解決方案中引入語義節(jié)點,用以表示用戶操作的含義。由此,通過分析多個解決方案中的語義節(jié)點,可以獲得解決方案之間的相似度、關(guān)聯(lián)性等信息,從而可以基于這些信息為提問用戶推薦解決方案。
[0035]現(xiàn)在參看圖2,其示出根據(jù)本發(fā)明一個實施例的提供軟件問題解決方案的方法的流程圖。如圖所示,該方法包括,步驟20,獲取提問用戶的軟件問題;步驟22,從其他用戶獲取用于解決所述軟件問題的多個解決方案,所述多個解決方案提供為記錄腳本的形式,所述記錄腳本包括用戶操作序列以及對應(yīng)的語義節(jié)點序列,所述語義節(jié)點序列中的語義節(jié)點用于描述用戶操作的含義;步驟24,通過分析所述多個解決方案的記錄腳本中的語義節(jié)點序列,為所述多個解決方案提供推薦度信息;步驟26,提供所述多個解決方案及其推薦度信息。下面結(jié)合具體例子描述以上各個步驟的執(zhí)行方式。
[0036]當(dāng)用戶在使用軟件的過程中遇到軟件問題時,用戶可以通過多種方式記錄和描述出現(xiàn)的問題,并將該問題提交給幫助平臺。由此,幫助平臺可以獲得提問用戶的軟件問題,如步驟20所示。在一個實施例中,軟件問題可以提供為文本形式。例如,提問用戶可以通過自然語言的文本來描述出現(xiàn)軟件問題的操作過程,并將該文本提交到幫助平臺。在一個實施例中,軟件問題可以提供為視頻錄像的形式。例如,提問用戶可以采用各種視頻記錄軟件,來記錄導(dǎo)致軟件問題的操作過程,并將記錄的視頻錄像提交到幫助平臺。在一個實施例中,軟件問題可以提供為視頻錄像加上文字說明的形式。在這種情況下,除了用視頻錄像描述導(dǎo)致軟件問題的操作過程外,提問用戶還可以添加簡短文字對軟件問題進行說明和注釋。
[0037]可以理解,除了以上列舉的形式之外,或者在以上列舉的形式的基礎(chǔ)上,軟件問題還可以提供為更多的形式,旨在使得其他用戶可以清楚理解出現(xiàn)軟件問題的過程。
[0038]在步驟20以各種形式獲取提問用戶的軟件問題的基礎(chǔ)上,幫助平臺可以將該軟件問題發(fā)布出去,以征集該軟件問題的解決方案。相應(yīng)地,幫助平臺的其他用戶可以在理解上述軟件問題的基礎(chǔ)上,提供針對該軟件問題的解決方案。于是,在步驟22,幫助平臺可以從其他用戶獲取用于解決上述軟件問題的多個解決方案。在一個實施例中,上述解決方案提供為記錄腳本的形式,也就是包括用戶操作序列以及對應(yīng)的語義節(jié)點序列,其中語義節(jié)點用于描述用戶操作的含義。
[0039]可以理解,解決方案實質(zhì)上是對解決上述軟件問題的操作過程的描述。一般地,操作過程包括一系列的用戶操作,例如,點擊軟件的某個功能按鈕、激活某個對話框、在特定位置輸入某個字符等等。實際上,不同的用戶操作可能具有相同的操作含義。例如,在使用一個文本編輯軟件時,同時按下“Ctrl”鍵和“S”鍵的用戶操作與點擊“保存”按鈕的用戶操作具有相同的意義,也就是保存當(dāng)前的文檔。另一方面,在不同的上下文環(huán)境的情況下,相同的用戶操作也可能導(dǎo)致不同的含義。例如,在使用一個軟件時,如果用戶已開啟多個窗口,那么利用諸如“Alt”鍵和“F4”鍵的快捷鍵操作,可以關(guān)閉當(dāng)前激活窗口 ;如果僅有一個開啟窗口,那么同樣的快捷鍵操作會導(dǎo)致直接關(guān)閉該軟件。然而,幫助平臺往往無法識別這樣的用戶操作的含義,進而無法對解決方案進行“語義”上的分析。為此,在本發(fā)明的實施例中,利用記錄腳本來記錄一個操作過程,其中記錄腳本不僅包括操作過程中的操作序列,還包括對應(yīng)的語義節(jié)點序列,其中語義節(jié)點用于描述用戶操作的含義。下面描述獲取一個操作過程的記錄腳本的方法步驟。
[0040]圖3示出根據(jù)一個實施例獲取一個操作過程的記錄腳本的方法流程圖。如圖3所示,對于一個操作過程,在步驟30中,捕獲該操作過程中的用戶操作,形成用戶操作序列;在步驟32,獲取該操作過程中產(chǎn)生的語義節(jié)點,形成語義節(jié)點序列;在步驟34,組合所述用戶操作序列與所述語義節(jié)點序列,從而形成記錄腳本。
[0041]具體地,在步驟30,可以利用多種記錄工具來捕獲軟件使用過程中的用戶操作??梢岳斫猓F(xiàn)有技術(shù)已經(jīng)提供有多種記錄工具,通過監(jiān)視用戶與軟件API之間的交互來捕獲用戶的操作。這樣的記錄工具都可以用于執(zhí)行該步驟30。
[0042]另一方面,在步驟32,可以采用多種方式獲得如上所述的語義節(jié)點。根據(jù)一種實施方式,軟件被預(yù)先配置為在運行過程中提供語義節(jié)點。具體地,在一個例子中,在軟件的可執(zhí)行代碼的特定位置提供有樁代碼,所述樁代碼配置為輸出與軟件的執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息,所述樁代碼所插入的特定位置對應(yīng)于響應(yīng)于用戶操作而執(zhí)行的有意義的、重要的軟件操作。這樣,每當(dāng)軟件執(zhí)行到該樁代碼時,就輸出此時軟件的執(zhí)行操作和執(zhí)行狀態(tài)信息,這樣的信息可以用于描述和解釋用戶操作的含義。一般地,可以將樁代碼設(shè)置為將上述信息輸出到特定存儲位置。因此,可以從特定存儲位置讀取軟件在操作過程中輸出的上述執(zhí)行操作和執(zhí)行狀態(tài)信息作為語義節(jié)點。根據(jù)另一種實施方式,提供一代碼分析器。通過啟發(fā)式算法對該代碼分析器進行訓(xùn)練,使其能夠分析軟件的源代碼或中間代碼,并在源代碼或中間代碼的特定位置插入上述樁代碼。從而,通過代碼分析器對軟件的“包裝”,使得軟件能夠與前述實施例類似地輸出執(zhí)行操作和執(zhí)行狀態(tài)信息作為語義節(jié)點。在另一實施例中,代碼分析器被配置為,分析軟件的運行時環(huán)境,從運行時環(huán)境中捕獲與軟件的執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息作為語義節(jié)點。在其他實施例中,還可以將以上實施方式進行組合。
[0043]在一個實施例中,上述軟件是與服務(wù)端交互的客戶端軟件。在這樣的情況下,用戶對客戶端軟件的操作還會關(guān)聯(lián)到服務(wù)端的執(zhí)行。典型地,用戶操作可能促使客戶端軟件向服務(wù)端發(fā)出一個請求,于是,服務(wù)端對該請求進行處理,并向客戶端返回一個響應(yīng)。在這樣的情況下,可以對軟件的服務(wù)端進行設(shè)置,使得至少一部分的語義節(jié)點由服務(wù)端輸出或提供,并通過多種傳輸協(xié)議傳送到客戶端。在一個例子中,服務(wù)端可以將語義節(jié)點包含在響應(yīng)的http頭域(header)中。于是,通過捕獲服務(wù)端返回的響應(yīng),可以獲得服務(wù)端提供的語義節(jié)點。
[0044]如前所述,語義節(jié)點可以包含與軟件的執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息,用以描述和解釋用戶操作的含義。例如,同時按下“Ctrl”鍵和“S”鍵的用戶操作和點擊“保存”按鈕的用戶操作會使得軟件執(zhí)行同樣的代碼段。根據(jù)前述實施例,可以使得每當(dāng)軟件執(zhí)行到該代碼段,就輸出此時的執(zhí)行操作信息(例如,軟件執(zhí)行了保存操作)以及執(zhí)行狀態(tài)信息(例如,保存的對象、保存的位置等)作為語義節(jié)點。此外,語義節(jié)點還包含一些屬性信息,從而便于對語義節(jié)點及對應(yīng)的軟件執(zhí)行環(huán)境進行辨別。具體地,語義節(jié)點包含節(jié)點ID,用以對語義節(jié)點進行標(biāo)識。此外,語義節(jié)點還可以被賦予以下屬性中的一個或多個,即,重要性、代碼位置、軟件信息、時間戳等,其中重要性用于表示該語義節(jié)點的重要程度,代碼位置用于表示該語義節(jié)點在軟件應(yīng)用中的位置,軟件信息包含軟件ID、版本等與軟件本身相關(guān)的信息,時間戳表示該語義節(jié)點產(chǎn)生的時間??梢岳斫?,根據(jù)分析需要,可以對語義節(jié)點的具體內(nèi)容進行多種修改,只要獲得的語義節(jié)點能夠用于描述用戶操作的含義。
[0045]根據(jù)以上描述的方式,在步驟32中獲得操作過程中產(chǎn)生的語義節(jié)點,從而形成語義節(jié)點序列。進一步地,在步驟34,將步驟30獲得的用戶操作序列和步驟32獲得的語義節(jié)點序列進行組合,從而形成操作過程的記錄腳本。在一個實施例中,可以將語義節(jié)點序列中的各個語義節(jié)點插入在用戶操作序列的相應(yīng)位置,從而形成記錄腳本。在另一實施例中,分別組織用戶操作序列和語義節(jié)點序列,將兩個序列的總和作為記錄腳本。盡管在圖3中,步驟30-34被示出為按照先后順序執(zhí)行,然而這并不是必須的。在一個實施例中,步驟30和步驟32可以并行執(zhí)行。
[0046]根據(jù)以上描述,可以通過圖3的方法來獲取一個操作過程的記錄腳本。將圖3的方法應(yīng)用于解決方案的操作過程,就可以獲得解決方案對應(yīng)的記錄腳本,即,執(zhí)行圖2的步驟22。根據(jù)一個實施例,在步驟22中,可以從幫助平臺的其他用戶獲取多個解決方案,其中每個解決方案通過圖3的方法提供為記錄腳本的形式。對于獲取的多個解決方案,為了幫助提問用戶識別出正確的解決方案,在步驟24,分析該多個解決方案對應(yīng)的記錄腳本中的語義節(jié)點序列,從而為各個解決方案提供推薦度信息。
[0047]圖4示出根據(jù)一個實施例提供推薦度信息的執(zhí)行過程,即上述步驟24的子步驟。在圖4所示的實施例中,首先在步驟241,計算多個解決方案的記錄腳本中的語義節(jié)點序列之間的相似度,然后在步驟242,基于計算的相似度確定各解決方案的出現(xiàn)頻率,接著,在步驟243,基于出現(xiàn)頻率確定各解決方案的推薦度。
[0048]如前所述,各個解決方案均提供為記錄腳本的形式,而記錄腳本包括用戶操作序列和語義節(jié)點序列。由于語義節(jié)點用于描述用戶操作的含義,因此,語義節(jié)點序列能夠更準(zhǔn)確地反映出對應(yīng)的解決方案的實質(zhì)操作過程。由此,可以通過對比兩個語義節(jié)點序列來判斷對應(yīng)的兩個解決方案是否為本質(zhì)相同的解決方案。為此,在步驟241中,計算各個解決方案對應(yīng)的語義節(jié)點序列之間的相似度。
[0049]在一個實施例中,將兩個語義節(jié)點序列之間的相似度定義為正比于兩個語義節(jié)點序列中相同語義節(jié)點的數(shù)目。具體地,在一個例子中,可以將兩個語義節(jié)點序列的相似度定義為,兩個語義節(jié)點序列中相同語義節(jié)點的數(shù)目相對于兩個序列的總長度(即,兩個序列中全部語義節(jié)點的數(shù)目的總和)的比例。或者,在另一例子中,可以將上述相似度定義為,兩個語義節(jié)點序列中相同語義節(jié)點的數(shù)目相對于兩個序列的平均長度的比例。相應(yīng)地,步驟241包括,計算任意兩個解決方案對應(yīng)的語義節(jié)點序列中相同語義節(jié)點的數(shù)目,基于該數(shù)目確定這兩個解決方案之間的相似度。
[0050]在一個實施例中,進一步考慮語義節(jié)點序列中語義節(jié)點的位置來計算上述相似度。具體地,在一個例子中,步驟241包括,計算任意兩個解決方案對應(yīng)的語義節(jié)點序列中在相同位置具有相同語義節(jié)點的數(shù)目,基于該數(shù)目確定這兩個解決方案之間的相似度。例如,可以將相似度定義為,兩個語義節(jié)點序列中在相同位置具有相同語義節(jié)點的數(shù)目相對于兩個序列的總長度或平均長度的比例。
[0051]在一個實施例中,進一步考慮語義節(jié)點序列中語義節(jié)點的排列順序來計算兩個語義節(jié)點序列之間的相似度。具體地,在一個例子中,步驟241包括,將兩個解決方案對應(yīng)的兩個語義節(jié)點序列對齊,確定兩個序列中相同子序列的最大長度,其中上述相同子序列是同時出現(xiàn)在兩個語義節(jié)點序列中的連續(xù)多個相同語義節(jié)點構(gòu)成的子序列。進而,可以將兩個語義節(jié)點序列之間的相似度定義為上述相同子序列的最大長度與兩個序列的總長度或平均長度的比例。
[0052]可以理解,除了以上列舉的計算方式之外,或者在以上列舉的計算方式的基礎(chǔ)上,還可以利用其他方式計算兩個語義節(jié)點序列之間的相似度。此外,現(xiàn)有技術(shù)中已經(jīng)提供多種算法來對比和確定兩個序列的相似度,這樣的算法也可以應(yīng)用在本發(fā)明實施例中,并包含在本發(fā)明范圍之內(nèi)。
[0053]在確定各個解決方案對應(yīng)的語義節(jié)點序列之間的相似度的基礎(chǔ)上,在步驟242,基于計算的相似度確定各解決方案的出現(xiàn)頻率。在一個實施例中,預(yù)先為相似度設(shè)置若干閾值。如果兩個解決方案的語義節(jié)點序列之間的相似度超過第一閾值,則將這兩個解決方案認(rèn)為是相同的解決方案。進而,在統(tǒng)計各個解決方案的出現(xiàn)次數(shù)時,將彼此之間相似度超過上述第一閾值的η個解決方案認(rèn)為是同一解決方案出現(xiàn)了 η次,由此確定各個解決方案的出現(xiàn)頻率?;蛘?,更一般地,在一個實施例中,將某解決方案i的出現(xiàn)頻率確定為,其他各個解決方案與該解決方案i的語義節(jié)點序列之間的相似度的總和。
[0054]進一步地,在步驟243,基于步驟242確定的出現(xiàn)頻率確定各解決方案的推薦度。在一個實施例中,將解決方案的推薦度確定為正比于其出現(xiàn)頻率。也就是說,對于出現(xiàn)頻率較大的解決方案,可以認(rèn)為它更有可能是正確的解決方案,因此為其賦予較高的推薦度。由此,通過上述步驟241-243,為各個解決方案提供了推薦度信息。
[0055]在以上基于出現(xiàn)頻率確定推薦度的基礎(chǔ)上,還可以進一步考慮更多因素來提供推薦度信息。在一個實施例中,本發(fā)明的方法還包括,獲取其他用戶對前述的多個解決方案的評價,基于所述評價提供推薦度信息。具體地,對于步驟22中獲取的多個解決方案,幫助平臺的其他用戶可以對這些解決方案進行驗證,以判斷該解決方案是否能夠有效解決提問用戶的軟件問題。在進行驗證之后,各個用戶可以將自己對解決方案的評價提供給幫助平臺,評價的方式可以是對解決方案進行打分、投票等。相應(yīng)地,幫助平臺接受所述其他用戶對各個解決方案的評價,確定各個解決方案的評價得分。評價得分可以是對用戶的打分、投票等評價進行統(tǒng)計后得出的量化的值。進而,在確定解決方案的推薦度時,幫助平臺可以將上述評價得分作為參考因素之一。在一個例子中,將解決方案的推薦度確定為,出現(xiàn)頻率與評價得分的加權(quán)求和,求和的各個權(quán)重可以根據(jù)需要進行設(shè)定。由此,綜合考慮解決方案的出現(xiàn)頻率和用戶對其的評價來給出該解決方案的推薦度,使得推薦度更好地反映該解決方案的正確性。
[0056]除了以上具體描述的確定推薦度信息的實施方式之外,還有可能進一步考慮更多相關(guān)因素,例如,各個解決方案的瀏覽次數(shù)、回放次數(shù)、用戶評論等,從而進一步優(yōu)化提供的推薦度信息。
[0057]在通過分析語義節(jié)點序列而確定各個解決方案的推薦度的基礎(chǔ)上,在步驟26,將各個解決方案連同其推薦度信息一同提供給用戶。在一個實施例中,根據(jù)推薦度的高低對各個解決方案進行排名,按照排名的順序提供各個解決方案及其推薦度。在一個實施例中,根據(jù)各個解決方案的語義節(jié)點序列之間的相似度對解決方案進行分組,使得每組包含相同或者相似的解決方案,其中相同的解決方式是指如前所述的語義節(jié)點序列之間的相似度超過第一閾值的解決方案,相似的解決方案是指語義節(jié)點序列之間的相似度超過第二閾值而低于第一閾值的解決方案。由此,在步驟26中,可以分組提供各個解決方案及其推薦度。在其他實施例中,還可以采用其他形式提供解決方案及其推薦度信息,從而便于用戶的瀏覽和選擇。
[0058]根據(jù)圖2所示的實施例,幫助平臺通過分析各個解決方案對應(yīng)的記錄腳本中的語義節(jié)點序列,為各個解決方案提供推薦度信息。利用如此提供的推薦度信息作為參考,提問用戶可以更加容易地識別出正確的解決方案,使得軟件問題的解決更加有效。
[0059]在一個實施例中,圖2的步驟20中獲得的軟件問題也提供為記錄腳本的形式。在這樣的情況下,幫助平臺有可能對軟件問題也進行分析,從而更有效地提供適當(dāng)?shù)慕鉀Q方案。圖5示出根據(jù)一個實施例的提供解決方案的方法流程圖。如圖5所示,首先在步驟50,獲取軟件問題對應(yīng)的記錄腳本??梢岳斫?,對于軟件問題的操作過程,也可以采用圖3所示的方法來獲取該操作過程的記錄腳本。類似地,該記錄腳本包括與軟件問題的操作過程對應(yīng)的用戶操作序列和語義節(jié)點序列。接著,在步驟51,通過分析該軟件問題的語義節(jié)點序列,判斷先前獲取的問題中是否存在與該軟件問題相同的問題。具體地,步驟51可以通過計算當(dāng)前軟件問題的語義節(jié)點序列與幫助平臺先前獲取的問題的語義節(jié)點序列的相似度來執(zhí)行。如果存在某一先前問題,其語義節(jié)點序列與當(dāng)前軟件問題的語義節(jié)點序列的相似度超過一預(yù)定閾值,則認(rèn)為該先前問題是與當(dāng)前軟件問題相同的問題。如果不存在這樣的先前問題,那么就認(rèn)為,不存在與當(dāng)前軟件問題相同的問題。
[0060]響應(yīng)于步驟51中否定的判斷結(jié)果,S卩,不存在與當(dāng)前軟件問題相同的問題,圖5的方法執(zhí)行步驟52,獲取多個解決方案,步驟54,分析該多個解決方案的語義節(jié)點序列,從而提供推薦度信息,以及步驟56,提供該多個解決方案及其推薦度信息。步驟52,54和56的執(zhí)行方式分別與圖2的步驟22,24和26相同,在此不再贅述。
[0061]響應(yīng)于步驟51中肯定的判斷結(jié)果,即,存在與當(dāng)前軟件問題相同的先前問題,圖5的方法執(zhí)行步驟53,判斷該先前問題是否已經(jīng)解決。如果該問題沒有得到解決,則仍然跳轉(zhuǎn)到步驟52,如前所述地執(zhí)行步驟52,54和56 ;如果該先前問題已經(jīng)得到解決,則在步驟55,獲取該先前問題對應(yīng)的已驗證解決方案。在一個實施例中,直接提供該已驗證解決方案作為最優(yōu)解決方案。在另一實施例中,為該已驗證解決方案賦予特定推薦度,并在步驟56,將該已驗證解決方案與從其他用戶征集的多個解決方案一起提供給用戶??梢岳斫猓梢詾樵撘羊炞C解決方案賦予較高推薦度,以表明該解決方案先前已被驗證為正確的解決方案。
[0062]在一個實施例中,在提供了多個解決方案及其推薦度信息的基礎(chǔ)上,本發(fā)明的方法還包括步驟58,其中獲取提問用戶對所提供的解決方案的反饋信息,基于所述反饋信息確定已驗證解決方案。具體地,對于步驟56提供的各個解決方案,提問用戶可以分別對其進行驗證,以判斷其正確性和有效性。在一個實施例中,提問用戶可以基于驗證結(jié)果向幫助平臺提供對各個解決方案的反饋信息,這樣的反饋信息可以包括,例如,軟件問題是否已經(jīng)解決、經(jīng)過驗證的正確的解決方案、選擇出的最優(yōu)的解決方案、對各個解決方案的打分等等。如果提問用戶的反饋信息顯示出軟件問題已經(jīng)解決,那么幫助平臺可以將該軟件問題標(biāo)記為已解決的問題。并且,基于上述反饋信息,可以將提問用戶經(jīng)過驗證認(rèn)為正確的解決方案標(biāo)記為已驗證解決方案。由此標(biāo)記的已驗證解決方案可用于在后續(xù)提出相同或類似的軟件問題時直接提供給后續(xù)的提問用戶。
[0063]通過以上各個實施例的方法,提問用戶可以發(fā)布任何軟件問題。在從其他用戶征集到多個解決方案的情況下,為各個解決方案提供推薦度信息,使得提問用戶能夠更加迅速地定位出正確的解決方案。
[0064]基于同一發(fā)明構(gòu)思,本發(fā)明實施例還提出了一種用于提供軟件問題解決方案的裝置。圖6示出根據(jù)本發(fā)明一個實施例的裝置的框圖。在圖6中,用于提供軟件問題解決方案的裝置總體上示出為600。如圖所示,裝置600包括:問題獲取單元60,配置為獲取提問用戶的軟件問題;方案獲取單元62,配置為從其他用戶獲取用于解決所述軟件問題的多個解決方案,所述多個解決方案被提供為記錄腳本的形式,所述記錄腳本包括用戶操作序列和對應(yīng)的語義節(jié)點序列,所述語義節(jié)點序列中的語義節(jié)點用于描述用戶操作的含義;方案分析單元64,配置為通過分析所述多個解決方案的記錄腳本中的語義節(jié)點序列,為所述多個解決方案提供推薦度信息;以及提供單元66,配置為提供所述多個解決方案及其推薦度信息。在一個實施例中,上述裝置600實現(xiàn)為一個幫助平臺。
[0065]在一個實施例中,上述多個解決方案的記錄腳本通過操作記錄單元提供,所述操作記錄單元配置為:對于各解決方案的操作過程,捕獲該操作過程中的用戶操作,形成用戶操作序列;獲取該操作過程中產(chǎn)生的語義節(jié)點,形成語義節(jié)點序列;以及組合所述用戶操作序列與所述語義節(jié)點序列,從而形成記錄腳本。
[0066]根據(jù)一個實施例,所述操作記錄單元配置為執(zhí)行以下中的至少一項:讀取在所述操作過程中軟件輸出的與執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息作為語義節(jié)點;從軟件運行時環(huán)境中捕獲與執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息作為語義節(jié)點;以及,從軟件服務(wù)端返回的響應(yīng)中捕獲語義節(jié)點。
[0067]在一個實施例中,上述操作記錄單元實現(xiàn)為裝置600的一部分,例如,實現(xiàn)為幫助平臺的一個功能部件。在一個實施例中,上述操作記錄單元實現(xiàn)為一個獨立的工具,與裝置600和用戶軟件連接和通信。在另一實施例中,上述操作記錄單元實現(xiàn)為用戶軟件的功能部件,例如用戶軟件的一個插件,并與裝置600連接和通信。
[0068]在一個實施例中,所述方案分析單元64包括:相似度計算模塊,配置為計算多個解決方案的記錄腳本中的語義節(jié)點序列之間的相似度;出現(xiàn)頻率計算模塊,配置為基于計算的相似度確定各解決方案的出現(xiàn)頻率;以及推薦度確定模塊,配置為基于所述出現(xiàn)頻率確定各解決方案的推薦度信息。以上模塊均未在圖6中示出。
[0069]根據(jù)一個實施例,所述相似度計算模塊配置為,計算所述多個解決方案中任意兩個解決方案對應(yīng)的語義節(jié)點序列中相同語義節(jié)點的數(shù)目,基于該數(shù)目確定這兩個解決方案之間的相似度。
[0070]在一個實施例中,裝置600還包括評價獲取單元(未示出),配置為獲取其他用戶對所述多個解決方案的評價,并且所述方案分析單元64還配置為,基于所述評價提供推薦度信息。
[0071]在一個實施例中,所述提供單元66配置為,根據(jù)推薦度信息對各個解決方案進行排名,按照排名的順序提供各個解決方案及其推薦度信息。
[0072]根據(jù)一個實施例,所述軟件問題也提供為記錄腳本的形式。
[0073]在此情況下,根據(jù)一個實施例,裝置600還包括問題分析單元(未示出),配置為分析所述軟件問題的記錄腳本中的語義節(jié)點序列,判斷是否存在與該軟件問題相同的先前問題;響應(yīng)于存在與所述軟件問題相同的先前問題,獲取該先前問題對應(yīng)的已驗證解決方案。
[0074]根據(jù)一個實施例,裝置600還包括反饋獲取單元(未示出),配置為獲取所述提問用戶對所述多個解決方案的反饋信息,基于所述反饋信息確定與所述軟件問題對應(yīng)的已驗證解決方案。
[0075]以上裝置600的具體執(zhí)行方式可以參照之前結(jié)合具體例子對方法的描述,在此不再贅述。
[0076]利用本發(fā)明實施例的方法和裝置,可以就任何軟件問題征集解決方案,并對征集的多個解決方案進行分析以提供推薦度信息。由此,提問用戶可以根據(jù)推薦度信息快速定位出正確的解決方案,使得問題的解決更加高效。
[0077]可以理解,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0078]以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進,或者使本【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能理解本文披露的各實施例。
【權(quán)利要求】
1.一種提供軟件問題解決方案的方法,包括: 獲取提問用戶的軟件問題; 從其他用戶獲取用于解決所述軟件問題的多個解決方案,所述多個解決方案被提供為記錄腳本的形式,所述記錄腳本包括用戶操作序列和對應(yīng)的語義節(jié)點序列,所述語義節(jié)點序列中的語義節(jié)點用于描述用戶操作的含義; 通過分析所述多個解決方案的記錄腳本中的語義節(jié)點序列,為所述多個解決方案提供推薦度信息;以及 提供所述多個解決方案及其推薦度信息。
2.根據(jù)權(quán)利要求1所述的方法,其中所述多個解決方案的記錄腳本通過以下方式提供:對于各解決方案的操作過程,捕獲該操作過程中的用戶操作,形成用戶操作序列;獲取該操作過程中產(chǎn)生的語義節(jié)點,形成語義節(jié)點序列;以及組合所述用戶操作序列與所述語義節(jié)點序列,從而形成記錄腳本。
3.根據(jù)權(quán)利要求2的方法,其中,獲取操作過程中產(chǎn)生的語義節(jié)點包括以下中的至少一項:讀取在所述操作過程中軟件輸出的與執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息作為語義節(jié)點;從軟件運行時環(huán)境中捕獲與執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息作為語義節(jié)點;以及,從軟件服務(wù)端返回的響應(yīng)中捕獲語義節(jié)點。
4.根據(jù)權(quán)利要求1的方法,其中為多個解決方案提供推薦度信息包括: 計算多個解決方案的 記錄腳本中的語義節(jié)點序列之間的相似度; 基于計算的相似度確定各解決方案的出現(xiàn)頻率;以及 基于所述出現(xiàn)頻率確定各解決方案的推薦度信息。
5.根據(jù)權(quán)利要求4的方法,其中計算多個解決方案的記錄腳本中的語義節(jié)點序列之間的相似度包括,計算所述多個解決方案中任意兩個解決方案對應(yīng)的語義節(jié)點序列中相同語義節(jié)點的數(shù)目,基于該數(shù)目確定這兩個解決方案之間的相似度。
6.根據(jù)權(quán)利要求4的方法,還包括,獲取其他用戶對所述多個解決方案的評價,基于所述評價提供推薦度信息。
7.根據(jù)權(quán)利要求1的方法,其中提供所述多個解決方案及其推薦度信息包括,根據(jù)推薦度信息對各個解決方案進行排名,按照排名的順序提供各個解決方案及其推薦度信息。
8.根據(jù)權(quán)利要求1的方法,其中所述軟件問題提供為記錄腳本的形式。
9.根據(jù)權(quán)利要求8的方法,還包括:分析所述軟件問題的記錄腳本中的語義節(jié)點序列,判斷是否存在與該軟件問題相同的先前問題;響應(yīng)于存在與所述軟件問題相同的先前問題,獲取該先前問題對應(yīng)的已驗證解決方案。
10.根據(jù)權(quán)利要求8的方法,還包括,獲取所述提問用戶對所述多個解決方案的反饋信息,基于所述反饋信息確定與所述軟件問題對應(yīng)的已驗證解決方案。
11.一種提供軟件問題解決方案的裝置,包括: 問題獲取單元,配置為獲取提問用戶的軟件問題; 方案獲取單元,配置為從其他用戶獲取用于解決所述軟件問題的多個解決方案,所述多個解決方案被提供為記錄腳本的形式,所述記錄腳本包括用戶操作序列和對應(yīng)的語義節(jié)點序列,所述語義節(jié)點序列中的語義節(jié)點用于描述用戶操作的含義; 方案分析單元,配置為通過分析所述多個解決方案的記錄腳本中的語義節(jié)點序列,為所述多個解決方案提供推薦度信息;以及 提供單元,配置為提供所述多個解決方案及其推薦度信息。
12.根據(jù)權(quán)利要求11所述的裝置,其中所述多個解決方案的記錄腳本通過操作記錄單元提供,所述操作記錄單元配置為:對于各解決方案的操作過程,捕獲該操作過程中的用戶操作,形成用戶操作序列;獲取該操作過程中產(chǎn)生的語義節(jié)點,形成語義節(jié)點序列;以及組合所述用戶操作序列與所述語義節(jié)點序列,從而形成記錄腳本。
13.根據(jù)權(quán)利要求12的裝置,其中所述操作記錄單元配置為執(zhí)行以下中的至少一項:讀取在所述操作過程中軟件輸出的與執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息作為語義節(jié)點;從軟件運行時環(huán)境中捕獲與執(zhí)行操作和執(zhí)行狀態(tài)相關(guān)的信息作為語義節(jié)點;以及,從軟件服務(wù)端返回的響應(yīng)中捕獲語義節(jié)點。
14.根據(jù)權(quán)利要求11的裝置,其中所述方案分析單元包括: 相似度計算模塊,配置為計算多個解決方案的記錄腳本中的語義節(jié)點序列之間的相似度; 出現(xiàn)頻率計算模塊,配置為基于計算的相似度確定各解決方案的出現(xiàn)頻率;以及 推薦度確定模塊,配置為基于所述出現(xiàn)頻率確定各解決方案的推薦度信息。
15.根據(jù)權(quán)利要求14的裝置,其中所述相似度計算模塊配置為,計算所述多個解決方案中任意兩個解決方 案對應(yīng)的語義節(jié)點序列中相同語義節(jié)點的數(shù)目,基于該數(shù)目確定這兩個解決方案之間的相似度。
16.根據(jù)權(quán)利要求14的裝置,還包括,評價獲取單元,配置為獲取其他用戶對所述多個解決方案的評價,所述方案分析單元還配置為,基于所述評價提供推薦度信息。
17.根據(jù)權(quán)利要求11的裝置,其中所述提供單元配置為,根據(jù)推薦度信息對各個解決方案進行排名,按照排名的順序提供各個解決方案及其推薦度信息。
18.根據(jù)權(quán)利要求11的裝置,其中所述軟件問題提供為記錄腳本的形式。
19.根據(jù)權(quán)利要求18的裝置,還包括問題分析單元,配置為分析所述軟件問題的記錄腳本中的語義節(jié)點序列,判斷是否存在與該軟件問題相同的先前問題;響應(yīng)于存在與所述軟件問題相同的先前問題,獲取該先前問題對應(yīng)的已驗證解決方案。
20.根據(jù)權(quán)利要求18的裝置,還包括,反饋獲取單元,配置為獲取所述提問用戶對所述多個解決方案的反饋信息,基于所述反饋信息確定與所述軟件問題對應(yīng)的已驗證解決方案。
【文檔編號】G06F17/30GK103885969SQ201210560591
【公開日】2014年6月25日 申請日期:2012年12月20日 優(yōu)先權(quán)日:2012年12月20日
【發(fā)明者】廖嘉俊, 楊偉杰, 關(guān)錦盛, 李浩泓, 馮悅勤 申請人:國際商業(yè)機器公司