本申請涉及數據處理,具體而言,涉及一種基于深度學習的正則表達式匹配方法、裝置、電子設備及存儲介質。
背景技術:
1、在文本數據隱藏等應用中,首先需要從海量文本中自動、高效地篩選出符合特定格式或語法規則的文本載體。正則表達式是實現此類模式匹配與篩選的核心技術。然而,面對海量數據,當前基于確定性有限自動機的傳統正則表達式匹配方法,因其固有的串行掃描機制,存在嚴重的處理速度瓶頸,無法滿足高效篩選的需求。雖然現有技術中通常采用并行掃描的方式來提升掃描速度,但是掃描結果準確性不佳,連接概率低。
技術實現思路
1、本申請實施例的目的在于提供一種基于深度學習的正則表達式匹配方法、裝置、電子設備及存儲介質,用以提高文本并行掃描的準確性。
2、第一方面,本發明提供一種基于深度學習的正則表達式匹配方法,方法包括獲取待處理文本串,并分割為多個文本子串;將多個文本子串按順序輸入預先訓練好的預測模型,以獲取預測模型輸出的初始狀態預測結果,初始狀態預測結果包括每個文本子串的預測初始dfa狀態值;針對每個文本子串,基于該文本子串的預測初始dfa狀態值進行字符串掃描,以獲得對應的正則表達式掃描結果;基于所有文本子串對應的掃描結果之間的連接關系,確定是否滿足拼接條件,以獲取待處理文本串的正則表達式掃描結果。
3、在可選的實施方式中,基于所有文本子串對應的掃描結果之間的連接關系,確定是否滿足拼接條件,以獲取待處理文本串的正則表達式掃描結果的步驟,具體包括:
4、按順序對相鄰文本子串對應的掃描結果的連接關系進行匹配,確定是否滿足拼接條件;
5、若滿足,則對文本子串對應的掃描結果進行拼接;
6、若不滿足,則對后一個文本子串對應的掃描結果進行更新,并返回執行按順序對相鄰文本子串對應的掃描結果的連接關系進行匹配,確定是否滿足拼接條件的步驟。
7、在可選的實施方式中,確定前一個文本子串對應的掃描結果的終止dfa狀態值、與后一個文本子串對應的掃描結果的初始dfa狀態值是否相同;
8、若相同,則確定滿足拼接條件;
9、若不相同,則確定不滿足拼接條件。
10、在可選的實施方式中,對后一個文本子串對應的掃描結果進行更新的步驟,具體包括:
11、以前一個文本子串對應的掃描結果的終止dfa狀態值為初始dfa狀態值,對后一個文本子串重新進行掃描,以作為后一個文本子串更新后的掃描結果。
12、在可選的實施方式中,針對每個文本子串,將該文本子串輸入對應的dfa掃描引擎,以該文本子串的預測初始dfa狀態值按照目標狀態轉換規則進行字符串掃描,以獲得對應的正則表達式掃描結果。
13、在可選的實施方式中,預測模型通過以下步驟訓練獲得:
14、獲取樣本長文本,對樣本長文本進行串行掃描,記錄每個字符位置對應的dfa狀態值;
15、從掃描軌跡中隨機截取定長文本片段,并將定長文本片段起始位置對應的dfa狀態值作為真實初始狀態標簽,構建由文本片段與初始狀態標簽組成的訓練樣本集;
16、將訓練樣本集中的文本片段輸入深度神經網絡模型,輸出多個試驗初始dfa狀態值的預測概率分布;
17、基于預測概率分布與真實初始狀態標簽之間的差異計算損失函數值,并通過反向傳播算法更新模型參數,迭代訓練直至滿足收斂條件,得到訓練好的預測模型。
18、第二方面,本發明提供一種基于深度學習的正則表達式匹配裝置,裝置包括:
19、獲取模塊,用于獲取待處理文本串,并分割為多個文本子串;
20、預測模塊,用于將多個文本子串按順序輸入預先訓練好的預測模型,以獲取預測模型輸出的初始狀態預測結果,初始狀態預測結果包括每個文本子串的預測初始dfa狀態值;
21、掃描模塊,用于針對每個文本子串,基于該文本子串的預測初始dfa狀態值進行字符串掃描,以獲得對應的正則表達式掃描結果;
22、拼接模塊,用于基于所有文本子串對應的掃描結果之間的連接關系,確定是否滿足拼接條件,以獲取待處理文本串的正則表達式掃描結果。
23、在可選的實施方式中,拼接模塊具體用于按順序對相鄰文本子串對應的掃描結果的連接關系進行匹配,確定是否滿足拼接條件;
24、若滿足,則對文本子串對應的掃描結果進行拼接;
25、若不滿足,則對后一個文本子串對應的掃描結果進行更新,并返回執行按順序對相鄰文本子串對應的掃描結果的連接關系進行匹配,確定是否滿足拼接條件的步驟。
26、第三方面,本發明提供一種電子設備,包括:處理器、存儲器和總線,存儲器存儲有處理器可執行的機器可讀指令,當電子設備運行時,處理器與存儲器之間通過總線通信,處理器執行機器可讀指令,以執行如前述實施方式任一基于深度學習的正則表達式匹配方法的步驟。
27、第四方面,本發明提供一種計算機可讀存儲介質,計算機可讀存儲介質上存儲有計算機程序,計算機程序被處理器運行時執行如前述實施方式任一基于深度學習的正則表達式匹配方法的步驟。
28、本申請提供的一種基于深度學習的正則表達式匹配方法、裝置、電子設備及存儲介質,其中,方法包括獲取待處理文本串,并分割為多個文本子串;將多個文本子串按順序輸入預先訓練好的預測模型,以獲取預測模型輸出的初始狀態預測結果,初始狀態預測結果包括每個文本子串的預測初始dfa狀態值;針對每個文本子串,基于該文本子串的預測初始dfa狀態值進行字符串掃描,以獲得對應的正則表達式掃描結果;基于所有文本子串對應的掃描結果之間的連接關系,確定是否滿足拼接條件,以獲取待處理文本串的正則表達式掃描結果。通過基于大數據的深度學習技術進行dfa的初始狀態預測,提高了文本被分割成子文本后,各子文本對應狀態直接連接的概率,保證了并行掃描的準確性。
1.一種基于深度學習的正則表達式匹配方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,基于所有文本子串對應的掃描結果之間的連接關系,確定是否滿足拼接條件,以獲取待處理文本串的正則表達式掃描結果的步驟,具體包括:
3.根據權利要求2所述的方法,其特征在于,確定前一個文本子串對應的掃描結果的終止dfa狀態值、與后一個文本子串對應的掃描結果的初始dfa狀態值是否相同;
4.根據權利要求3所述的方法,其特征在于,所述對后一個文本子串對應的掃描結果進行更新的步驟,具體包括:
5.根據權利要求1所述的方法,其特征在于,針對每個文本子串,將該文本子串輸入對應的dfa掃描引擎,以該文本子串的預測初始dfa狀態值按照目標狀態轉換規則進行字符串掃描,以獲得對應的正則表達式掃描結果。
6.根據權利要求1所述的方法,其特征在于,所述預測模型通過以下步驟訓練獲得:
7.一種基于深度學習的正則表達式匹配裝置,其特征在于,所述裝置包括:
8.根據權利要求7所述的裝置,其特征在于,拼接模塊具體用于按順序對相鄰文本子串對應的掃描結果的連接關系進行匹配,確定是否滿足拼接條件;
9.一種電子設備,其特征在于,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲器之間通過總線通信,所述處理器執行所述機器可讀指令,以執行如權利要求1至6任一所述基于深度學習的正則表達式匹配方法的步驟。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器運行時執行如權利要求1至6任一所述基于深度學習的正則表達式匹配方法的步驟。