国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于關鍵詞字典樹構造的中文ac自動機工作方法

      文檔序號:9506163閱讀:1443來源:國知局
      一種基于關鍵詞字典樹構造的中文ac自動機工作方法
      【技術領域】
      [0001]本發(fā)明涉及信息技術領域,特別地,涉及一種基于關鍵詞字典樹構造的中文AC自動機工作方法。
      【背景技術】
      [0002]AC自動機(Aho-Corasick automaton)是一種著名的多模匹配方法,用于在文章當中檢索多個關鍵詞出現的次數。傳統的AC自動機只能識別26個英文字母,現有技術則將傳統的AC自動機工作原理套用到了中文文章中,但這種方案下中文AC自動機工作的空間復雜度過高,缺乏實際應用價值。
      [0003]針對現有技術中中文AC自動機工作的空間復雜度過高的問題,目前尚未有有效的解決方案。

      【發(fā)明內容】

      [0004]針對現有技術中系統結構識別與優(yōu)化方法抑或主觀片面、計算能力差,抑或耗時費力、仿真精度低的問題,本發(fā)明的目的在于提出一種基于關鍵詞字典樹構造的中文AC自動機工作方法,能夠用降低中文AC自動機工作時需要的空間復雜度,壓縮了中文AC自動機的工作占用空間。
      [0005]基于上述目的,本發(fā)明提供的技術方案如下:
      [0006]根據本發(fā)明的一個方面,提供了一種基于關鍵詞字典樹構造的中文AC自動機工作方法,包括:
      [0007]獲取所有關鍵詞,將所有關鍵詞編碼,并將所有關鍵詞按其關鍵詞編碼的字符順序排列;
      [0008]建立字典樹,并將所有關鍵詞按字符排列順序加入字典樹中;
      [0009]為字典樹中的每個非虛根節(jié)點加入前綴指針;
      [0010]為字典樹中的每個非虛根節(jié)點加入失敗指針;
      [0011]獲取待檢測文章,根據包括前綴指針與錯誤指針的字典樹在待檢測文章中查詢并記錄下所有的關鍵詞。
      [0012]其中,將所有關鍵詞編碼,為將所有關鍵詞按照指定的漢字編碼方式以數字組合的形式表示;將所有關鍵詞按其關鍵詞編碼的字符順序排列,為將所有關鍵詞按其編碼后每個字符所對應數字的大小順序對所有關鍵詞進行排列。
      [0013]并且,數字組合為十六進制數字的數字組合;指定的漢字編碼方式為GB2312、GBK、BIG5、UTF-8 中的一種。
      [0014]同時,建立字典樹為指定一虛根,并根據虛根建立字典樹。
      [0015]并且,將所有關鍵詞按字符排列順序加入字典樹中包括:
      [0016]根據字符排列順序依次指定每個關鍵詞;
      [0017]為被指定的關鍵詞建立一個樹枝,并為被指定的關鍵詞編碼的每一位在樹枝上建立一個節(jié)點,每一位都是其前一位的子節(jié)點,每一位都是其后一位的父節(jié)點,父子節(jié)點在樹枝上相鄰;
      [0018]從虛根開始,將指定的關鍵詞的樹枝與現有字典樹上字符相同的節(jié)點合并,直到出現不同的節(jié)點為止;
      [0019]依次指定每個關鍵詞直到所有關鍵詞均加入字典樹中。
      [0020]并且,包括:
      [0021]為被指定的關鍵詞編碼的每一位在樹枝上建立一個節(jié)點,為最后一位建立一個終止節(jié)點,為最后一位之外的每一個其他位建立一個內部節(jié)點;
      [0022]將指定的關鍵詞的樹枝與現有字典樹上字符相同的節(jié)點合并,為將內部節(jié)點與內部節(jié)點合并為內部節(jié)點,將終止節(jié)點與內部節(jié)點合并為終止節(jié)點,將終止節(jié)點與終止節(jié)點合并為終止節(jié)點。
      [0023]同時,為被指定的關鍵詞編碼的每一位在樹枝上建立一個節(jié)點時,按照編碼從首位到末位的順序建立節(jié)點,先建立父節(jié)點后建立子節(jié)點,且為每個節(jié)點賦予編號,其中,每個非虛根節(jié)點的編號為關鍵詞加入字典樹的過程中該節(jié)點被創(chuàng)建的順序數字,虛根編號為零。
      [0024]并且,為字典樹中的每個非虛根節(jié)點加入前綴指針包括:
      [0025]根據節(jié)點編號順序依次指定每個非虛根節(jié)點;
      [0026]若被指定的非虛根節(jié)點為虛根的子節(jié)點,則為被指定的非虛根節(jié)點加入一根指向虛根的如綴指針;
      [0027]若被指定的非虛根節(jié)點不是虛根的子節(jié)點,則記錄下被指定的非虛根節(jié)點的父節(jié)點連接到非虛根節(jié)點的樹枝方向,并為被指定的非虛根節(jié)點加入一根指向非虛根節(jié)點的父節(jié)點的父節(jié)點的與樹枝方向相同的子節(jié)點的前綴指針;
      [0028]依次指定每個非虛根節(jié)點直到所有非虛根節(jié)點均具有前綴指針。
      [0029]同時,為字典樹中的每個非虛根節(jié)點加入失敗指針包括:
      [0030]根據節(jié)點編號順序依次指定每個非虛根節(jié)點;
      [0031 ] 分別對于每一個被指定的節(jié)點,根據節(jié)點編號的數字進位制依次指定可能出現的每個數字;
      [0032]檢查被指定的非虛根節(jié)點是否為一個具有指定子節(jié)點的父節(jié)點,其中,該非虛根父節(jié)點到該子節(jié)點的樹枝方向數字與被指定的數字相同,若否,則給被指定的非虛根節(jié)點建立一個收到被指定的數字后的錯誤指針;
      [0033]分別對于每一個被指定的節(jié)點,依次指定每個數字直到進位制中的所有數字均被指定過;
      [0034]依次指定每個非虛根節(jié)點直到所有非虛根節(jié)點均具有失敗指針。
      [0035]并且,給被指定的非虛根節(jié)點建立一個收到被指定的數字后的錯誤指針,非虛根節(jié)點在收到被指定的數字后會按照錯誤指針的指向方向確定后續(xù)狀態(tài)。
      [0036]從上面所述可以看出,本發(fā)明提供的技術方案通過將關鍵詞按順序排列加入字典樹中的技術方案,有效地將具有相同前綴的關鍵詞排布在字典樹中相鄰的位置,使得節(jié)點對查詢其子節(jié)點所在位置的信息量被大幅度壓縮,避免使用占用大量空間復雜度的哈希表,因此降低了中文AC自動機工作時需要的空間復雜度,壓縮了中文AC自動機的工作占用空間。
      【附圖說明】
      [0037]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
      [0038]圖1為根據本發(fā)明實施例的一種基于關鍵詞字典樹構造的中文AC自動機工作方法的流程圖;
      [0039]圖2為根據本發(fā)明實施例的一種基于關鍵詞字典樹構造的中文AC自動機工作方法中,字典樹各節(jié)點生成過程示意圖;
      [0040]圖3為根據本發(fā)明實施例的一種基于關鍵詞字典樹構造的中文AC自動機工作方法中,字典樹各節(jié)點的前綴指針生成過程示意圖;
      [0041]圖4為根據本發(fā)明實施例的一種基于關鍵詞字典樹構造的中文AC自動機工作方法中,字典樹各節(jié)點的失敗指針生成過程示意圖。
      【具體實施方式】
      [0042]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進一步進行清楚、完整、詳細地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
      [0043]根據本發(fā)明的實施例,提供了一種基于關鍵詞字典樹構造的中文AC自動機工作方法。
      [0044]如圖1所示,根據本發(fā)明的實施例提供了一種基于關鍵詞字典樹構造的中文AC自動機工作方法包括:
      [0045]步驟S101,獲取所有關鍵詞,將所有關鍵詞編碼,并將所有關鍵詞按其關鍵詞編碼的字符順序排列;
      [
      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1