国产精品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>

      一種基于關(guān)鍵詞字典樹檢索的中文ac自動機工作方法

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

      【發(fā)明內(nèi)容】

      [0004]針對現(xiàn)有技術(shù)中系統(tǒng)結(jié)構(gòu)識別與優(yōu)化方法抑或主觀片面、計算能力差,抑或耗時費力、仿真精度低的問題,本發(fā)明的目的在于提出一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法,能夠用降低中文AC自動機工作時需要的空間復(fù)雜度,壓縮了中文AC自動機的工作占用空間。
      [0005]基于上述目的,本發(fā)明提供的技術(shù)方案如下:
      [0006]根據(jù)本發(fā)明的一個方面,提供了一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法,包括:
      [0007]獲取所有關(guān)鍵詞,并根據(jù)所有關(guān)鍵詞建立關(guān)鍵詞字典樹;
      [0008]在關(guān)鍵詞字典樹中建立并初始化檢索指針;
      [0009]獲取待檢測文章,將文章編碼,建立并初始化文章指針;
      [0010]判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配并由此移動文章指針與檢索指針;
      [0011]判斷當(dāng)前檢索指針的匹配子節(jié)點是否為終止節(jié)點并由此移動文章指針與檢索指針;
      [0012]使文章指針掃過整篇文章,統(tǒng)計所有關(guān)鍵詞的出現(xiàn)次數(shù)。
      [0013]其中:
      [0014]將文章編碼,為將文章中的所有漢字按照指定的漢字編碼方式以數(shù)字組合的形式表不;
      [0015]在關(guān)鍵詞字典樹中初始化檢索指針,為在關(guān)鍵詞字典樹中將檢索指針置為指向虛根;
      [0016]初始化文章指針,為將文章指針置為指向文件頭第一字符編碼。
      [0017]并且,數(shù)字組合為十六進制數(shù)字的數(shù)字組合;指定的漢字編碼方式為以下之一:GB2312、GBK、BIG5、UTF-8。
      [0018]同時,判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配并由此移動文章指針與檢索指針包括:
      [0019]獲取當(dāng)前文章指針指向的編碼數(shù)字;
      [0020]獲取當(dāng)前檢索指針指向節(jié)點的所有子節(jié)點;
      [0021]將當(dāng)前文章指針指向的編碼數(shù)字在當(dāng)前檢索指針指向節(jié)點的所有子節(jié)點中進行比對,判斷是否存在一個子節(jié)點上的數(shù)字與當(dāng)前文章指針指向的編碼數(shù)字相匹配;若是,則繼續(xù)判斷當(dāng)前檢索指針的匹配子節(jié)點是否為終止節(jié)點;若否,則將檢索指針置為當(dāng)前檢索指針指向節(jié)點的失敗指針指向的節(jié)點。
      [0022]并且,若不存在一個子節(jié)點上的數(shù)字與當(dāng)前文章指針指向的編碼數(shù)字相匹配,且當(dāng)前檢索指針指向虛根或當(dāng)前檢索指針指向節(jié)點的失敗指針指向虛根,則將文章指針后移一位,并重新判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配。
      [0023]并且,判斷當(dāng)前檢索指針的匹配子節(jié)點是否為終止節(jié)點并由此移動文章指針與檢索指針包括:
      [0024]在關(guān)鍵詞字典樹中獲取匹配子節(jié)點的節(jié)點信息;
      [0025]根據(jù)匹配子節(jié)點的節(jié)點信息判斷匹配子節(jié)點是否為終止節(jié)點;若是,則從關(guān)鍵詞字典樹中解碼出該終止節(jié)點所代表的關(guān)鍵詞,并將該關(guān)鍵詞被檢索到的次數(shù)累加1,同時將檢索指針重置為指向虛根、文章指針后移一位;若否,則將檢索指針置為指向匹配子節(jié)點、文章指針后移一位;
      [0026]重新判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配。
      [0027]并且,使文章指針掃過整篇文章并統(tǒng)計所有關(guān)鍵詞的出現(xiàn)次數(shù),為將文章指針在上述操作中移動到文章末尾,統(tǒng)計每個關(guān)鍵詞被檢索到的次數(shù),并將每個關(guān)鍵詞與其在文章中被檢索到的次數(shù)信息輸出。
      [0028]從上面所述可以看出,本發(fā)明提供的技術(shù)方案通過使用檢索指針在字典樹的節(jié)點之間移動來將關(guān)鍵詞與文章進行比對的技術(shù)方案,有效地利用了字典樹中具有相同前綴的關(guān)鍵詞排布在相鄰位置的特性,使得節(jié)點對查詢其子節(jié)點所在位置的信息量被大幅度壓縮,避免使用占用大量空間復(fù)雜度的哈希表,因此降低了中文AC自動機工作時需要的空間復(fù)雜度,壓縮了中文AC自動機的工作占用空間。
      【附圖說明】
      [0029]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0030]圖1為根據(jù)本發(fā)明實施例的一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法的流程圖;
      [0031]圖2為根據(jù)本發(fā)明實施例的一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法中,字典樹各節(jié)點生成過程示意圖;
      [0032]圖3為根據(jù)本發(fā)明實施例的一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法中,字典樹各節(jié)點的前綴指針生成過程示意圖;
      [0033]圖4為根據(jù)本發(fā)明實施例的一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法中,字典樹各節(jié)點的失敗指針生成過程示意圖。
      【具體實施方式】
      [0034]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進一步進行清楚、完整、詳細(xì)地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
      [0035]根據(jù)本發(fā)明的實施例,提供了一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法。
      [0036]如圖1所示,根據(jù)本發(fā)明的實施例提供了一種基于關(guān)鍵詞字典樹檢索的中文AC自動機工作方法包括:
      [0037]步驟SlOl,獲取所有關(guān)鍵詞,并根據(jù)所有關(guān)鍵詞建立關(guān)鍵詞字典樹;
      [0038]步驟S103,在關(guān)鍵詞字典樹中建立并初始化檢索指針;
      [0039]步驟S105,獲取待檢測文章,將文章編碼,建立并初始化文章指針;
      [0040]步驟S107,判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配并由此移動文章指針與檢索指針;
      [0041]步驟S109,判斷當(dāng)前檢索指針的匹配子節(jié)點是否為終止節(jié)點并由此移動文章指針與檢索指針;
      [0042]步驟S111,使文章指針掃過整篇文章,統(tǒng)計所有關(guān)鍵詞的出現(xiàn)次數(shù)。
      [0043]其中:
      [0044]將文章編碼,為將文章中的所有漢字按照指定的漢字編碼方式以數(shù)字組合的形式表不;
      [0045]在關(guān)鍵詞字典樹中初始化檢索指針,為在關(guān)鍵詞字典樹中將檢索指針置為指向虛根;
      [0046]初始化文章指針,為將文章指針置為指向文件頭第一字符編碼。
      [0047]并且,數(shù)字組合為十六進制數(shù)字的數(shù)字組合;指定的漢字編碼方式為以下之一:GB2312、GBK、BIG5、UTF-8。
      [0048]同時,判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配并由此移動文章指針與檢索指針包括:
      [0049]獲取當(dāng)前文章指針指向的編碼數(shù)字;
      [0050]獲取當(dāng)前檢索指針指向節(jié)點的所有子節(jié)點;
      [0051]將當(dāng)前文章指針指向的編碼數(shù)字在當(dāng)前檢索指針指向節(jié)點的所有子節(jié)點中進行比對,判斷是否存在一個子節(jié)點上的數(shù)字與當(dāng)前文章指針指向的編碼數(shù)字相匹配;若是,則繼續(xù)判斷當(dāng)前檢索指針的匹配子節(jié)點是否為終止節(jié)點;若否,則將檢索指針置為當(dāng)前檢索指針指向節(jié)點的失敗指針指向的節(jié)點。
      [0052]并且,若不存在一個子節(jié)點上的數(shù)字與當(dāng)前文章指針指向的編碼數(shù)字相匹配,且當(dāng)前檢索指針指向虛根或當(dāng)前檢索指針指向節(jié)點的失敗指針指向虛根,則將文章指針后移一位,并重新判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配。
      [0053]并且,判斷當(dāng)前檢索指針的匹配子節(jié)點是否為終止節(jié)點并由此移動文章指針與檢索指針包括:
      [0054]在關(guān)鍵詞字典樹中獲取匹配子節(jié)點的節(jié)點信息;
      [0055]根據(jù)匹配子節(jié)點的節(jié)點信息判斷匹配子節(jié)點是否為終止節(jié)點;若是,則從關(guān)鍵詞字典樹中解碼出該終止節(jié)點所代表的關(guān)鍵詞,并將該關(guān)鍵詞被檢索到的次數(shù)累加1,同時將檢索指針重置為指向虛根、文章指針后移一位;若否,則將檢索指針置為指向匹配子節(jié)點、文章指針后移一位;
      [0056]重新判斷當(dāng)前文章指針與當(dāng)前檢索指針的任一子節(jié)點是否匹配。
      [0057]并且,使文章指針掃過整篇文章并統(tǒng)計所有關(guān)鍵詞的出現(xiàn)次數(shù),為將文章指針在上述操作中移動到文章末尾,統(tǒng)計每個關(guān)鍵詞被檢索到的次數(shù),并將每個關(guān)鍵詞與其在文章中被檢索到的次數(shù)信息輸出。
      [0058]下面根據(jù)具體實施例進一步闡述本發(fā)明的技術(shù)方案。
      [0059]字典樹又稱單詞查找樹,Trie樹,是一種樹形結(jié)構(gòu),是一種哈希樹的變種,它將所有的模式串組織在一
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1