本公開涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種虛擬角色名稱推薦方法、虛擬角色名稱推薦裝置、電子設(shè)備以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
在網(wǎng)絡(luò)中的各種游戲應(yīng)用或社交應(yīng)用時(shí),經(jīng)常需要?jiǎng)?chuàng)建虛擬角色并為虛擬角色命名。例如,在游戲應(yīng)用中,虛擬角色是用戶在游戲虛擬世界中存在的表現(xiàn)形式,用戶在創(chuàng)建新的虛擬角色時(shí),需要給虛擬角色創(chuàng)建一個(gè)角色名稱。同現(xiàn)實(shí)世界一樣,取一個(gè)滿意的名字并非一件容易的事情。由于用戶眾多,并且同一用戶可能同時(shí)擁有多個(gè)虛擬角色或多個(gè)賬號(hào),使得大量的名稱已經(jīng)被占用。用戶在創(chuàng)建新的虛擬角色時(shí)經(jīng)常會(huì)遇到嘗試使用的名稱已被占用的情況。針對(duì)這一情況,現(xiàn)有的解決方法通常是游戲應(yīng)用隨機(jī)生成一系列的隨機(jī)名稱并推薦給用戶,推薦的隨機(jī)名稱是按預(yù)定的規(guī)則或算法隨機(jī)生成的文字、數(shù)字或文字和數(shù)字的組合。由于對(duì)所有的用戶均采用相同的規(guī)則推薦隨機(jī)名稱,推薦的隨機(jī)名稱并不一定是用戶想要的名稱,所以用戶采用應(yīng)用推薦的隨機(jī)名稱的概率并不高。有些用戶雖然會(huì)采用應(yīng)用推薦的名稱,但對(duì)名稱的擁有感通常很低。另外,還經(jīng)常出現(xiàn)用戶選擇了某個(gè)推薦的隨機(jī)名稱,在確認(rèn)后應(yīng)用返回告知該名稱已經(jīng)被占用的情況,影響使用戶在名稱創(chuàng)建時(shí)耗費(fèi)過多的時(shí)間,并占用接口資源;甚至使用戶放棄該游戲應(yīng)用。
需要說明的是,在上述背景技術(shù)部分公開的信息僅用于加強(qiáng)對(duì)本公開的背景的理解,因此可以包括不構(gòu)成對(duì)本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實(shí)現(xiàn)要素:
本公開的目的在于提供一種虛擬角色名稱推薦方法、虛擬角色名稱推薦裝置、電子設(shè)備以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),進(jìn)而至少在一定程度上克服由于相關(guān)技術(shù)的限制和缺陷而導(dǎo)致的一個(gè)或者多個(gè)問題。
本公開的其他特性和優(yōu)點(diǎn)將通過下面的詳細(xì)描述變得顯然,或部分地通過本公開的實(shí)踐而習(xí)得。
根據(jù)本公開的第一方面,提供一種虛擬角色名稱推薦方法,包括:
根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù);
響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
在本公開的一種示例性實(shí)施例中,所述根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱包括:
對(duì)所述歷史名稱數(shù)據(jù)進(jìn)行預(yù)處理后生成一個(gè)或多個(gè)備用名稱。
在本公開的一種示例性實(shí)施例中,所述預(yù)處理包括以下一種或多種:
非法字符處理,去除所述歷史名稱中存在的與預(yù)設(shè)規(guī)則不符的字符;
名稱合并處理,對(duì)相似度大于預(yù)設(shè)值的多個(gè)所述歷史名稱進(jìn)行合并處理以生成一所述備用名稱;以及
名稱長(zhǎng)度處理,刪除字符長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度的所述歷史名稱中文字權(quán)重最低的字符至該所述歷史名稱的長(zhǎng)度不大于所述預(yù)設(shè)長(zhǎng)度。
在本公開的一種示例性實(shí)施例中,所述用戶歷史名稱數(shù)據(jù)包括所述用戶的通行證賬號(hào)在已注冊(cè)應(yīng)用中的所述歷史名稱,及/或所述用戶的設(shè)備識(shí)別碼、郵箱、移動(dòng)電話號(hào)碼或社交賬號(hào)中的一種或幾種所關(guān)聯(lián)應(yīng)用賬號(hào)中的所述歷史名稱。
在本公開的一種示例性實(shí)施例中,所述方法還包括:
在所述用戶的所述備用名稱庫(kù)為空時(shí),按預(yù)設(shè)算法生成多個(gè)隨機(jī)名稱并存入一隨機(jī)名稱庫(kù);
響應(yīng)一虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則在所述隨機(jī)名稱庫(kù)中選擇一所述隨機(jī)名稱發(fā)送至所述用戶。
在本公開的一種示例性實(shí)施例中,所述按預(yù)設(shè)算法生成多個(gè)隨機(jī)名稱并存入一隨機(jī)名稱庫(kù)包括:
對(duì)歷史名稱數(shù)據(jù)進(jìn)行分詞處理得到多個(gè)詞組并分別為各所述詞組設(shè)置位置標(biāo)簽;
按位置標(biāo)簽隨機(jī)抽取與各所述位置標(biāo)簽對(duì)應(yīng)的所述詞組以生成所述隨機(jī)名稱。
在本公開的一種示例性實(shí)施例中,所述方法還包括:
利用redis服務(wù)器集群存儲(chǔ)所述備用名稱庫(kù)或隨機(jī)名稱庫(kù);其中,所述redis服務(wù)器集群包括多個(gè)redis服務(wù)器。
在本公開的一種示例性實(shí)施例中,所述根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱還包括:
對(duì)所述備用名稱庫(kù)中的備用名稱按預(yù)設(shè)規(guī)則進(jìn)行排序并生成一備用名稱列表,并按所述備用名稱列表的順序?qū)⑺鰝溆妹Q發(fā)送至用戶。
在本公開的一種示例性實(shí)施例中,所述方法還包括:
所述虛擬角色名稱獲取請(qǐng)求由所述用戶主動(dòng)發(fā)起或者在所述用戶創(chuàng)建所述虛擬角色時(shí)自動(dòng)觸發(fā)。
根據(jù)本公開的第二方面,提供一種虛擬角色名稱推薦裝置,包括:
備用名稱生成模塊,用于根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù);
備用名稱發(fā)送模塊,用于響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
根據(jù)本公開的第三方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述程序被處理單元執(zhí)行時(shí)實(shí)現(xiàn)上述的虛擬角色名稱推薦方法。
根據(jù)本公開的第四方面,提供一種電子設(shè)備,包括:
處理單元;以及
存儲(chǔ)單元,用于存儲(chǔ)所述處理單元的可執(zhí)行指令;
其中,所述處理單元配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行以下操作:
根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù);
響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
本公開的一種實(shí)施例所提供的虛擬角色名稱推薦方法中,在用戶為虛擬角色確定名稱時(shí),利用用戶的歷史名稱生成多個(gè)備用名稱并存入一備用名稱庫(kù),再按照一定的規(guī)則將備用名稱分別推薦給用戶。由于備用名稱來自用戶曾使用過的歷史名稱,使得為用戶推薦的備用名稱具有用戶個(gè)性特點(diǎn),從而更容易被用戶選用,一方面能夠減少用戶在角色創(chuàng)建環(huán)節(jié)對(duì)時(shí)間的花費(fèi),以及減少用戶在創(chuàng)建角色名稱時(shí)對(duì)接口資源的長(zhǎng)時(shí)間占用;另一方面,避免用戶在選擇系統(tǒng)推薦的名稱卻被告知名稱已被占用情況的發(fā)生,進(jìn)而有效的提升用戶體驗(yàn)。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施例,并與說明書一起用于解釋本公開的原理。顯而易見地,下面描述中的附圖僅僅是本公開的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示意性示出本公開示例性實(shí)施例中一種虛擬角色名稱推薦方法的流程示意圖;
圖2示意性示出本公開示例性實(shí)施例中一種虛擬角色名稱推薦方法的整體流程示意圖;
圖3示意性示出本公開示例性實(shí)施例中一種虛擬角色名稱推薦方法的數(shù)據(jù)存儲(chǔ)、讀取流程示意圖;
圖4示意性示出本公開示例性實(shí)施例中一種虛擬角色名稱推薦裝置;
圖5示意性示出本公開示例性實(shí)施例中一種虛擬角色名稱推薦裝置的另一種示意圖;
圖6示意性示出本公開示例性實(shí)施例中一種虛擬角色名稱推薦裝置的再一種示意圖。
具體實(shí)施方式
現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實(shí)施方式使得本公開將更加全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個(gè)或更多實(shí)施方式中。
此外,附圖僅為本公開的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對(duì)它們的重復(fù)描述。附圖中所示的一些方框圖是功能實(shí)體,不一定必須與物理或邏輯上獨(dú)立的實(shí)體相對(duì)應(yīng)??梢圆捎密浖问絹韺?shí)現(xiàn)這些功能實(shí)體,或在一個(gè)或多個(gè)硬件模塊或集成電路中實(shí)現(xiàn)這些功能實(shí)體,或在不同網(wǎng)絡(luò)和/或處理器處理單元裝置和/或微控制器裝置中實(shí)現(xiàn)這些功能實(shí)體。
本示例實(shí)施方式中首先提供了一種虛擬角色名稱推薦方法,可以應(yīng)用于各種需要?jiǎng)?chuàng)建虛擬角色并為虛擬角色命名的網(wǎng)絡(luò)、單機(jī)等形式的游戲,或者社交應(yīng)用等。用戶在使用賬號(hào)登陸游戲或社交應(yīng)用后,在創(chuàng)建一個(gè)新的虛角色時(shí),一般需要為該虛擬角色新建名稱。由于現(xiàn)在游戲中用戶眾多,用戶的一個(gè)賬號(hào)中可能存在多個(gè)虛擬角色,而一般游戲的名稱預(yù)設(shè)規(guī)則不允許重復(fù)名稱的出現(xiàn),所以為虛擬角色起一個(gè)合適的、不重復(fù)的名稱就變得困難。參考圖1中所示,上述的虛擬角色名稱推薦方法可以包括以下步驟:
步驟s1,根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù);
步驟s2,響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
本示例實(shí)施方式所提供的虛擬角色名稱推薦方法中,由于為用戶推薦的備用名稱來自用戶曾使用過的歷史名稱,使得為用戶推薦的備用名稱具有用戶個(gè)性特點(diǎn),從而更容易被用戶選用,一方面能夠減少用戶在角色創(chuàng)建環(huán)節(jié)對(duì)時(shí)間的花費(fèi),以及減少用戶在創(chuàng)建角色名稱時(shí)對(duì)接口資源的長(zhǎng)時(shí)間占用;另一方面,避免用戶在選擇系統(tǒng)推薦的名稱卻被告知名稱已被占用情況的發(fā)生,進(jìn)而有效的提升用戶體驗(yàn)。
下面,將結(jié)合圖2至圖3對(duì)本示例實(shí)施方式中的虛擬角色名稱推薦方法的各個(gè)步驟進(jìn)行更詳細(xì)的說明。
在步驟s1中,根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù)。
本示例實(shí)施方式中,當(dāng)用戶在使用賬號(hào)登陸時(shí)或開始創(chuàng)建虛擬角色時(shí),游戲或社交應(yīng)用可以為用戶創(chuàng)建一備用名稱庫(kù),并且利用用戶曾經(jīng)使用過的歷史名稱生成一些新的備用名稱,并將這些備用名稱存儲(chǔ)在所述的備用名稱庫(kù)中。在創(chuàng)建用戶的備用名稱庫(kù)時(shí),可以檢索、查詢、收集用戶在所有應(yīng)用中曾經(jīng)使用過所有的歷史名稱,并為用戶建立對(duì)應(yīng)的歷史名稱庫(kù),將用戶的所有歷史名稱存儲(chǔ)在歷史名稱庫(kù)中。例如:玩家a,在游戲1中創(chuàng)建角色r1、r2,名字分別為name1和name2,在游戲2中創(chuàng)建角色r3,名稱為name3。則玩家a的歷史名稱為name1、name2和name3。
由于同一用戶可能同時(shí)擁有多個(gè)游戲的賬號(hào),也可能在同一游戲中的多個(gè)服務(wù)器內(nèi)創(chuàng)建角色,從而擁有多個(gè)歷史名稱。所以,在獲取用戶的歷史名稱數(shù)據(jù)時(shí),可以根據(jù)用戶的通行證賬號(hào)在已注冊(cè)游戲或應(yīng)用中獲取已經(jīng)創(chuàng)建角色的歷史名稱;或者通過用戶在登陸、注冊(cè)游戲或應(yīng)用時(shí)使用的設(shè)備識(shí)別碼、郵箱賬號(hào)、移動(dòng)電話號(hào)碼或者社交賬號(hào)進(jìn)行查詢,從而確定用戶以上述關(guān)聯(lián)的游戲或社交應(yīng)用中使用過的歷史名稱、id以及昵稱。
在步驟s2中,響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
本示例實(shí)施方式中,當(dāng)檢測(cè)到用戶的一虛擬角色名稱獲取請(qǐng)求時(shí),則自動(dòng)響應(yīng)用戶的該虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)的規(guī)則選擇所述備用名稱庫(kù)中的一個(gè)備用名稱,并將該備用名稱發(fā)送至用戶,給用戶以顯示,供用戶選擇。
具體而言,當(dāng)一用戶在使用賬號(hào)登陸游戲程序或社交應(yīng)用后,在創(chuàng)建角色過程中,編輯角色名稱時(shí)點(diǎn)擊、選中操作界面上的一用于獲取備用名稱的按鈕或虛擬控件時(shí),則向系統(tǒng)發(fā)送一備用名稱獲取請(qǐng)求。此時(shí),當(dāng)系統(tǒng)檢測(cè)到用戶的該備用名稱獲取請(qǐng)求時(shí),根據(jù)預(yù)設(shè)的名稱推薦規(guī)則在上述的備用名稱庫(kù)中選取備用名稱,并推送至顯示界面以供用戶選擇。
本示例實(shí)施方式中,上述的虛擬現(xiàn)實(shí)角色名稱推薦方法還可以包括:所述虛擬角色名稱獲取請(qǐng)求由所述用戶主動(dòng)發(fā)起或者在所述用戶創(chuàng)建所述虛擬角色時(shí)自動(dòng)觸發(fā)。
舉例來說,當(dāng)用戶登錄游戲或社交應(yīng)用后,可以是在用戶在創(chuàng)建一虛擬角色時(shí),通過鼠標(biāo)、鍵盤或其他輸入設(shè)備點(diǎn)擊、選擇一用于獲取備用名稱的虛擬控件時(shí)或?qū)嶓w按鍵時(shí),發(fā)送一虛擬角色名稱獲取請(qǐng)求。也可以是在檢測(cè)到用戶進(jìn)入虛擬角色創(chuàng)建程序時(shí);或檢測(cè)到用戶正在創(chuàng)建一虛擬角色時(shí);或者檢測(cè)到用戶的虛擬角色創(chuàng)建完成時(shí);或在創(chuàng)建一虛擬角色并進(jìn)入虛擬角色名稱確定程序或環(huán)節(jié)時(shí),自動(dòng)發(fā)送一虛擬角色名稱獲取請(qǐng)求。即可以是在檢測(cè)到用戶開始創(chuàng)建虛擬角色時(shí)或虛擬角色創(chuàng)建過程中,自動(dòng)發(fā)送虛擬角色名稱獲取請(qǐng)求。
本示例實(shí)施方式中,上述步驟s1中的根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱還可以包括:
對(duì)所述歷史名稱數(shù)據(jù)進(jìn)行預(yù)處理后生成一個(gè)或多個(gè)備用名稱。
舉例而言,上述的對(duì)歷史名稱進(jìn)行預(yù)處理可以包括以下一種或多種:
非法字符處理,去除所述歷史名稱中存在的與預(yù)設(shè)規(guī)則不符的字符;例如:刪除歷史名稱中帶有測(cè)試、檢測(cè)這類非正常名稱用詞,或者名稱中帶有的特殊符號(hào),使修改后的名稱符合名稱創(chuàng)建的預(yù)設(shè)規(guī)則。
名稱合并處理,對(duì)相似度大于預(yù)設(shè)值的多個(gè)所述歷史名稱進(jìn)行合并處理以生成一所述備用名稱。例如:將名稱合并處理的相似度預(yù)設(shè)值限定為兩個(gè)歷史名稱相似度大于80%,比如:包含五個(gè)字的名稱中的四個(gè)字相同,則把兩個(gè)歷史名稱中相同的字段合并形成一個(gè)新的名稱;若玩家的兩個(gè)名稱相似度小于80%時(shí),則將這兩個(gè)名稱都作為備用名稱并加入備用名稱庫(kù)中。
相似度計(jì)算規(guī)則可以是:
兩個(gè)名稱字符串相同子串的長(zhǎng)度*2/(name1長(zhǎng)度+name2長(zhǎng)度)。
舉例來說:name1:無雙武士者;name2:無雙武圣。
則其相似度為:3*2/(5+4)=66.7%
在這種情況下,兩個(gè)名稱的相似度小于80%,可將這兩個(gè)名稱都作為備用名稱加入至備用名稱庫(kù)中。
name1:大無雙武士;name2:無雙武士。
則其相似度為:4*2/(5+4)=88.9%
對(duì)于這種情況,可以將這兩個(gè)名稱合并生成“無雙武士”這個(gè)名稱,并將該名稱作為備用名稱加入備用名稱庫(kù)中。
名稱長(zhǎng)度處理,刪除字符長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度的所述歷史名稱中文字權(quán)重最低的字符至該所述歷史名稱的長(zhǎng)度不大于所述預(yù)設(shè)長(zhǎng)度。
如果用戶的歷史名稱的長(zhǎng)度大于預(yù)設(shè)名稱字符長(zhǎng)度,例如8個(gè)字符或14個(gè)字符,則對(duì)該歷史名字做文本處理,刪除文字權(quán)重最低的字。
上述歷史名稱中的文字權(quán)重可以按照tf-idf(術(shù)語(yǔ)頻率-逆文檔頻率,termfrequency–inversedocumentfrequency)算法進(jìn)行計(jì)算。首先將歷史名稱進(jìn)行分詞算法,對(duì)產(chǎn)生的所有分詞計(jì)算idf(逆向文件頻率,inversedocumentfrequency),idf定義為:
idf=log(n/docs(w,d))
其中:n為全部游戲玩家名字?jǐn)?shù)量,docs(w,d)代表詞w存在于多少個(gè)名字中的數(shù)量。通過計(jì)算所有詞的idf,刪掉權(quán)重低的詞,以使生成的備用名稱的字符長(zhǎng)度低于預(yù)設(shè)值。
通過將用戶的歷史名稱進(jìn)行文本分析并做預(yù)處理,可以將歷史名稱修改為符合當(dāng)前應(yīng)用預(yù)設(shè)規(guī)則的一個(gè)或多個(gè)備用名稱,并將預(yù)處理后生成的備用名稱存儲(chǔ)在所述備用名稱庫(kù)中,供用戶選擇、使用。預(yù)處理后的備用名稱來自于用戶曾使用過的歷史名稱,名稱的設(shè)計(jì)更接近個(gè)人用戶的習(xí)慣和風(fēng)格,使用戶對(duì)推薦的備用名稱能夠具有一定的親切感或者熟悉感,從而增大用戶對(duì)于系統(tǒng)推薦備用名稱的選中幾率,并且避免了用戶在選擇推薦的備用名稱卻被返回名稱被占用情況的發(fā)生;進(jìn)而有效提升用戶對(duì)于游戲或應(yīng)用的使用體驗(yàn)。
基于上述內(nèi)容,在本示例性實(shí)施方式中,上述的虛擬角色名稱推薦方法還可以包括:
步驟s3,在所述用戶的所述備用名稱庫(kù)為空時(shí),按預(yù)設(shè)算法生成多個(gè)隨機(jī)名稱并存入一隨機(jī)名稱庫(kù);
響應(yīng)一用戶的名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則在所述隨機(jī)名稱庫(kù)中選擇一所述隨機(jī)名稱發(fā)送至所述用戶。
參考圖2所示,當(dāng)用戶在創(chuàng)建角色時(shí),首先查看該用戶的備用名稱庫(kù)中是否存在備用名稱。在檢測(cè)到用戶的備用名稱庫(kù)為空,即用戶不存在歷史名稱數(shù)據(jù),此時(shí)為用戶生成一隨機(jī)名稱庫(kù),并按預(yù)設(shè)算法或規(guī)則將若干隨機(jī)名稱存儲(chǔ)在所述的隨機(jī)名稱庫(kù)中。并在接收到用戶的一名稱獲取請(qǐng)求時(shí),按應(yīng)用或系統(tǒng)的預(yù)設(shè)規(guī)則為用戶在隨機(jī)名稱庫(kù)中選擇可用的隨機(jī)名稱,并將隨機(jī)名稱發(fā)送至用戶界面并顯示,供用戶選擇、使用。這樣就可以滿足應(yīng)用對(duì)于沒有歷史名稱數(shù)據(jù)的用戶對(duì)于備用名稱的需求。
隨機(jī)名稱庫(kù)的生成可以包括以下步驟:
對(duì)歷史名稱數(shù)據(jù)進(jìn)行分詞處理得到多個(gè)詞組并分別為各所述詞組設(shè)置位置標(biāo)簽;
按位置標(biāo)簽隨機(jī)抽取與各所述位置標(biāo)簽對(duì)應(yīng)的所述詞組以生成所述隨機(jī)名稱。
具體來說,系統(tǒng)或應(yīng)用可以對(duì)所有用戶的歷史名稱進(jìn)行分詞處理,從而得到多個(gè)詞組,在生成詞組時(shí)為每個(gè)詞組設(shè)置位置標(biāo)簽,例如:一用戶的歷史名稱為“無雙武士”,則分詞處理后得到位置標(biāo)簽為1的“無雙”,以及位置標(biāo)簽為2的“武士”。
在生成隨機(jī)名稱時(shí),首先在位置標(biāo)簽為1的詞組中隨機(jī)選擇一個(gè)詞,然后從位置為2的詞中選擇一個(gè)詞,以此類推,當(dāng)生成的隨機(jī)名稱長(zhǎng)度大于等于預(yù)設(shè)規(guī)則長(zhǎng)度的時(shí)候則停止,生成的名稱作為推薦的隨機(jī)名字并存儲(chǔ)在隨機(jī)名稱庫(kù)中。通過使用所有玩家的歷史名稱在處理后生成隨機(jī)名稱,能夠有效避免生成的隨機(jī)名稱與用戶現(xiàn)有名稱相同的情況發(fā)生。同時(shí),由于是對(duì)所有玩家的歷史名稱進(jìn)行分詞處理,生成隨機(jī)名稱所選用的歷史名稱規(guī)模足夠大、數(shù)量足夠多,從而能有效避免為不同用戶或者同一用戶推薦的名稱重復(fù)的現(xiàn)象,確保推薦的名稱不會(huì)重復(fù);且生成的隨機(jī)名稱可以更自然,更接近用戶的名稱創(chuàng)建習(xí)慣,容易被用戶選用。
在本公開的其他示例性實(shí)施例中,上述的根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱還包括:
對(duì)所述備用名稱庫(kù)中的備用名稱按預(yù)設(shè)規(guī)則進(jìn)行排序并生成一備用名稱列表,并按所述備用名稱列表的預(yù)設(shè)順序?qū)⑺鰝溆妹Q發(fā)送至用戶。
通過設(shè)置名稱列表,可以將名稱庫(kù)中的名稱按一定的順序或類別推薦給用戶,從而提高用戶選中名稱的效率,縮短用戶選擇名稱的時(shí)間。
上述的備用名稱庫(kù),可以是一個(gè)key(主鍵)為用戶賬號(hào),value(值)為用戶備用名稱列表的key-value的集合。
當(dāng)然,在本公開的其他示例性實(shí)施方式中,上述的名稱推薦方法也可以為隨機(jī)名稱庫(kù)中的隨機(jī)名稱按預(yù)定規(guī)則生成隨機(jī)名稱列表,并按照隨機(jī)名稱列表的預(yù)設(shè)順序?qū)㈦S機(jī)名稱發(fā)送至用戶。
基于上述內(nèi)容,參考圖3所示,在本示例性實(shí)施方式中,上述的虛擬角色名稱推薦方法還包括:利用redis服務(wù)器集群存儲(chǔ)所述歷史名稱;其中,所述redis服務(wù)器集群包括多個(gè)redis服務(wù)器302。
各游戲應(yīng)用或社交應(yīng)用的數(shù)據(jù)存在于數(shù)據(jù)集群301中,經(jīng)過數(shù)據(jù)處理匯總導(dǎo)入到redis服務(wù)器集群中。最后游戲或應(yīng)用在客戶端303通過向redis服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求獲取到用戶數(shù)據(jù),并且按照排序整理后返回用戶歷史名稱或歷史名稱列表。
由于名稱推薦的實(shí)時(shí)性要求比較高,用戶在登錄時(shí)就需要返回?cái)?shù)據(jù)庫(kù)中的歷史名稱,所以對(duì)后臺(tái)數(shù)據(jù)的響應(yīng)可以限制平均響應(yīng)時(shí)間,例如在50毫秒以內(nèi),以便于用戶在登錄之后能馬上獲取到該用戶的歷史名稱,從而使用戶能夠及時(shí)獲取備用名稱或隨機(jī)名稱。因此在數(shù)據(jù)庫(kù)儲(chǔ)存引入了redis服務(wù)器302來存放歷史名稱,從而有效保證了實(shí)時(shí)性。redis服務(wù)器集群可以由三臺(tái)組成高可用性節(jié)點(diǎn),能夠保證在其中一到兩臺(tái)redis服務(wù)器302崩潰之后仍然能提供正常數(shù)據(jù)服務(wù)。
本公開實(shí)施例提供的虛擬角色名稱推薦方法,通過為每個(gè)用戶創(chuàng)建備用名稱庫(kù),并將各用戶的歷史名稱預(yù)處理后存儲(chǔ)在備用名稱庫(kù)中,在響應(yīng)用戶的備用名稱獲取請(qǐng)求時(shí)將備用名稱庫(kù)中的備用名稱按一定的順序和規(guī)則依次推薦給用戶;在判斷到用戶為沒有歷史名稱的新用戶時(shí),為用戶按預(yù)設(shè)的規(guī)則推薦隨機(jī)名稱,且隨機(jī)名稱的生成是基于所有用戶的歷史名稱;使得為用戶推薦的名稱更接近用戶的名稱創(chuàng)建習(xí)慣和規(guī)則,避免重復(fù)推薦和推薦的名稱被占用的情況發(fā)生,縮短用戶在創(chuàng)建虛擬角色名稱時(shí)所花費(fèi)的時(shí)間,從而有效解決系統(tǒng)推薦的虛擬名稱被用戶選用率低的問題。同樣的,本公開實(shí)施例所提供的方法也可以應(yīng)用于需要為用戶推薦名稱的社交軟件或其他應(yīng)用。
需要注意的是,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施例的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時(shí)間順序。另外,也易于理解,這些處理可以是例如在多個(gè)模塊中同步或異步執(zhí)行的。
進(jìn)一步的,參考圖4所示,本示例的實(shí)施方式中還提供了一種虛擬角色名稱推薦裝置2,包括備用名稱生成模塊201、備用名稱發(fā)送模塊202,其中:
所述備用名稱生成模塊201可以用于根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù)。
所述備用名稱發(fā)送模塊202可以用于響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
上述中各虛擬角色名稱推薦裝置的單元的具體細(xì)節(jié)已經(jīng)在對(duì)應(yīng)的虛擬角色名稱推薦方法中進(jìn)行了詳細(xì)的描述,因此此處不再贅述。
應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了用于動(dòng)作執(zhí)行的設(shè)備的若干模塊或者單元,但是這種劃分并非強(qiáng)制性的。實(shí)際上,根據(jù)本公開的實(shí)施方式,上文描述的兩個(gè)或更多模塊或者單元的特征和功能可以在一個(gè)模塊或者單元中具體化。反之,上文描述的一個(gè)模塊或者單元的特征和功能可以進(jìn)一步劃分為由多個(gè)模塊或者單元來具體化。
進(jìn)一步的,本示例的另一實(shí)施方式中還提供了一種能夠?qū)崿F(xiàn)虛擬角色名稱推薦的電子設(shè)備。
所屬技術(shù)領(lǐng)域的技術(shù)人員能夠理解,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。
在一些可能的實(shí)施方式中,根據(jù)本發(fā)明的電子設(shè)備可以至少包括至少一個(gè)處理單元、以及至少一個(gè)存儲(chǔ)單元。其中,所述存儲(chǔ)單元存儲(chǔ)有程序代碼,當(dāng)所述程序代碼被所述處理單元執(zhí)行時(shí),使得所述處理單元執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的用于保持?jǐn)?shù)據(jù)一致性方法中的步驟。例如,所述處理單元可以執(zhí)行如圖1中所示的步驟s1:根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù);步驟s2:響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
下面參照?qǐng)D5來描述根據(jù)本發(fā)明的這種實(shí)施方式的電子設(shè)備10。圖5顯示的電子設(shè)備10僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。
如圖5所示,電子設(shè)備10以通用計(jì)算設(shè)備的形式表現(xiàn)。電子設(shè)備10的組件可以包括但不限于:上述至少一個(gè)處理單元16、上述至少一個(gè)存儲(chǔ)單元28、連接不同系統(tǒng)組件(包括存儲(chǔ)單元28和處理單元16)的總線18。
總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)單元總線或者存儲(chǔ)單元控制器、外圍總線、圖形加速端口、處理單元或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。
存儲(chǔ)單元28可以包括易失性存儲(chǔ)單元形式的可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)單元(ram)30和/或高速緩存存儲(chǔ)單元32,還可以進(jìn)一步只讀存儲(chǔ)單元(rom)34。
存儲(chǔ)單元28還可以包括具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,這樣的程序模塊42包括但不限于:操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。
用于實(shí)現(xiàn)虛擬角色名稱推薦的電子設(shè)備10也可以與一個(gè)或多個(gè)外部設(shè)備14(例如鍵盤、指向設(shè)備、藍(lán)牙設(shè)備等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該電子設(shè)備10交互的設(shè)備通信,和/或與使得該電子設(shè)備10能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(i/o)接口22進(jìn)行。并且,用于實(shí)現(xiàn)虛擬角色名稱推薦的電子設(shè)備10還可以通過網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與電子設(shè)備10的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合電子設(shè)備10使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、raid系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過軟件實(shí)現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實(shí)現(xiàn)。因此,根據(jù)本公開實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是cd-rom,u盤,移動(dòng)硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺(tái)計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、終端裝置、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本公開實(shí)施方式的方法。
在一些可能的實(shí)施方式中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運(yùn)行時(shí),所述程序代碼用于使所述終端設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的用于保持?jǐn)?shù)據(jù)一致性的方法中的步驟,例如,所述終端設(shè)備可以執(zhí)行如圖1中所示的步驟s1:根據(jù)用戶的歷史名稱數(shù)據(jù)生成多個(gè)備用名稱并存入備用名稱庫(kù);步驟s2:響應(yīng)虛擬角色名稱獲取請(qǐng)求,根據(jù)預(yù)設(shè)規(guī)則從所述備用名稱庫(kù)中選擇一所述備用名稱發(fā)送至所述用戶。
所述程序產(chǎn)品可以采用一個(gè)或多個(gè)可讀介質(zhì)的任意組合??勺x介質(zhì)可以是可讀信號(hào)介質(zhì)或者可讀存儲(chǔ)介質(zhì)??勺x存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式盤、硬盤、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。
參考圖6所示,描述了根據(jù)本發(fā)明的實(shí)施方式的用于虛擬角色名稱推薦的程序產(chǎn)品40,其可以采用便攜式緊湊盤只讀存儲(chǔ)器(cd-rom)并包括程序代碼,并可以在終端設(shè)備,例如個(gè)人電腦上運(yùn)行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
可讀信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合??勺x信號(hào)介質(zhì)還可以是可讀存儲(chǔ)介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、有線、光纜、rf等等,或者上述的任意合適的組合。
可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言—諸如java、c++等,還包括常規(guī)的過程式程序設(shè)計(jì)語(yǔ)言—諸如“c”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算設(shè)備上部分在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算設(shè)備的情形中,遠(yuǎn)程計(jì)算設(shè)備可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)—連接到用戶計(jì)算設(shè)備,或者,可以連接到外部計(jì)算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本公開的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本公開的真正范圍和精神由所附的權(quán)利要求指出。