本申請(qǐng)?zhí)峁┝艘环N信息匹配方法及裝置,包括:按照待匹配信息的字符順序接收所述待匹配信息;將待匹配信息在預(yù)先構(gòu)建的有窮狀態(tài)機(jī)DFA中進(jìn)行匹配,所述DFA由預(yù)設(shè)的關(guān)鍵字構(gòu)成,所述DFA中每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,所述狀態(tài)的子孫失敗狀態(tài)與所述狀態(tài)的字符相同;在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配。采用本申請(qǐng)所提供的技術(shù)方案,匹配過程只需要隨著DFA中的狀態(tài)一步一步地往下一個(gè)狀態(tài)跳轉(zhuǎn),無需返回上一狀態(tài)以匹配其他關(guān)鍵字,從而可以確保所述待匹配信息只需要掃描一遍即可完成匹配,極大地提高了匹配效率。
Information matching method and device
The invention provides an information matching method and device, including: according to the matching information of the character sequence to receive the information to be matched; the matching information in the pre built finite state machine in DFA, the DFA by default keyword, the DFA in each state of the output list including the state children failed the output list state, the state of the future failure condition and the state of the same characters; in the matching process, if the current state is not matched with the matching information of the character of the next state, jump to the current state of the state failed to match. With the technical scheme for the matching process only with DFA in the state of step by step, a state transition, without the need to return to a state to match other keywords, which can ensure the matching information need only scan can be completed, and greatly improves the matching efficiency.
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種信息匹配方法及裝置
本申請(qǐng)涉及計(jì)算機(jī)
,尤其涉及一種信息匹配方法及裝置。
技術(shù)介紹
隨著信息技術(shù)的不斷發(fā)展,越來越多的應(yīng)用場(chǎng)景需要進(jìn)行信息匹配,例如:搜索引擎的檢索詞匹配、論文的相似度匹配、拼寫檢查等。目前,信息匹配技術(shù)通常為利用java語言的indexof函數(shù)實(shí)現(xiàn)關(guān)鍵字匹配,即,建立預(yù)先寫有若干關(guān)鍵字的文件,將用戶在客戶端輸入的內(nèi)容與該文件中所含的每個(gè)關(guān)鍵字進(jìn)行匹配。假設(shè)預(yù)先建立的文件中包括100個(gè)關(guān)鍵字,那么,則需要進(jìn)行100次的全文掃描才能完成對(duì)用戶輸入內(nèi)容的信息匹配。在這個(gè)信息爆炸的時(shí)代,采用上述匹配方式進(jìn)行匹配的效率非常低,無法適應(yīng)信息量較大的場(chǎng)景。現(xiàn)有技術(shù)不足在于:現(xiàn)有的信息匹配方式效率低下,不能適應(yīng)信息量較大的場(chǎng)景。
技術(shù)實(shí)現(xiàn)思路
本申請(qǐng)實(shí)施例提出了一種信息匹配方法及裝置,以解決現(xiàn)有技術(shù)中信息匹配方式效率低下,不能適應(yīng)信息量較大的場(chǎng)景的技術(shù)問題。本申請(qǐng)實(shí)施例提供了一種信息匹配方法,包括如下步驟:按照待匹配信息的字符順序接收所述待匹配信息;將待匹配信息在預(yù)先構(gòu)建的有窮狀態(tài)機(jī)DFA中進(jìn)行匹配,所述DFA由預(yù)設(shè)的關(guān)鍵字構(gòu)成,所述DFA中每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,所述狀態(tài)的子孫失敗狀態(tài)與所述狀態(tài)的字符相同;在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配。本申請(qǐng)實(shí)施例提供了一種信息匹配裝置,包括:接收模塊,用于按照待匹配信息的字符順序接收所述待匹配信息;匹配模塊,用于將待匹配信息在預(yù)先構(gòu)建的有窮狀態(tài)機(jī)DFA中進(jìn)行匹配,所述DFA由預(yù)設(shè)的關(guān)鍵字構(gòu)成,所述DFA中每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,所述狀態(tài)的子孫失敗狀態(tài)與所述狀態(tài)的字符相同;在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配。有益效果如下:本申請(qǐng)實(shí)施例所提供的信息匹配方法及裝置,預(yù)先構(gòu)建由預(yù)設(shè)關(guān)鍵字構(gòu)成的有窮狀態(tài)機(jī)DFA,將待匹配信息在所述DFA中進(jìn)行匹配,由此關(guān)鍵字的匹配即變成了狀態(tài)機(jī)的跳轉(zhuǎn);由于本申請(qǐng)實(shí)施例中所述DFA每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),則跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配,所述待匹配信息的匹配過程只需要隨著所述DFA狀態(tài)一步一步地往下一狀態(tài)跳轉(zhuǎn),無需返回上一狀態(tài)以匹配其他關(guān)鍵字,從而可以確保所述待匹配信息只需要掃描一遍即可完成匹配,極大地提高了匹配效率。附圖說明下面將參照附圖描述本申請(qǐng)的具體實(shí)施例,其中:圖1示出了本申請(qǐng)實(shí)施例中信息匹配方法實(shí)施的流程示意圖;圖2示出了本申請(qǐng)實(shí)施例中DFA結(jié)構(gòu)示意圖;圖3示出了本申請(qǐng)實(shí)施例中DFA初始化時(shí)的示意圖;圖4示出了本申請(qǐng)實(shí)施例中DFA構(gòu)建完成后的結(jié)構(gòu)示意圖;圖5示出了本申請(qǐng)實(shí)施例中群組聊天限制的DFA示意圖;圖6示出了本申請(qǐng)實(shí)施例中信息匹配裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式為了使本申請(qǐng)的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本申請(qǐng)的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說明,顯然,所描述的實(shí)施例僅是本申請(qǐng)的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。并且在不沖突的情況下,本說明中的實(shí)施例及實(shí)施例中的特征可以互相結(jié)合。針對(duì)現(xiàn)有技術(shù)的不足,本申請(qǐng)實(shí)施例提出了一種信息匹配方法及裝置,下面進(jìn)行說明。圖1示出了本申請(qǐng)實(shí)施例中信息匹配方法實(shí)施的流程示意圖,如圖所示,所述信息匹配方法可以包括如下步驟:步驟101、按照待匹配信息的字符順序接收所述待匹配信息;步驟102、將待匹配信息在預(yù)先構(gòu)建的有窮狀態(tài)機(jī)(DFA,DeterministicFiniteAutomata)中進(jìn)行匹配,所述DFA由預(yù)設(shè)的關(guān)鍵字構(gòu)成,所述DFA中每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,所述狀態(tài)的子孫失敗狀態(tài)與所述狀態(tài)的字符相同;步驟103、在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配。具體實(shí)施中,所述待匹配信息可以為網(wǎng)絡(luò)博客中的一篇文章,也可以為word文檔中的某段文字。根據(jù)實(shí)際場(chǎng)景的及時(shí)性需要,所述待匹配信息可以為既有信息,也可以在用戶實(shí)時(shí)輸入的信息,例如:所述待匹配信息可以為已公開博文的標(biāo)題,也可以為用戶在搜索引擎中實(shí)時(shí)輸入的檢索詞語。除此之外,本申請(qǐng)實(shí)施例中所述待匹配信息還可以為語音,即,可以接收用戶輸入的語音信息,將所述語音(或轉(zhuǎn)換成對(duì)應(yīng)的文本)在預(yù)先構(gòu)建的DFA中進(jìn)行匹配,從而實(shí)現(xiàn)所述用戶言語內(nèi)容的檢測(cè)。本申請(qǐng)實(shí)施例中所述預(yù)先構(gòu)建的DFA,可以由預(yù)設(shè)的若干關(guān)鍵字組成,每個(gè)關(guān)鍵字所包含的字符均可以為所述DFA中的狀態(tài)節(jié)點(diǎn)。所述DFA中與某個(gè)狀態(tài)的字符相同的狀態(tài),可以作為所述狀態(tài)的子孫失敗狀態(tài),每個(gè)狀態(tài)的子孫失敗狀態(tài)可以在DFA構(gòu)建初始化時(shí)預(yù)先設(shè)定。在具體匹配過程中,可以從所述DFA的初始狀態(tài)開始匹配,如果當(dāng)前狀態(tài)的關(guān)鍵字集合包含所述待匹配信息中某個(gè)字符,則根據(jù)跳轉(zhuǎn)路徑跳轉(zhuǎn)到下一狀態(tài),以開始所述待匹配信息中下一字符的讀入;如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),則立即跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配;如果當(dāng)前狀態(tài)的輸出列表不為空,則說明已經(jīng)匹配到有相應(yīng)的關(guān)鍵字,所述當(dāng)前狀態(tài)的輸出列表即為本次新增的匹配到的所有關(guān)鍵字集合。本申請(qǐng)實(shí)施例所提供的信息匹配方法,可以將待匹配信息在預(yù)先構(gòu)建的DFA中進(jìn)行匹配,所述DFA中每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配,所述待匹配信息的匹配過程只需要隨著所述DFA中各個(gè)狀態(tài)的跳轉(zhuǎn)條件一步一步地向下一狀態(tài)跳轉(zhuǎn),無需返回上一狀態(tài)以匹配其他關(guān)鍵字,從而可以確保所述待匹配信息只需要掃描一遍即可完成匹配,極大地提高了匹配效率。實(shí)施中,所述方法可以進(jìn)一步包括:輸出與所述待匹配信息匹配的關(guān)鍵字集合。例如,預(yù)設(shè)的關(guān)鍵字可以為“紅顏薄命”、“燈紅酒綠”、“酒色”等,生成的DFA可以如圖2所示,其中,虛線代表某個(gè)狀態(tài)與其失敗狀態(tài)的關(guān)聯(lián)關(guān)系。DFA初始化時(shí),只有葉子節(jié)點(diǎn)默認(rèn)獲得輸出列表,其他非葉子節(jié)點(diǎn)的輸出列表為空,即:H的outputlist為{“紅顏薄命”};I的outputlist為{“燈紅酒綠”};J的outputlist為{“酒色”};在DFA初始化完畢時(shí),可以立即構(gòu)建各狀態(tài)與其子孫失敗狀態(tài)的關(guān)聯(lián)關(guān)系,A狀態(tài)的子孫失敗狀態(tài)為E,G狀態(tài)的子孫失敗狀態(tài)為C,并分別獲得其子孫失敗狀態(tài)的輸出列表。本申請(qǐng)實(shí)施例中雖然A、G存在子孫失敗狀態(tài),但由于它們的子孫失敗狀態(tài)的輸出列表也為空,故A、G的輸出列表依舊為空。假設(shè)待匹配信息為“察看紅酒色澤為品酒方法之一”,從start開始,匹配“紅”,跳轉(zhuǎn)到A狀態(tài)節(jié)點(diǎn)后,沒有與下一字符相匹配的狀態(tài),所以立即跳轉(zhuǎn)到E狀態(tài),從E開始繼續(xù)匹配,下一字符與“酒”匹配,故跳轉(zhuǎn)到G狀態(tài)節(jié)點(diǎn);在跳轉(zhuǎn)到G狀態(tài)節(jié)點(diǎn)后,沒有與下一字符相匹配的狀態(tài),所以立即跳轉(zhuǎn)到C狀態(tài),從C開始繼續(xù)匹配,存在與“色”匹配的下一狀態(tài)節(jié)點(diǎn),故跳轉(zhuǎn)到J節(jié)點(diǎn),得到輸出列表為J的輸出列表,即輸出與所述待匹配信息匹配的關(guān)鍵字本文檔來自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種信息匹配方法,其特征在于,包括如下步驟:按照待匹配信息的字符順序接收所述待匹配信息;將待匹配信息在預(yù)先構(gòu)建的有窮狀態(tài)機(jī)DFA中進(jìn)行匹配,所述DFA由預(yù)設(shè)的關(guān)鍵字構(gòu)成,所述DFA中每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,所述狀態(tài)的子孫失敗狀態(tài)與所述狀態(tài)的字符相同;在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配。
【技術(shù)特征摘要】
1.一種信息匹配方法,其特征在于,包括如下步驟:按照待匹配信息的字符順序接收所述待匹配信息;將待匹配信息在預(yù)先構(gòu)建的有窮狀態(tài)機(jī)DFA中進(jìn)行匹配,所述DFA由預(yù)設(shè)的關(guān)鍵字構(gòu)成,所述DFA中每個(gè)狀態(tài)的輸出列表包含所述狀態(tài)的子孫失敗狀態(tài)的輸出列表,所述狀態(tài)的子孫失敗狀態(tài)與所述狀態(tài)的字符相同;在匹配過程中,如果當(dāng)前狀態(tài)沒有與所述待匹配信息的字符相匹配的下一狀態(tài),跳轉(zhuǎn)到所述當(dāng)前狀態(tài)的失敗狀態(tài)繼續(xù)匹配。2.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括:輸出與所述待匹配信息匹配的關(guān)鍵字集合。3.如權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括:確定匹配的關(guān)鍵字在所述待匹配信息中的位置;根據(jù)關(guān)鍵字所在位置、預(yù)設(shè)關(guān)鍵字權(quán)重和關(guān)鍵字的匹配次數(shù)計(jì)算所述待匹配信息的重要度。4.如權(quán)利要求1所述的方法,其特征在于,在所述按照待匹配信息的字符順序接收所述待匹配信息之后,將待匹配信息在有窮狀態(tài)機(jī)DFA中進(jìn)行匹配之前,進(jìn)一步包括:對(duì)所述待匹配信息進(jìn)行預(yù)處理操作。5.如權(quán)利要求4所述的方法,其特征在于,所述預(yù)處理操作包括以下至少一種:中英文轉(zhuǎn)換、拼音漢字轉(zhuǎn)換、繁簡體轉(zhuǎn)換、全角半角轉(zhuǎn)換、數(shù)字大小寫轉(zhuǎn)換、去除干擾字符。6.如權(quán)利要求1所述的方法,其特征在于,在所述按照待匹配信息的字符順序接收所述待匹配信息之前,進(jìn)一步包括:根據(jù)預(yù)先設(shè)置的關(guān)鍵字構(gòu)建有窮狀態(tài)機(jī)DFA,所述DFA初始化時(shí)所有葉子節(jié)點(diǎn)分別獲得各自的輸出列表;建立所述DFA中各狀態(tài)與其子孫失敗狀態(tài)的關(guān)聯(lián)關(guān)系,每個(gè)狀態(tài)獲得所述狀態(tài)的子孫失敗狀態(tài)的輸出列表。7.一種信息匹配裝置,其特征在于,包括:接收模塊,用于按照待匹配信息的字符順序接收所述待匹配信息;匹配模塊,用于將待匹配...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:黎久希,
申請(qǐng)(專利權(quán))人:阿里巴巴集團(tuán)控股有限公司,
類型:發(fā)明
國別省市:開曼群島,KY
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。