本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,特別是涉及一種多元聯(lián)想輸入的方法、裝置、設(shè)備以及可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
隨著計(jì)算機(jī)的普及,互聯(lián)網(wǎng)的很多領(lǐng)域都提供查詢或搜索功能,在用戶使用類似功能時(shí)都需要輸入待查詢信息,例如,在各個(gè)搜索引擎中,需要用戶輸入搜索信息,通過用戶輸入的搜索信息獲取搜索結(jié)果。
為了更方便的讓用戶輸入搜索信息,使用戶獲得更好的體驗(yàn),傳統(tǒng)的搜索引擎采用聯(lián)想輸入的方式,即通過用戶已經(jīng)輸入的字符,在后臺數(shù)據(jù)庫中進(jìn)行匹配,并將匹配結(jié)果顯示出來,供用戶參考或者供用戶選擇。
但是,傳統(tǒng)的搜索引擎僅支持單段聯(lián)想輸入的方式,即將用戶連續(xù)輸入的所有字符作為一個(gè)整體,在后臺數(shù)據(jù)庫中進(jìn)行匹配。顯示的對象信息也是將所有連續(xù)輸入的字符與后臺數(shù)據(jù)庫進(jìn)行匹配而獲得的結(jié)果,無法僅就部分文字段進(jìn)行查詢,造成顯示的對象信息難以符合用戶的預(yù)期,降低了用戶體驗(yàn)。尤其在進(jìn)行多對象之間的關(guān)聯(lián)查詢時(shí),需要一種支持多元聯(lián)想的輸入方式,使用戶在對任一對象進(jìn)行輸入時(shí)均可以進(jìn)行聯(lián)想輸入。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對傳統(tǒng)的聯(lián)系輸入時(shí),聯(lián)想結(jié)果不準(zhǔn)確,難以符合用戶預(yù)期,用戶體驗(yàn)降低的問題,提供一種多元聯(lián)想輸入的方法、裝置、設(shè)備以及可讀存儲(chǔ)介質(zhì)。
一種多元聯(lián)想輸入的方法,其中,所述方法包括:
獲取輸入的字符串;
在檢測到所述字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段;
在所述至少一個(gè)文字段中,獲取目標(biāo)文字段;
根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表;
獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
上述多元聯(lián)想輸入的方法,根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
作為一種具體實(shí)施例,其中,所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取當(dāng)前光標(biāo)位置;
根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
作為一種具體實(shí)施例,其中,所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段;
將所述末端文字段作為所述目標(biāo)文字段。
作為一種具體實(shí)施例,其中,所述根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表的步驟包括:
根據(jù)所述目標(biāo)文字段,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫進(jìn)行匹配,獲得與所述目標(biāo)文字段匹配的聯(lián)想詞;
統(tǒng)計(jì)所述聯(lián)想詞的數(shù)目;
若所述數(shù)目大于一個(gè),則根據(jù)預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序,并將排序后的聯(lián)想詞組成所述聯(lián)想詞列表。
作為一種具體實(shí)施例,其中,所述數(shù)據(jù)庫中包括與所述聯(lián)想詞一一對應(yīng)的權(quán)重;
所述按照預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序的步驟包括:
獲取每個(gè)所述聯(lián)想詞對應(yīng)的權(quán)重;
根據(jù)所述權(quán)重對所述聯(lián)想詞排序。
一種多元聯(lián)想輸入的裝置,其中,所述裝置包括:
輸入的字符串獲取模塊,用于獲取輸入的字符串;
字符串解析模塊,用于在檢測到所述字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段;
目標(biāo)文字段選擇模塊,用于在所述至少一個(gè)文字段中,獲取目標(biāo)文字段;
聯(lián)想詞列表獲取模塊,用于根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表;
聯(lián)想詞獲取模塊,用于獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
上述多元聯(lián)想輸入的裝置,根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
作為一種具體實(shí)施例,其中,所述目標(biāo)文字段選擇模塊包括:
光標(biāo)位置獲取單元,用于獲取當(dāng)前光標(biāo)位置;
第一目標(biāo)文字段獲取單元,用于根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
作為一種具體實(shí)施例,其中,所述目標(biāo)文字段選擇模塊包括:
字符串分割單元,用于獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段;
第二目標(biāo)文字段獲取單元,用于將所述末端文字段作為所述目標(biāo)文字段。
上述多元聯(lián)想輸入的裝置,根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
一種計(jì)算機(jī)設(shè)備,包括處理器、存儲(chǔ)器以及存儲(chǔ)在存儲(chǔ)器上的計(jì)算機(jī)指令,其中,所述計(jì)算機(jī)指令在被處理器執(zhí)行時(shí)實(shí)現(xiàn)的所述方法包括:
獲取輸入的字符串;
在檢測到所述字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段;
在所述至少一個(gè)文字段中,獲取目標(biāo)文字段;
根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表;
獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
上述計(jì)算機(jī)設(shè)備中存儲(chǔ)器所存儲(chǔ)的計(jì)算機(jī)指令,在被處理器執(zhí)行時(shí),根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取當(dāng)前光標(biāo)位置;
根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段;
將所述末端文字段作為所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表的步驟包括:
根據(jù)所述目標(biāo)文字段,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫進(jìn)行匹配,獲得與所述目標(biāo)文字段匹配的聯(lián)想詞;
統(tǒng)計(jì)所述聯(lián)想詞的數(shù)目;
若所述數(shù)目大于一個(gè),則根據(jù)預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序,并將排序后的聯(lián)想詞組成所述聯(lián)想詞列表。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述數(shù)據(jù)庫中包括與所述聯(lián)想詞一一對應(yīng)的權(quán)重;
所述按照預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序的步驟包括:
獲取每個(gè)所述聯(lián)想詞對應(yīng)的權(quán)重;
根據(jù)所述權(quán)重對所述聯(lián)想詞排序。
一種可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,其中,該計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)的方法包括:
獲取輸入的字符串;
在檢測到所述字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段;
在所述至少一個(gè)文字段中,獲取目標(biāo)文字段;
根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表;
獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
上述可讀存儲(chǔ)介質(zhì)所存儲(chǔ)的計(jì)算機(jī)指令,在被處理器執(zhí)行時(shí),根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取當(dāng)前光標(biāo)位置;
根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段;
將所述末端文字段作為所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表的步驟包括:
根據(jù)所述目標(biāo)文字段,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫進(jìn)行匹配,獲得與所述目標(biāo)文字段匹配的聯(lián)想詞;
統(tǒng)計(jì)所述聯(lián)想詞的數(shù)目;
若所述數(shù)目大于一個(gè),則根據(jù)預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序,并將排序后的聯(lián)想詞組成所述聯(lián)想詞列表。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述數(shù)據(jù)庫中包括與所述聯(lián)想詞一一對應(yīng)的權(quán)重;
所述按照預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序的步驟包括:
獲取每個(gè)所述聯(lián)想詞對應(yīng)的權(quán)重;
根據(jù)所述權(quán)重對所述聯(lián)想詞排序。
附圖說明
圖1為其中一個(gè)具體實(shí)施例提供的多元聯(lián)想輸入方法的應(yīng)用效果圖;
圖2為其中另一個(gè)具體實(shí)施例提供的多元聯(lián)想輸入方法的應(yīng)用效果圖;
圖3為其中一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入方法的流程圖;
圖4為其中一個(gè)具體實(shí)施例提供的多元聯(lián)想輸入方法的部分流程圖;
圖5為其中另一個(gè)具體實(shí)施例提供的多元聯(lián)想輸入方法的部分流程圖;
圖6為其中一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入方法的部分流程圖;
圖7為其中一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入方法的應(yīng)用流程圖;
圖8為其中另一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入方法的應(yīng)用流程圖;
圖9為其中一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
請參閱圖1,圖1為其中一個(gè)具體實(shí)施例提供的方法的應(yīng)用效果圖。110為用戶在瀏覽器輸入框中輸入的字符串,其中,111為預(yù)先設(shè)置的分隔符,112為被分隔符分隔出的第一文字段,113為被分隔符分隔的第二文字段,114為被分隔符分隔的第三文字段。在本實(shí)施例中,響應(yīng)于用戶輸入的文字信息,獲取輸入的字符串,并確定目標(biāo)文字段,即第三文字段114。根據(jù)第三文字段114獲得聯(lián)想詞121,122以及123,并將聯(lián)想詞121、122以及123顯示在候選列表120中。如圖所示,本實(shí)施例提供的方法可以僅根據(jù)第三文字段113的內(nèi)容獲取聯(lián)想詞121-123,聯(lián)想詞121-123可以供用戶參考,也可以供用戶選擇。
請參閱圖2,圖2為其中另一個(gè)具體實(shí)施例提供的方法的應(yīng)用效果圖。210為用戶在瀏覽器輸入框中輸入的字符串,其中211為預(yù)先設(shè)置的分隔符,212為被分隔符分隔出的第一文字段,213為被分隔符分隔的第二文字段,214為被分隔符分隔的第三文字段。在本實(shí)施例中,響應(yīng)于用戶輸入的光標(biāo)移動(dòng)信息,獲取輸入的字符串,并確定目標(biāo)文字段。即當(dāng)將光標(biāo)230從第三文字段214中的位置移動(dòng)至第二文字段213中的位置時(shí),根據(jù)光標(biāo)的當(dāng)前位置確定目標(biāo)文字段。即光標(biāo)所在的第二文字段213,。根據(jù)第二文字段213獲得聯(lián)想詞221、222以及223,并將聯(lián)想詞221、222以及223顯示在候選列表220中。如圖所示,本實(shí)施例提供的方法可以僅根據(jù)第二文字段213的內(nèi)容獲取聯(lián)想詞221-223,聯(lián)想詞221-223可以供用戶參考,也可以供用戶選擇。
請參閱圖3,圖3為一個(gè)實(shí)施方式提供的多元聯(lián)想輸入方法的流程圖。所述方法包括:
s320,獲取輸入的字符串。
具體地,獲取輸入的字符串??梢岳斫?,獲取輸入的字符串的動(dòng)作可以是響應(yīng)于用戶的輸入指令,所述輸入指令可以是光標(biāo)轉(zhuǎn)移信息,即用戶移動(dòng)光標(biāo)的操作,也可以是用戶輸入的文字信息。
具體地,獲取可以是指讀取用戶通過i/o設(shè)備輸入文字串。進(jìn)一步地,i/o設(shè)備包括并不限于鍵盤、鼠標(biāo)、虛擬鍵盤、話筒、觸摸屏等可以用于用戶向計(jì)算機(jī)輸入信息的設(shè)備。本實(shí)施例對輸入信息的方式不做具體限定,只要能滿足向計(jì)算機(jī)輸入信息并可以被計(jì)算機(jī)正確識別即可,也就是說,可以是通過鍵盤、鼠標(biāo)等設(shè)備鍵入信息,也可以是通過話筒的方式以語音的方式輸入語音信息,還可以是通過觸控的方式輸入的手寫信息。
具體地,所述輸入的字符串,是指用戶已輸入的所有文字信息的集合。例如,在一個(gè)關(guān)系搜索引擎中,輸入的字符串可以是指在瀏覽器中輸入框內(nèi)輸入的所有文字信息的集合。當(dāng)監(jiān)聽到用戶有輸入指令后,響應(yīng)于用戶的輸入指令,進(jìn)行獲取輸入的字符串的動(dòng)作。
s340,在檢測到所述輸入的字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段。
具體地,在檢測到所述輸入的字符串中存在分隔符時(shí),則利用分隔符對輸入的字符串進(jìn)行解析,并將輸入的字符串分割成多個(gè)文字段。例如,設(shè)輸入的字符串為string=“張三;李四;王五”,分隔符為分號(;),則解析輸入的字符串之后,獲得的三個(gè)文字段s1=“張三”、s2=“李四”、s3=“王五”。
具體地,分隔符可以是根據(jù)需求進(jìn)行配置的用于將前后的輸入字符進(jìn)行分隔的字符。根據(jù)預(yù)先配置的分隔符,對輸入的字符串進(jìn)行解析,獲得至少一個(gè)文字段。
進(jìn)一步地,所述分隔符的大小可以根據(jù)具體需求靈活配置,即可以是一個(gè)字節(jié)(byte),也可以多個(gè)字節(jié)(byte)。
更進(jìn)一步地,預(yù)先設(shè)置的分隔符,是根據(jù)需求預(yù)先設(shè)置的標(biāo)識,包括并不限于分號(;)、逗號(,)、句號(。)、斜線(/)等字符。可以理解,預(yù)先設(shè)置的分隔符應(yīng)當(dāng)避免與用戶可能輸入的字符沖突,即避免采用數(shù)據(jù)庫中聯(lián)想詞所包括的字符。
更具體地,可以采用分號(;)作為分隔符,即當(dāng)用戶想搜索張三與李四的關(guān)系時(shí),在關(guān)系搜索引擎中輸入“張三”后輸入分隔符分號(;),然后再輸入“李”,系統(tǒng)將根據(jù)“李”進(jìn)行聯(lián)想,并獲得聯(lián)想詞。
s360,在所述至少一個(gè)文字段中,獲取目標(biāo)文字段。
具體地,在步驟s340獲得的至少一個(gè)文字段中,選中一個(gè)文字段作為目標(biāo)文字段。
進(jìn)一步地,可以根據(jù)用戶不同的輸入指令,根據(jù)用戶輸入信息的不同,選擇不同的選中策略,在所述至少一個(gè)文字段中獲取目標(biāo)文字段。所述用戶的輸入指令可以是用戶輸入的文字信息,也可以是光標(biāo)移動(dòng)信息,還可以是熱區(qū)轉(zhuǎn)移信息。
s380,根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表。
具體地,根據(jù)目標(biāo)文字段,在已經(jīng)存儲(chǔ)的數(shù)據(jù)庫進(jìn)行匹配,獲得與目標(biāo)文字段匹配的聯(lián)想詞列表??梢岳斫猓雎?lián)想詞列表中可以包括零個(gè)、一個(gè)或者多個(gè)聯(lián)想詞。
具體地,輸出所述聯(lián)想詞列表是讓用戶獲知聯(lián)想詞列表,可以選擇用顯示的方式將聯(lián)想詞列表呈現(xiàn)在用戶面前,還可以使用聲音、觸摸等方式將第一候選列表發(fā)送給用戶,只要能讓用戶獲知聯(lián)想詞列表的內(nèi)容即可。
可選地,輸出所述聯(lián)想詞列表可以是指顯示所述聯(lián)想詞列表。
其中,所述顯示是指將聯(lián)想詞列表呈現(xiàn)在用戶面前,需要指出的是,本實(shí)施例對顯示的具體位置或具體方式并不做限定,只要能呈現(xiàn)在用戶面前,并使得用戶可以根據(jù)所述聯(lián)想詞列表的內(nèi)容進(jìn)行參考輸入或選擇輸入即可。進(jìn)一步地,在擁有輸入框的情況下,聯(lián)想詞列表可以顯示在輸入框的下方,并與輸入框的開始輸入字符的一端始終對齊。
s390,獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
具體地,獲取用戶根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。所述輸入包括用戶進(jìn)行參考輸入或者進(jìn)行選擇輸入。所述參考輸入,是指用戶參考聯(lián)想詞列表中的內(nèi)容繼續(xù)輸入聯(lián)想詞,直到完成輸入。所述選擇輸入,是指用戶聯(lián)想詞列表中進(jìn)行選擇聯(lián)想詞,并將用戶選定的候選對象作為用戶輸入的內(nèi)容。
上述多元聯(lián)想輸入的方法,根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
在其中一個(gè)具體實(shí)施例中,上述方法完成聯(lián)想輸入后,還可以根據(jù)不同的應(yīng)用場景根據(jù)聯(lián)想輸入信息進(jìn)行不同的檢索操作。例如,在關(guān)系搜索引擎中,可以根據(jù)多元聯(lián)想輸入的關(guān)鍵詞,去獲取不同對象之間的關(guān)系;在地圖搜索引擎中,可以根據(jù)多元聯(lián)想輸入的關(guān)鍵詞,去獲取不同地點(diǎn)之間的聯(lián)系。
請參閱圖4,圖4為其中一個(gè)具體實(shí)施例提供的方法的部分流程圖。其中,在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
s420,獲取當(dāng)前光標(biāo)位置。
具體地,如果用戶的輸入信息為光標(biāo)轉(zhuǎn)移信息,則獲取當(dāng)前光標(biāo)位置。由于光標(biāo)是用戶在進(jìn)行輸入時(shí)用來標(biāo)定將要輸入文字的位置,因此當(dāng)前光標(biāo)位置也就標(biāo)定了用戶需要進(jìn)行聯(lián)想輸入的文字段。光標(biāo)是用戶在進(jìn)行輸入時(shí)用來標(biāo)定將要輸入文字的位置??梢岳斫猓緦?shí)施例不限定光標(biāo)的表現(xiàn)形式,可以為一個(gè)閃動(dòng)的小豎線,也可以為閃動(dòng)的小橫線,還可以為一個(gè)靜態(tài)的指示箭頭,能用來標(biāo)定用戶將要輸入文字的位置的標(biāo)記均可作為本實(shí)施例的光標(biāo)。
s440,根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,獲取所述目標(biāo)文字段。
具體地,假設(shè)預(yù)先配置的分隔符將輸入的字符串string分隔成了多個(gè)文字段:{s1,s2,…,sn}。遍歷計(jì)算每個(gè)文字段的長度len(sn)。將字符串起始位置標(biāo)記為0,分隔符的長度為l,設(shè)獲取到的光標(biāo)位置為i,若i的值滿足:{[len(s1)+l]+[len(s2)+l]+…+[len(sk)+l]}<i<{[len(s1)+l]+[len(s2)+l]+…+[len(sk)+l]+len(sk+1)}時(shí),則可以根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段為sk+1。
請參閱圖5,圖5為其中另一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入方法的部分流程圖。其中,在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
s520,獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段。
具體地,分隔符將輸入的字符串分割成多個(gè)文字段,其中,離字符串起始位置最遠(yuǎn)的一個(gè)文字段為末端文字段,除末端文字段外的其他的文字段為前端文字段。例如,設(shè)一個(gè)字符串string=“張三;李四;王五;趙六”。預(yù)先配置的分隔符為分號(;),則字符串string經(jīng)過分隔符解析后得到的文字段包括:s1=“張三”、s2=“李四”、s3=“王五”、s4=“趙六”。而末端文字段為離字符串起始位置最遠(yuǎn)的一個(gè)文字段,即s4。
s540,將所述末端文字段作為所述目標(biāo)文字段。
具體地,將末端文字段作為所述目標(biāo)文字段??梢岳斫猓诒緦?shí)施例中,在用戶進(jìn)行連續(xù)輸入時(shí),始終以末端文字段作為目標(biāo)文字段。
請參閱圖6,圖6為其中一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入方法的部分流程圖。其中,所述根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表的步驟包括:
s620,根據(jù)所述目標(biāo)文字段,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫進(jìn)行匹配,獲得與所述目標(biāo)文字段匹配的聯(lián)想詞。
具體地,計(jì)算機(jī)可以根據(jù)目標(biāo)文字段,在后臺數(shù)據(jù)庫中進(jìn)行匹配,匹配出所有包含所述目標(biāo)文字段的聯(lián)想詞。所述數(shù)據(jù)庫是根據(jù)預(yù)先存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)庫,供程序查詢時(shí)進(jìn)行調(diào)用,數(shù)據(jù)庫中存儲(chǔ)有聯(lián)想詞供匹配??梢岳斫?,所述聯(lián)想詞的數(shù)目可以是零個(gè)、一個(gè)或者多個(gè)。
進(jìn)一步地,所述數(shù)據(jù)庫可以設(shè)置在本地,也可以設(shè)置在云端,還可以在本地設(shè)置一個(gè)本地?cái)?shù)據(jù)庫,并同時(shí)在云端設(shè)置一個(gè)云端數(shù)據(jù)庫,本地?cái)?shù)據(jù)庫可以根據(jù)云端數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行更新,云端數(shù)據(jù)庫也可以根據(jù)本地?cái)?shù)據(jù)庫的數(shù)據(jù)進(jìn)行更新。
s640,統(tǒng)計(jì)所述聯(lián)想詞的數(shù)目。
具體地,由于所述聯(lián)想詞的數(shù)目可以是零個(gè)、一個(gè)或者多個(gè),因此可以將聯(lián)想詞的數(shù)目進(jìn)行統(tǒng)計(jì)。
s660,若所述數(shù)目大于一個(gè),則根據(jù)預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序,并將排序后的聯(lián)想詞組成所述聯(lián)想詞列表。
具體地,如果步驟s504中統(tǒng)計(jì)的聯(lián)想詞的數(shù)目大于一個(gè),則按照預(yù)先設(shè)置的排序策略對聯(lián)想詞進(jìn)行排序,還可以根據(jù)預(yù)先存儲(chǔ)的與各個(gè)聯(lián)想詞一一對應(yīng)的權(quán)重進(jìn)行排序??梢岳斫?,如果所述數(shù)目為1個(gè),則不需要再做排序處理,可以將聯(lián)想詞直接組成聯(lián)想詞列表。
進(jìn)一步地,所述排序策略可以是根據(jù)各個(gè)聯(lián)想詞的首字母順序進(jìn)行排序,也可以是根據(jù)各個(gè)聯(lián)想詞的長度進(jìn)行排序,還可以根據(jù)匹配度進(jìn)行排序。根據(jù)具體需求選擇不同的排序策略,使得更符合用戶需求的聯(lián)想詞排在最容易被用戶獲知的位置,以提升用戶體驗(yàn)。
在一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入的方法中,所述數(shù)據(jù)庫中包括與所述聯(lián)想詞一一對應(yīng)的權(quán)重;
所述按照預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序的方法包括:
獲取每個(gè)所述聯(lián)想詞對應(yīng)的權(quán)重;根據(jù)所述權(quán)重對所述聯(lián)想詞排序。
具體地,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫中除了存儲(chǔ)有候選對象外,還為每一個(gè)候選對象建立一個(gè)權(quán)重字段用來存儲(chǔ)與各個(gè)聯(lián)想詞一一對應(yīng)的權(quán)重。在按照預(yù)先設(shè)置的排序策略對聯(lián)想詞進(jìn)行排序時(shí),首先在數(shù)據(jù)庫中獲取每個(gè)聯(lián)想詞對應(yīng)的權(quán)重,然后根據(jù)權(quán)重對聯(lián)想詞進(jìn)行排序。
進(jìn)一步地,所述權(quán)重還可以根據(jù)用戶習(xí)慣進(jìn)行更新。更進(jìn)一步地,采用神經(jīng)網(wǎng)絡(luò)算法,根據(jù)用戶習(xí)慣對數(shù)據(jù)庫中每個(gè)聯(lián)想詞的權(quán)重進(jìn)行更新。所述用戶習(xí)慣,可以根據(jù)具體需求,通過詞頻、用戶偏好等進(jìn)行分析統(tǒng)計(jì)獲得。
請參閱圖7,圖7為在一個(gè)具體實(shí)施例提供的多元聯(lián)想輸入方法的應(yīng)用流程圖,包括以下步驟:
s701,獲取輸入的字符串。
具體地,例如在一個(gè)關(guān)系搜索引擎中,若搜索“張三”與“李四”的關(guān)系。用戶輸入“張三”后,繼續(xù)輸入預(yù)先配置的分隔符分號(;),并輸入“李”。此時(shí),本實(shí)施例提供的方法可以將“李”作為當(dāng)前文字段進(jìn)行聯(lián)系。
具體地,獲取輸入的字符串,例如,獲取的輸入的字符串為“張三;李”。
s702,在檢測到所述輸入的字符串中存在分隔符時(shí),利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段。
具體地,例如,在檢索到輸入的字符串“張三;李”中存在分隔符時(shí),解析輸入的字符串,得到兩個(gè)文字段“張三”以及“李”。
s703,獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段。
具體地,例如,在“張三;李”中,末端文字段為遠(yuǎn)離輸入的字符串起始位置的文字段,即“李”。
s704,將所述末端文字段作為所述目標(biāo)文字段。
具體地,在上述舉例中,目標(biāo)文字段即為末端文字段“李”。
s705,根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表。
具體地,在上述舉例中,根據(jù)目標(biāo)文字段“李”,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫中進(jìn)行匹配,獲得與目標(biāo)文字段匹配的所有聯(lián)想詞,并將聯(lián)想詞組成聯(lián)想詞列表。將獲得的聯(lián)想詞列表以顯示的方式輸出到用戶的顯示界面中。
s706,獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
具體地,用戶可以在步驟s705輸出的聯(lián)想詞列表中進(jìn)行選擇輸入或者進(jìn)行參考輸入。
請參閱圖8,圖8為其中另一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入的應(yīng)用流程圖,包括以下步驟:
s801,獲取輸入的字符串。
具體地,同步驟s701。
s802,在檢測到所述輸入的字符串中存在分隔符時(shí),利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段。
具體地,同步驟s702。
s803,獲取當(dāng)前光標(biāo)位置。
具體地,將字符串起始位置標(biāo)記為0,假設(shè)獲取到的當(dāng)前光標(biāo)位置為2。
s804,根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
具體地,遍歷文字段的長度,例如“張三”的長度為4字節(jié)(byte),分隔符的長度為1字節(jié)(byte),“李”的長度為2字節(jié)(byte)。可以確定光標(biāo)的位置在文字段“張三”之間,即文字段“張三”為目標(biāo)文字段。
s805,根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表。
具體地,同步驟705。
s806,獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
具體地,同步驟706。
請參閱圖9,圖9為其中一個(gè)具體實(shí)施方式提供的多元聯(lián)想輸入的裝置的結(jié)構(gòu)示意圖。其中,所述裝置包括:
輸入的字符串獲取模塊910,用于獲取輸入的字符串。
字符串解析模塊930,用于在檢測到所述字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段。
目標(biāo)文字段選擇模塊950,用于在所述至少一個(gè)文字段中,獲取目標(biāo)文字段。
聯(lián)想詞列表獲取模塊970,用于根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表。
聯(lián)想詞獲取模塊990,用于獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
在其中一個(gè)具體實(shí)施例中,所述目標(biāo)文字段選擇模塊750包括:
光標(biāo)位置獲取單元,用于獲取當(dāng)前光標(biāo)位置;
第一目標(biāo)文字段獲取單元,用于根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
在其中另一個(gè)具體實(shí)施例中,所述目標(biāo)文字段選擇模塊750包括:
字符串分割單元,用于獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段;
第二目標(biāo)文字段獲取單元,用于將所述末端文字段作為所述目標(biāo)文字段。
上述多元聯(lián)想輸入的裝置,根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
一種計(jì)算機(jī)設(shè)備,包括處理器、存儲(chǔ)器以及存儲(chǔ)在存儲(chǔ)器上的計(jì)算機(jī)指令,其中,所述計(jì)算機(jī)指令在被處理器執(zhí)行時(shí)實(shí)現(xiàn)的所述方法包括:
獲取輸入的字符串;
在檢測到所述字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段;
在所述至少一個(gè)文字段中,獲取目標(biāo)文字段;
根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表;
獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
上述計(jì)算機(jī)設(shè)備中存儲(chǔ)器所存儲(chǔ)的計(jì)算機(jī)指令,在被處理器執(zhí)行時(shí),根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取當(dāng)前光標(biāo)位置;
根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段;
將所述末端文字段作為所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表的步驟包括:
根據(jù)所述目標(biāo)文字段,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫進(jìn)行匹配,獲得與所述目標(biāo)文字段匹配的聯(lián)想詞;
統(tǒng)計(jì)所述聯(lián)想詞的數(shù)目;
若所述數(shù)目大于一個(gè),則根據(jù)預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序,并將排序后的聯(lián)想詞組成所述聯(lián)想詞列表。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述數(shù)據(jù)庫中包括與所述聯(lián)想詞一一對應(yīng)的權(quán)重;
所述按照預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序的步驟包括:
獲取每個(gè)所述聯(lián)想詞對應(yīng)的權(quán)重;
根據(jù)所述權(quán)重對所述聯(lián)想詞排序。
一種可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,其中,該計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)的方法包括:
獲取輸入的字符串;
在檢測到所述字符串中存在分隔符時(shí),則利用分隔符解析所述輸入的字符串,獲得至少一個(gè)文字段;
在所述至少一個(gè)文字段中,獲取目標(biāo)文字段;
根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表;
獲取根據(jù)所述聯(lián)想詞列表輸入的聯(lián)想詞。
上述可讀存儲(chǔ)介質(zhì)所存儲(chǔ)的計(jì)算機(jī)指令,在被處理器執(zhí)行時(shí),根據(jù)預(yù)先設(shè)置的分隔符將字符串進(jìn)行分段,并在各個(gè)文字段中確定目標(biāo)文字段,僅以目標(biāo)文字段去獲取聯(lián)想詞,從而獲得準(zhǔn)確的匹配結(jié)果,提升用戶體驗(yàn)。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取當(dāng)前光標(biāo)位置;
根據(jù)所述當(dāng)前光標(biāo)位置,在所述至少一個(gè)文字段中,選中所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述在所述至少一個(gè)文字段中,獲取目標(biāo)文字段的步驟包括:
獲取利用分隔符將所述輸入的字符串分割的前端文字段及末端文字段;
將所述末端文字段作為所述目標(biāo)文字段。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述根據(jù)所述目標(biāo)文字段,輸出與所述目標(biāo)文字段匹配的聯(lián)想詞列表的步驟包括:
根據(jù)所述目標(biāo)文字段,在預(yù)先存儲(chǔ)的數(shù)據(jù)庫進(jìn)行匹配,獲得與所述目標(biāo)文字段匹配的聯(lián)想詞;
統(tǒng)計(jì)所述聯(lián)想詞的數(shù)目;
若所述數(shù)目大于一個(gè),則根據(jù)預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序,并將排序后的聯(lián)想詞組成所述聯(lián)想詞列表。
作為一個(gè)具體實(shí)施例,其中,處理器執(zhí)行的所述數(shù)據(jù)庫中包括與所述聯(lián)想詞一一對應(yīng)的權(quán)重;
所述按照預(yù)先設(shè)置的排序策略對所述聯(lián)想詞進(jìn)行排序的步驟包括:
獲取每個(gè)所述聯(lián)想詞對應(yīng)的權(quán)重;
根據(jù)所述權(quán)重對所述聯(lián)想詞排序。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。