本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種基于雙層trie樹的語(yǔ)句查詢方法及裝置。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,人工智能在日常生活中占據(jù)著越來(lái)越重要的作用,通過(guò)人工智能,能夠省去繁瑣的人為操作,提升用戶體驗(yàn),同時(shí)降低人為誤操作的概率。語(yǔ)音識(shí)別是當(dāng)前使用較為普遍的一項(xiàng)人工智能技術(shù),通過(guò)對(duì)語(yǔ)音的自動(dòng)識(shí)別,能夠省去用戶輸入的麻煩,同時(shí)能夠在第一時(shí)間接收語(yǔ)音反饋信息,用戶體驗(yàn)更好。但是,隨時(shí)網(wǎng)絡(luò)的普及,當(dāng)前的信息和數(shù)據(jù)越來(lái)越龐大,當(dāng)用戶需要查詢相關(guān)內(nèi)容時(shí),需要在龐大的信息和數(shù)據(jù)中搜索。當(dāng)前的語(yǔ)句查詢主要依賴正則表達(dá)式,但是正則條件較多,容易造成語(yǔ)義識(shí)別效率低,無(wú)法定義優(yōu)先級(jí)。
trie樹是一種單詞查找樹,能夠?qū)崿F(xiàn)模式匹配,解決單純依賴正則表達(dá)式進(jìn)行語(yǔ)句查詢時(shí)帶來(lái)的問(wèn)題。trie樹的每一個(gè)節(jié)點(diǎn)代表狀態(tài),根節(jié)點(diǎn)代表初始狀態(tài),葉子節(jié)點(diǎn)代表一次成功的匹配,而中間節(jié)點(diǎn)則代表匹配過(guò)程的中間狀態(tài)。從一個(gè)節(jié)點(diǎn)到其子節(jié)點(diǎn)的邊,稱為狀態(tài)轉(zhuǎn)移條件。若成功匹配出當(dāng)前字符串的前綴,則從當(dāng)前狀態(tài)進(jìn)入該前綴所對(duì)應(yīng)的邊所指向的下一狀態(tài)。
現(xiàn)有的trie樹進(jìn)行語(yǔ)句查詢時(shí),trie樹較為龐大,直接導(dǎo)致查詢效率低,影響用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
由于通過(guò)trie樹進(jìn)行語(yǔ)句查詢時(shí),trie樹較為龐大,直接導(dǎo)致查詢效率低,影響用戶體驗(yàn)的問(wèn)題,本發(fā)明提出一種基于雙層trie樹的語(yǔ)句查詢方法及裝置。
第一方面,本發(fā)明提出一種基于雙層trie樹的語(yǔ)句查詢方法,包括:
獲取待查詢語(yǔ)句的語(yǔ)音,識(shí)別出待查詢語(yǔ)句;
在模板樹中查詢待查詢語(yǔ)句;
當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞;
其中,所述模板樹為存有預(yù)設(shè)主題的相關(guān)詞的第一層trie樹,所述詞庫(kù)樹為存有預(yù)設(shè)主題的名詞的第二層trie樹,所述詞庫(kù)轉(zhuǎn)移條件為所述詞庫(kù)樹中的詞。
優(yōu)選地,所述在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞之后,還包括:
當(dāng)不滿足詞庫(kù)轉(zhuǎn)移條件時(shí),退出所述詞庫(kù)樹,在所述模板樹中查詢待查詢語(yǔ)句中的詞。
優(yōu)選地,所述在模板樹中查詢待查詢語(yǔ)句之前,還包括:
根據(jù)預(yù)設(shè)主題的名詞建立所述詞庫(kù)樹;
根據(jù)預(yù)設(shè)主題的相關(guān)詞建立所述模板樹。
優(yōu)選地,所述預(yù)設(shè)主題為歌曲播放,所述詞庫(kù)樹中存有歌手名和歌曲名,所述模板樹中存有歌曲播放相關(guān)的動(dòng)詞和連接詞。
優(yōu)選地,所述在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞之后,還包括:
記錄查詢到的歌手名和歌曲名,并根據(jù)查詢到的歌手名和歌曲名播放歌曲。
第二方面,本發(fā)明還提出一種基于雙層trie樹的語(yǔ)句查詢裝置,包括:
語(yǔ)音識(shí)別模塊,用于獲取待查詢語(yǔ)句的語(yǔ)音,識(shí)別出待查詢語(yǔ)句;
模板查詢模塊,用于在模板樹中查詢待查詢語(yǔ)句;
詞庫(kù)查詢模塊,用于當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞;
其中,所述模板樹為存有預(yù)設(shè)主題的相關(guān)詞的第一層trie樹,所述詞庫(kù)樹為存有預(yù)設(shè)主題的名詞的第二層trie樹,所述詞庫(kù)轉(zhuǎn)移條件為所述詞庫(kù)樹中的詞。
優(yōu)選地,還包括:
詞庫(kù)退出模塊,用于當(dāng)不滿足詞庫(kù)轉(zhuǎn)移條件時(shí),退出所述詞庫(kù)樹,在所述模板樹中查詢待查詢語(yǔ)句中的詞。
優(yōu)選地,還包括:
詞庫(kù)樹建立模塊,用于根據(jù)預(yù)設(shè)主題的名詞建立所述詞庫(kù)樹;
模板樹建立模塊,用于根據(jù)預(yù)設(shè)主題的相關(guān)詞建立所述模板樹。
優(yōu)選地,所述預(yù)設(shè)主題為歌曲播放,所述詞庫(kù)樹中存有歌手名和歌曲名,所述模板樹中存有歌曲播放相關(guān)的動(dòng)詞和連接詞。
優(yōu)選地,還包括:
歌曲播放模塊,用于記錄查詢到的歌手名和歌曲名,并根據(jù)查詢到的歌手名和歌曲名播放歌曲。
由上述技術(shù)方案可知,本發(fā)明通過(guò)語(yǔ)音識(shí)別待查詢語(yǔ)句,同時(shí)設(shè)置模板樹和詞庫(kù)樹雙層trie樹,將使用頻繁的模板語(yǔ)句與具體詞分開存儲(chǔ),查詢時(shí),將預(yù)設(shè)主題的相關(guān)詞存入模板樹,將預(yù)設(shè)主題的名詞存入詞庫(kù)樹,先在模板樹中查詢待查詢語(yǔ)句,當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞,一來(lái)避免模板語(yǔ)句的重復(fù)存儲(chǔ),二來(lái)減小了trie樹的深度和復(fù)雜程度,提高了查詢效率,從而提升了用戶體驗(yàn)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而 易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些圖獲得其他的附圖。
圖1為本發(fā)明一實(shí)施例提供的一種基于雙層trie樹的語(yǔ)句查詢方法的流程示意圖;
圖2為本發(fā)明一實(shí)施例提供的一種基于雙層trie樹的語(yǔ)句查詢裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖,對(duì)發(fā)明的具體實(shí)施方式作進(jìn)一步描述。以下實(shí)施例僅用于更加清楚地說(shuō)明本發(fā)明的技術(shù)方案,而不能以此來(lái)限制本發(fā)明的保護(hù)范圍。
圖1示出了本發(fā)明一實(shí)施例提供的一種基于雙層trie樹的語(yǔ)句查詢方法的流程示意圖,包括:
s101、獲取待查詢語(yǔ)句的語(yǔ)音,識(shí)別出待查詢語(yǔ)句;
s102、在模板樹中查詢待查詢語(yǔ)句;
s103、當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞;
其中,所述模板樹為存有預(yù)設(shè)主題的相關(guān)詞的第一層trie樹,所述詞庫(kù)樹為存有預(yù)設(shè)主題的名詞的第二層trie樹,所述詞庫(kù)轉(zhuǎn)移條件為所述詞庫(kù)樹中的詞。
預(yù)設(shè)主題的相關(guān)詞和預(yù)設(shè)主題的名詞不同,以歌曲主題為例,歌曲相關(guān)詞包括“唱首”、“聽首”、“欣賞”、“a的b”、“a和b”、“的”和“和”等,其中a表示歌手名,b表示歌曲名,a和b均存儲(chǔ)在詞庫(kù)樹中,而“a的b”和“a和b”的模板存儲(chǔ)在模板樹中。
本實(shí)施例通過(guò)語(yǔ)音識(shí)別待查詢語(yǔ)句,同時(shí)設(shè)置模板樹和詞庫(kù)樹雙層trie樹,將使用頻繁的模板語(yǔ)句與具體詞分開存儲(chǔ),查詢時(shí),將預(yù) 設(shè)主題的相關(guān)詞存入模板樹,將預(yù)設(shè)主題的名詞存入詞庫(kù)樹,先在模板樹中查詢待查詢語(yǔ)句,當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞,一來(lái)避免模板語(yǔ)句的重復(fù)存儲(chǔ),二來(lái)減小了trie樹的深度和復(fù)雜程度,提高了查詢效率,從而提升了用戶體驗(yàn)。
作為本實(shí)施例的可選方案,步驟s103之后,還包括:
s104、當(dāng)不滿足詞庫(kù)轉(zhuǎn)移條件時(shí),退出所述詞庫(kù)樹,在所述模板樹中查詢待查詢語(yǔ)句中的詞。
若當(dāng)前的詞不在詞庫(kù)樹中,則表示當(dāng)前詞語(yǔ)在詞庫(kù)樹已查詢完畢,則退出詞庫(kù)樹,重新在模板樹中查詢。降低了trie樹的搜索深度,并提高了搜索速度。
進(jìn)一步地,步驟s101之前,還包括:
s1001、根據(jù)預(yù)設(shè)主題的名詞建立所述詞庫(kù)樹;
s1002、根據(jù)預(yù)設(shè)主題的相關(guān)詞建立所述模板樹。
通過(guò)將預(yù)設(shè)主題的名詞存入詞庫(kù)樹,將預(yù)設(shè)主題的相關(guān)詞存入模板樹,建立雙層trie樹,減小了trie樹的深度,從而提高了查詢效率和用戶體驗(yàn)。
具體地,所述預(yù)設(shè)主題為歌曲播放,所述詞庫(kù)樹中存有歌手名和歌曲名,所述模板樹中存有歌曲播放相關(guān)的動(dòng)詞和連接詞。
通過(guò)將歌手名和歌曲名存入詞庫(kù)樹,將歌曲播放相關(guān)的動(dòng)詞和連接詞存入模板樹,能夠提高用戶語(yǔ)義識(shí)別速度,提高用戶體驗(yàn)。
更進(jìn)一步地,步驟s103之后,還包括:
s1031、記錄查詢到的歌手名和歌曲名,并根據(jù)查詢到的歌手名和歌曲名播放歌曲。
通過(guò)識(shí)別出用戶語(yǔ)義,記錄下查詢到的歌手名和歌曲名,自動(dòng)播放歌曲,提高用戶體驗(yàn)。
舉例來(lái)說(shuō),當(dāng)用戶輸入語(yǔ)音“唱首劉德華的忘情水”時(shí),本實(shí)施例提供的基于雙層trie樹的語(yǔ)句查詢方法具體步驟如下:
a1、獲取待查詢語(yǔ)句的語(yǔ)音,識(shí)別出待查詢語(yǔ)句;
a2、根據(jù)歌手名和歌曲名建立詞庫(kù)樹;
a3、根據(jù)歌曲相關(guān)詞建立模板樹;
歌曲相關(guān)詞包括“唱首”、“聽首”、“欣賞”、“a的b”、“a和b”、“的”和“和”等。其中,“唱首”、“聽首”和“欣賞”為固定詞;“a的b”和“a和b”為模板詞,a表示歌手名,b表示歌曲名,a和b均存儲(chǔ)在詞庫(kù)樹中。
a4、進(jìn)入模板樹的根節(jié)點(diǎn),進(jìn)入詞庫(kù)樹的根節(jié)點(diǎn);
a5、在模板樹中查詢到“唱”和“首”;
a6、經(jīng)詞庫(kù)轉(zhuǎn)移條件“劉”進(jìn)入詞庫(kù)樹進(jìn)行查詢,匹配出“劉德華”后,“的”并非詞庫(kù)樹的轉(zhuǎn)移條件,退出詞庫(kù)樹,返回模板樹;
a7、在模板樹中查詢到“的”;
a8、經(jīng)詞庫(kù)轉(zhuǎn)移條件“忘”進(jìn)入詞庫(kù)樹進(jìn)行查詢,匹配出“忘情水”后,查詢結(jié)束;
a9、記錄查詢到的歌手名和歌曲名,并根據(jù)查詢到的歌手名和歌曲名播放歌曲。
本實(shí)施例通過(guò)語(yǔ)音識(shí)別待查詢語(yǔ)句,同時(shí)設(shè)置模板樹和詞庫(kù)樹雙層trie樹,將使用頻繁的模板語(yǔ)句與具體詞分開存儲(chǔ),查詢時(shí),將預(yù)設(shè)主題的相關(guān)詞存入模板樹,將預(yù)設(shè)主題的名詞存入詞庫(kù)樹,先在模板樹中查詢待查詢語(yǔ)句,當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞,一來(lái)避免模板語(yǔ)句的重復(fù)存儲(chǔ),二來(lái)減小了trie樹的深度和復(fù)雜程度,提高了查詢效率,從而提升了用戶體驗(yàn)。
圖2示出了本實(shí)施例提供的一種基于雙層trie樹的語(yǔ)句查詢裝置的結(jié)構(gòu)示意圖,包括:
語(yǔ)音識(shí)別模塊21,用于獲取待查詢語(yǔ)句的語(yǔ)音,識(shí)別出待查詢語(yǔ)句;
模板查詢模塊22,用于在模板樹中查詢待查詢語(yǔ)句;
詞庫(kù)查詢模塊23,用于當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞;
其中,所述模板樹為存有預(yù)設(shè)主題的相關(guān)詞的第一層trie樹,所述詞庫(kù)樹為存有預(yù)設(shè)主題的名詞的第二層trie樹,所述詞庫(kù)轉(zhuǎn)移條件為所述詞庫(kù)樹中的詞。
本實(shí)施例通過(guò)語(yǔ)音識(shí)別待查詢語(yǔ)句,同時(shí)設(shè)置模板樹和詞庫(kù)樹雙層trie樹,將使用頻繁的模板語(yǔ)句與具體詞分開存儲(chǔ),查詢時(shí),將預(yù)設(shè)主題的相關(guān)詞存入模板樹,將預(yù)設(shè)主題的名詞存入詞庫(kù)樹,先在模板樹中查詢待查詢語(yǔ)句,當(dāng)滿足詞庫(kù)轉(zhuǎn)移條件時(shí),在詞庫(kù)樹中查詢待查詢語(yǔ)句中的詞,一來(lái)避免模板語(yǔ)句的重復(fù)存儲(chǔ),二來(lái)減小了trie樹的深度和復(fù)雜程度,提高了查詢效率,從而提升了用戶體驗(yàn)。
進(jìn)一步地,還包括:
詞庫(kù)退出模塊,用于當(dāng)不滿足詞庫(kù)轉(zhuǎn)移條件時(shí),退出所述詞庫(kù)樹,在所述模板樹中查詢待查詢語(yǔ)句中的詞。
若當(dāng)前的詞不在詞庫(kù)樹中,則表示當(dāng)前詞語(yǔ)在詞庫(kù)樹已查詢完畢,則退出詞庫(kù)樹,重新在模板樹中查詢。降低了trie樹的搜索深度,并提高了搜索速度。
更進(jìn)一步地,還包括:
詞庫(kù)樹建立模塊,用于根據(jù)預(yù)設(shè)主題的名詞建立所述詞庫(kù)樹;
模板樹建立模塊,用于根據(jù)預(yù)設(shè)主題的相關(guān)詞建立所述模板樹。
通過(guò)將預(yù)設(shè)主題的名詞存入詞庫(kù)樹,將預(yù)設(shè)主題的相關(guān)詞存入模板樹,建立雙層trie樹,減小了trie樹的深度,從而提高了查詢效率和用戶體驗(yàn)。
具體地,所述預(yù)設(shè)主題為歌曲播放,所述詞庫(kù)樹中存有歌手名和歌曲名,所述模板樹中存有歌曲播放相關(guān)的動(dòng)詞和連接詞。
通過(guò)將歌手名和歌曲名存入詞庫(kù)樹,將歌曲播放相關(guān)的動(dòng)詞和連接詞存入模板樹,能夠提高用戶語(yǔ)義識(shí)別速度,提高用戶體驗(yàn)。
進(jìn)一步地,還包括:
歌曲播放模塊,用于記錄查詢到的歌手名和歌曲名,并根據(jù)查詢到的歌手名和歌曲名播放歌曲。
通過(guò)識(shí)別出用戶語(yǔ)義,記錄下查詢到的歌手名和歌曲名,自動(dòng)播放歌曲,提高用戶體驗(yàn)。
本實(shí)施例所述的基于雙層trie樹的語(yǔ)句查詢裝置可以用于執(zhí)行上述方法實(shí)施例,其原理類似,此處不再贅述。
本發(fā)明的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。