一種關鍵詞模糊匹配的方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及互聯網技術領域,特別是涉及一種關鍵詞模糊匹配的方法及裝置。
【背景技術】
[0002] 隨著互聯網技術的迅猛發(fā)展,網絡傳播也得到了飛速發(fā)展。網絡傳播正在以不可 抵擋的勢頭,迅速滲透到世界各國政治、經濟、思想以及文化等諸多領域,改變著人們的生 活,改變著社會面貌。然而,網絡傳播不可避免地帶來了一系列負面作用,如意識形態(tài)和文 化滲透、假新聞假信息傳播、個人隱私遭到侵犯等等。
[0003] 在管理網絡傳播的過程中,通常涉及到文本內容分析、網絡輿情監(jiān)測、入侵檢測以 及信息檢索等領域,關鍵詞模糊匹配技術廣泛應用于上述領域中。
[0004] 在現有技術中,關鍵詞模糊匹配時,通常采用正則表達式的方式,即通過單個模式 字符串來描述和匹配一系列符合特性規(guī)則的字符串,一般通過正則匹配引擎將正則表達式 編譯為非確定型有窮自動機(NFA)或確定型有窮自動機(DFA),再對文本進行掃描和匹配, 通常正則表達式冗長,而且匹配關鍵詞的效率低,匹配過程耗時比較長,效率低,造成網絡 資源浪費。
【發(fā)明內容】
[0005] 本發(fā)明提供了一種關鍵詞模糊匹配的方法,在一定程度上能夠解決現有關鍵詞匹 配效率低的缺陷。
[0006] 本發(fā)明提供了如下方案:
[0007] -種關鍵詞模糊匹配的方法,包括:
[0008] 對待匹配文本中的每個字符,分別根據關鍵詞集合獲取所述字符所屬的關鍵詞以 及所述字符在所屬關鍵詞中的索引位;依據所述字符在所屬關鍵詞中的索引位判斷所述字 符是否為所述關鍵詞的首字符;如果所述字符是所屬關鍵詞的首字符,則在匹配信息集合 中記錄所述字符所屬關鍵詞,并在記錄中標記所述關鍵詞的首字符存在于所述待匹配文本 中;如果所述字符不是所屬關鍵詞的首字符,且所述匹配信息集合中存在所述字符所屬關 鍵詞的記錄時,獲取所述字符所屬關鍵詞的記錄,并在所述記錄中標記所述關鍵詞中的所 述字符存在于所述待匹配文本中;當一關鍵詞中的各字符都被標記存在于所述待匹配文本 中時,則判定所述待匹配文本命中所述關鍵詞。
[0009] 可選的,所述方法還包括:對所述關鍵詞集合中每個關鍵詞的每個字符,分別構建 對應各字符的匹配規(guī)則;所述匹配規(guī)則包含:字符、所述字符所屬關鍵詞、所述字符所屬關 鍵詞包括的字符數目、以及所述字符在所屬關鍵詞中的索引位;獲取關鍵詞中每個字符對 應的匹配規(guī)則,形成對應所述關鍵詞的匹配規(guī)則集合;根據所述匹配規(guī)則集合構建從字符 到匹配規(guī)則的倒排索引表;所述倒排索引表包括:字符、以及所述字符對應的所有匹配規(guī) 則。
[0010]可選的,所述根據關鍵詞集合獲取所述字符所屬的關鍵詞以及所述字符在所屬關 鍵詞中的索引位,包括:遍歷所述倒排索引表,當所述倒排索引表中包括所述字符時,獲取 所述字符對應的所有的匹配規(guī)則;對每條匹配規(guī)則,分別獲取所述匹配規(guī)則包括的所述字 符所屬關鍵詞、以及所述字符在所屬關鍵詞中的索引位。
[0011]可選的,所述如果所述字符是所屬關鍵詞的首字符,則在匹配信息集合中記錄所 述字符所屬關鍵詞,并在記錄中標記所述關鍵詞的首字符存在于所述待匹配文本中,包括: 如果所述字符是所屬關鍵詞的首字符,新建所述字符所屬關鍵詞對應的匹配過程信息,將 所述匹配過程信息保存在所述匹配信息集合中;并將所述字符在所述待匹配文本中的索引 位記錄到所述匹配過程信息中。
[0012] 可選的,如果所述字符不是所屬關鍵詞的首字符,且所述匹配信息集合中存在所 述字符所屬關鍵詞的記錄時,獲取所述字符所屬關鍵詞的記錄,并在所述記錄中標記所述 關鍵詞中的所述字符存在于待匹配文本中,包括:如果所述字符不是所屬關鍵詞的首字符, 則查找所述匹配信息集合,判斷所述匹配過程集合中是否存在所述字符所屬關鍵詞對應的 匹配過程信息,如果存在,則獲取所述字符所屬關鍵詞對應的匹配過程信息,并將所述字符 在所述待匹配文本中的索引位記錄到所述匹配過程信息中。
[0013] 可選的,當所述匹配過程集合中存在所述字符所屬關鍵詞對應的匹配過程信息 時,所述方法還包括:判斷所述字符所屬關鍵詞對應的匹配過程信息中是否已記錄過所述 字符在所述待匹配文本中的索引位;如果是,復制所述字符所屬關鍵詞中匹配過程信息,并 用所述字符在所述待匹配文本中的當前索引位更新所述匹配過程信息中已記錄的所述字 符在所述待匹配文本中的索引位;如果否,執(zhí)行獲取所述字符所屬關鍵詞對應的匹配過程 信息,并將所述字符在所述待匹配文本中的索引位記錄到所述匹配過程信息中的步驟。
[0014] 可選的,所述一關鍵詞中的各字符都被標記存在于所述待匹配文本中,包括:所述 字符所屬關鍵詞對應的匹配過程信息中的每一位都被置為對應位數的字符在所述待匹配 文本中的索引位。
[0015] 可選的,在所述判定所述待匹配文本命中所述關鍵詞之后,所述方法還包括:根據 各字符在所述待匹配文本中的索引位從所述待匹配文本中獲取匹配信息,輸出所述匹配信 息。
[0016] 可選的,還包括:對所述關鍵詞集合中的各關鍵詞,分別構建字符距離規(guī)則,形成 字符距離規(guī)則集合;所述字符距離規(guī)則包括:關鍵詞包括的字符數量、所述關鍵詞中各字符 與其前一個字符的有效距離;當對所述待匹配文本進行匹配時,根據所述字符距離規(guī)則集 合對當前字符所屬關鍵詞進行距離匹配校驗。
[0017] 可選的,所述根據所述字符距離規(guī)則集合對當前字符所屬關鍵詞進行匹配校驗, 包括:從所述當前字符所屬關鍵詞中獲取當前字符的前一個字符在所述待匹配文本中的索 引位,根據所述當前字符的前一個字符在所述待匹配文本中的索引位和所述當前字符在所 述待匹配文本中的索引位,計算所述當前字符與所述當前字符的前一個字符之間的第一距 離;從當前字符所屬關鍵詞對應的字符距離規(guī)則中獲取所述當前字符與所述當前字符的前 一個字符之間的有效距離作為第二距離;如果所述第二距離表示任一間隔長度,或者所述 第二距離大于所述第一距離,則表明距離校驗成功,獲取當前字符的下一個字符進行匹配; 如果所述第二距離表示不是任一間隔長度,并且所述第二距離小于所述第一距離,則表明 所述距離校驗失敗,所述匹配過程信息失效,結束對所述字符所屬關鍵詞的匹配。
[0018] -種關鍵詞模糊匹配的裝置,包括:獲取模塊,用于對待匹配文本中的每個字符, 分別根據關鍵詞集合獲取所述字符所屬的關鍵詞以及所述字符在所屬關鍵詞中的索引位; 判斷模塊,用于依據所述字符在所屬關鍵詞中的索引位判斷所述字符是否為所屬關鍵詞的 首字符;第一標記模塊,用于當所述判斷模塊的判斷結果為是時,在匹配信息集合中記錄所 述字符所屬關鍵詞,并在記錄中標記所述關鍵詞的首字符存在于所述待匹配文本中;第二 標記模塊,用于當所述判斷模塊的判斷結果為否且所述匹配信息集合中存在所述字符所屬 關鍵詞的記錄時,獲取所述字符所屬關鍵詞的記錄,并在所述記錄中標記所述關鍵詞中的 所述字符存在于所述待匹配文本中;確定模塊,用于當一關鍵詞中的各字符都被標記存在 于所述待匹配文本中時,則判定所述待匹配文本命中所述關鍵詞。
[0019] 可選的,一種用于關鍵詞模糊匹配的裝置,包括有存儲器,以及一個或者一個以上 的程序,其中一個或者一個以上程序存儲于存儲器中,且經配置以由一個或者一個以上處 理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:對待匹配文本中的每 個字符,分別根據關鍵詞集合獲取所述字符所屬的關鍵詞以及所述字符在所屬關鍵詞中的 索引位;依據所述字符在所屬關鍵詞中的索引位判斷所述字符是否為所述關鍵詞的首字 符;如果所述字符是所屬關鍵詞的首字符,則在匹配信息集合中記錄所述字符所屬關鍵詞, 并在記錄中標記所述關鍵詞的首字符存在于所述待匹配文本中;如果所述字符不是所屬關 鍵詞的首字符,且所述匹配信息集合中存在所述字符所屬關鍵詞的記錄時,獲取所述字符 所屬關鍵詞的記錄,并在所述記錄中標記所述關鍵詞中的所述字符存在于所述待匹配文本 中;當一關鍵詞中的各字符都被標記存在于所述待匹配文本中時,則判定所述待匹配文本 命中所述關鍵詞。
[0020] 根據本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術效果:
[0021] 通過本發(fā)明的一種關鍵詞模糊匹配的方法,對獲取到的待匹配文本中的每個字 符,分別獲取該字符所屬的關鍵詞,并判斷所述字符在所屬關鍵詞中的索引位,如果是首字 符,則記錄所述字符所屬關鍵詞,標記所述關鍵詞的首字符存在于所述待匹配文本中;如果 不是首字符,則從已記錄的關鍵詞中查找所述字符所屬關鍵詞,標記所述關鍵詞的中的所 述字符存在于所述待匹配文本中;當一關鍵詞中的各字符都被標記存在于待匹配文本中 時,該關鍵詞被待匹配文本命中。通過這種方法對關鍵詞中每個字符匹配,過濾掉首字符不 在待匹配文本中的關鍵詞的方式,不必窮舉每個關鍵詞,能夠快速地命中關鍵詞,節(jié)省時 間,提尚效率。
【附圖說明】
[0022] 為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施 例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲 得其他的附圖。
[0023] 圖1是本發(fā)明實施例提供的一種關鍵詞模糊匹配的方法流程圖;
[0024] 圖2是本發(fā)明實施例提供的一種對待匹配文本中的每個字符分別進行關鍵詞模糊 匹配的方法流程圖;
[0025] 圖3是本發(fā)明實施例提供的一種多關鍵詞模糊匹配的裝置框圖;
[0026] 圖4是根據一示例性實施例示出的一種用于關鍵詞模糊匹配的裝置800的框圖;
[0027] 圖5是本發(fā)明實施例中服務器的結構示意圖。
【具體實施方式】
[0028] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于 本發(fā)明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本發(fā)明保護的 范圍。
[0029] 本發(fā)明提供一種關鍵詞模糊匹配的方法,如圖1所示,包括:
[0030] 步驟S101:對待匹配文本中的每個字符,分別根據關鍵詞集合獲取該字符所屬的 關鍵詞以及該字符在所屬關鍵詞中的索引位;
[0031] 具體的,掃描待匹配文本,每掃描到一個字符,從關鍵詞集合中獲取該字符所屬的 關鍵詞,并且獲取該字符在所