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

      一種挖掘最大重復序列的方法及裝置的制造方法

      文檔序號:9375664閱讀:263來源:國知局
      一種挖掘最大重復序列的方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及數(shù)據(jù)挖掘領(lǐng)域,尤其涉及一種挖掘最大重復序列的方法及裝置。
      【背景技術(shù)】
      [0002] 模式挖掘指在一組序列數(shù)據(jù)中,尋找一些特定的便于人們理解與解釋的基本序列 模式,實現(xiàn)將所處理的長序列數(shù)據(jù)進行分解,便于后期各種建模和再分析,降低在大數(shù)據(jù)流 量中人為干預的程度,提高序列處理的效率和準確度,因此,模式挖掘在以軟件控制的設(shè)備 中起到了非常重要的作用,例如,模式挖掘在智能手機的用戶行為建模、傳感器數(shù)據(jù)流分 析、金融系統(tǒng)欺詐交易識別、生物基因序列檢測等多種領(lǐng)域中被廣泛使用。在模式挖掘的實 際應(yīng)用中,人們通常將序列數(shù)據(jù)中包含最多信息且做成結(jié)構(gòu)最小的序列模式-最大重復序 列作為基本序列模式,但是,在模式挖掘中,有一類數(shù)據(jù)隨著時間的變化而不斷有新的數(shù)據(jù) 產(chǎn)生,例如,手機設(shè)備所攜帶的傳感器可以記錄每時每刻用戶的位置、通話、上網(wǎng)瀏覽記錄 等,這類數(shù)據(jù)根據(jù)時間先后順序排列,并且以序列化的方式呈現(xiàn),尤其是,隨著大數(shù)據(jù)與移 動互聯(lián)網(wǎng)的蓬勃發(fā)展,這些序列數(shù)據(jù)產(chǎn)生的數(shù)量和速度都成倍增長,如何從這些序列數(shù)據(jù) 中實時動態(tài)地挖掘出基本序列模式(即最大重復序列)成為亟待解決的問題。
      [0003] 目前,挖掘序列數(shù)據(jù)中最大重復序列的方法為:根據(jù)一段時間內(nèi)的序列數(shù)據(jù)建立 相應(yīng)的后綴樹,再在后綴上查找最大重復序列;其中,后綴樹是一種數(shù)據(jù)結(jié)構(gòu),能快速解決 很多關(guān)于字符串的問題,用來支持有效的字符匹配和查詢;例如,將序列數(shù)據(jù)"abcabxa$" 用圖1所示的后綴樹來表示,即后綴樹的根節(jié)點到每一個葉子節(jié)點的路徑表示序列 "abcabxar中的每一個后綴子序列;然后,尋找存在不同左邊元素的兩個葉子節(jié)點,并標記 出來;從葉子節(jié)點開始自下而上遍歷后綴樹上的每一個節(jié)點,如果一個節(jié)點下的子樹中存 在已標記的節(jié)點,則此節(jié)點也被標記;如果一個節(jié)點下的子樹中子樹中沒有被標記的節(jié)點, 則檢查此節(jié)點下孩子節(jié)點的左元素;如果此節(jié)點下孩子節(jié)點的左元素不同,則標記當前節(jié) 點;用這個方法掃描所有節(jié)點直至根節(jié)點,并將所有非標記節(jié)點剔出,所剩下的樹就是最大 重復序列;由此可知,在現(xiàn)有技術(shù)中,需要通過對整個后綴樹進行遍歷和標記來確定最大重 復序列,且當下一時刻有新數(shù)據(jù)加入到原來的序列數(shù)據(jù)中時,除了根據(jù)后綴樹的建立規(guī)則 在原有的后綴樹上增加相應(yīng)的節(jié)點結(jié)構(gòu)之外,之前遍歷標記的結(jié)果也需要進行重新統(tǒng)計和 標識,即需要重新對增加節(jié)點后的后綴樹進行遍歷和標記,增大計算量。

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

      [0004] 本發(fā)明實施例提供一種挖掘最大重復序列的方法及裝置,基于流水線和后綴樹確 定最大重復序列,實現(xiàn)增量式挖掘,提高了計算效率。
      [0005] 為達到上述目的,本發(fā)明采用的技術(shù)方案是,
      [0006] 第一方面,本發(fā)明實施例提供一種挖掘最大重復序列的方法,包括:
      [0007] 獲取字符;
      [0008] 將所述字符追加到流水線集合中的每個流水線中,分別判斷追加所述字符后的每 個流水線中的序列與后綴樹上對應(yīng)的序列是否相同,其中,所述流水線集合包含至少一個 流水線,所述流水線包含序列以及位置指針,所述序列包含與所述字符所在的字符串中所 述字符之前的字符相同的字符,所述位置指針指向所述流水線包含的序列的尾字符在所述 后綴樹上的位置;
      [0009] 在所述流水線集合中,若存在第一流水線,在追加所述字符后的序列與后綴樹上 對應(yīng)的序列不同,則根據(jù)第一預設(shè)策略以及所述第一流水線中的序列確定最大重復序列。 [0010] 在第一方面的第一種可能的實現(xiàn)方式中,結(jié)合第一方面,所述根據(jù)第一預設(shè)策略 以及所述第一流水線中的序列確定最大重復序列,包括:
      [0011] 在所述字符串中,檢測與所述第一流水線中的序列相同的序列相鄰的左邊字符是 否為同一種字符,以及,檢測與所述第一流水線中的序列相同的序列相鄰的右邊字符是否 為同一種字符;
      [0012] 若與所述第一流水線中的序列相同的序列相鄰的左邊字符不為同一種字符,且與 所述第一流水線中的序列相同的序列相鄰的右邊字符不為同一種字符,則確定所述第一流 水線中的序列為最大重復子序列;
      [0013] 若與所述第一流水線中的序列相同的序列相鄰的左邊字符為同一種字符,或者, 與所述第一流水線中的序列相同的序列相鄰的右邊字符為同一種字符,或者,與所述第一 流水線中的序列相同的序列相鄰的左邊字符為同一種字符以及與所述第一流水線中的序 列相同的序列相鄰的右邊字符為同一種字符,則確定所述第一流水線中的序列不是最大重 復序列,并銷毀所述第一流水線。
      [0014] 在第一方面的第二種可能的實現(xiàn)方式中,結(jié)合第一方面的第一種可能的實現(xiàn)方 式,所述在所述字符串中,檢測與所述第一流水線中的序列相同的序列相鄰的左邊字符是 否為同一種字符,以及,檢測與所述第一流水線中的序列相同的序列相鄰的右邊字符是否 為同一種字符,包括:
      [0015] 在所述字符串中,獲取與所述第一流水線中的序列相同的序列相鄰的左邊字符 集;若所述字符集包含同一種字符,則確定與所述第一流水線中的序列相同的序列相鄰的 左邊字符為同一種字符;若所述字符集包含至少兩種字符,則確定與所述第一流水線中的 序列相同的序列相鄰的左邊字符不為同一種字符;
      [0016] 在所述后綴樹上,判斷所述第一流水線的位置指針所指字符與所述字符是否相 同,若相同,則確定與所述第一流水線中的序列相同的序列相鄰的右邊字符為同一種字符, 若不同,則確定與所述第一流水線中的序列相同的序列相鄰的右邊字符不為同一種字符。
      [0017] 在第一方面的第三種可能的實現(xiàn)方式中,結(jié)合第第一方面至第一方面的第二種可 能的實現(xiàn)方式中的任一種實現(xiàn)方式,所述分別判斷追加所述字符后的每個流水線中的序列 與后綴樹上對應(yīng)的序列是否相同,包括:
      [0018] 在所述后綴樹上,分別移動每個流水線中的位置指針,使所述位置指針指向與所 述流水線包含的序列的尾字符相鄰的下一個字符的位置;
      [0019] 判斷移動后的所述位置指針指向的字符與所述字符是否相同;若不同,則確定追 加所述字符后的流水線中的序列與后綴樹上對應(yīng)的序列不同;若相同,則確定追加所述字 符后的流水線中的序列與后綴樹上對應(yīng)的序列相同。
      [0020] 在第一方面的第四種可能的實現(xiàn)方式中,結(jié)合第一方面,所述方法還包括:
      [0021] 在所述流水線集合中,若存在第二流水線,在追加所述字符后的序列與后綴樹上 對應(yīng)的序列相同,則將所述字符追加到所述第二流水線中,并將所述第二流水線的位置指 針指向追加所述字符后的所述第二流水線包含的序列的尾字符在所述后綴樹上的位置;
      [0022] 根據(jù)所述第二流水線的位置指針以及第二預設(shè)策略確定最大非串聯(lián)重復序列。
      [0023] 在第一方面的第五種可能的實現(xiàn)方式中,結(jié)合第一方面的第四種可能的實現(xiàn)方 式,所述根據(jù)所述第二流水線的位置指針以及第二預設(shè)策略確定最大非串聯(lián)重復序列,包 括:
      [0024] 判斷所述第二流水線的位置指針與所述第二流水線的參考流水線的位置指針是 否相同;其中,所述第二流水線的參考流水線為讀取所述第二流水線包含的序列的首字符 時,在所述流水線集合中,包含的序列的首字符與所述第二流水線包含的序列的首字符相 同的流水線;
      [0025] 若相同,則確定所述第二流水線中的序列為最大非串聯(lián)重復序列。
      [0026] 在第一方面的第六種可能的實現(xiàn)方式中,結(jié)合第一方面的第五種可能的實現(xiàn)方 式,所述方法還包括:
      [0027] 確定所述第二流水線的參考流水線中的序列為由所述第二流水線中的序列組成 的串聯(lián)序列,銷毀第二流水線以及第二流水線的參考流水線。
      [0028] 在第一方面的第七種可能的實現(xiàn)方式中,結(jié)合第一方面至第一方面的第六種可能 的實現(xiàn)方式中的任一種實現(xiàn)方式,在讀取字符之前,建立空流水線;
      [0029] 相應(yīng)的,所述方法還包括:
      [0030] 遍歷所述后綴樹的每個分支的首字符;
      [0031] 若存在與所述字符相同的首字符,則將所述字符存儲在所述空流水線中,并將所 述空流水線的位置指針指向與所述字符相同的首字符在所述后綴樹上的位置;同時,在所 述流水線集合中,若存在第三流水線,在追加所述字符后的序列與后綴樹上對應(yīng)的序列不 同,將所述后綴樹上對應(yīng)的分支從所述第三流水線的位置指針指向的位置開始分裂成兩個 分支,將所述字符插入到分裂后的所述后綴樹的每一個分支上;若存在第三流水線,在追加 所述字符后的序列與后綴樹上對應(yīng)的序列相同,將所述字符插入到所述后綴樹的每一個分 支上;
      [0032] 若不存在與所述字符相同的首字符,則銷毀空流水線,從所述后綴樹的根節(jié)點分 裂出一個新的分支;同時,在所述流水線集合中,若存在第三流水線,在追加所述字符后的 序列與后綴樹上對應(yīng)的序列不同,將所述后綴樹上對應(yīng)的分支從所述第三流水線的位置指 針指向的位置開始分裂成兩個分支,將所述字符插入到分裂后的所述后綴樹的每一個分支 上;若存在第三流水線,在追加所述字符后的序列與后綴樹上對應(yīng)的序列相同,將所述字符 插入到分裂后的所述后綴樹的每一個分支上。
      [0033] 在第一方面的第八種可能的實現(xiàn)方式中,結(jié)合第一方面至第一方面的第七種可能 的實現(xiàn)方式中的任一種實現(xiàn)方式,所述方法還包括:
      [0034] 將確定的最大重復序列以及最大非串聯(lián)重復序列的相關(guān)信息存儲在預設(shè)的模式 信息表中,以及,將所述最大重復序列以及所述最大非串聯(lián)重復序列的相關(guān)信息在所述后 綴樹上進行表示;其中,所述相關(guān)信息包含:序列編號,序列內(nèi)容,序列長度。
      [0035] 第二方面,本發(fā)明實施例提供一種挖掘最大重復序列的裝置,包括:
      [0036] 獲取模塊,用于獲取字符;
      [0037] 判斷模塊,用于將獲取模塊獲取的字符追加到流水線集合中的每個流水線中,分 別判斷追加所述字符后的每個流水線中的序列與后綴樹上對應(yīng)的序列是否相同,其中,所 述流水線集合包含至少一個流水線,所述流水線包含序列以及位置指針,所述序列包含與 所述字符所在的字符串中所述字符之前的字符相同的字符,所述位置指針指向所述流水線 包含的序列的尾字符在所述后綴樹上的位置;
      [0038] 第一確定模塊,用于在所述流水線集合中,若存在第一流水線,在追加所述字符后 的序列與后綴樹上對應(yīng)的序列不同,則根據(jù)第一預設(shè)策略以及所述第一流水線中的序列確 定最大重復序列。
      [0039] 在第二方面的第一種可能的實現(xiàn)方式中,結(jié)合第二方面,所述第一確定模塊具體 用于:
      [0040] 在所述字符串中,檢測與所述第一流水線中的序列相同的序列相鄰的左邊字符是 否為同一種字符,以及,檢測與所述第一流水線中的序列相同的序列相鄰的右邊字符是否 為同一種字符;
      [0041] 若與所述第一流水線中的序列相同的序列相鄰的左邊字符不為同一種字符,且與 所述第一流水線中的序列相同的序列相鄰的右邊字符不為同一種字符,則確定所述第一流 水線中的序列為最大重復子序列;
      [0042] 若與所述第一流水線中的序列相同的序列相鄰的左邊字符為同一種字符,或者, 與所述第一流水線中的序列相同的序列相鄰的右邊字符為同一種字符,或者,與所述第一 流水線中的序列相同的序列相鄰的左邊字符為同一種字符以及與所述第一流水線中的序 列相同的序列相鄰的右邊字符為同一種字符,則確定所述第一流水線中的序列不是最大重 復序列,并銷毀所述第一流水線。
      [0043] 在第二方面的第二種可能的實現(xiàn)方式中,結(jié)合第二方面的第一種可能的實現(xiàn)方 式,所述第一確定模塊具體用于:
      [0044] 在所述字符串中,獲取與所述第一流水線中的序列相同的序列相鄰的左邊字符 集;若所述字符集包含同一種字符,則確定與所述第一流水線中的序列相同的序列相鄰的 左邊字符為同一種字符;若所述字符集包含至少兩種字符,則確定與所述第一流水線中的 序列相同的序列相鄰的左邊字符不為同一種字符;
      [0045] 在所述后綴樹上,判斷所述第一流水線的位置指針所指字符與所述字符是否相 同,若相同,則確定與所述第一流水線中的序列相同的序列相鄰的右邊字符為同一種字符, 若不同,則確定與所述第一流水線中的序列相同的序列相鄰的右邊字符不為同一種字符。 [0046] 在第二方面的第三種可能的實現(xiàn)方式中,結(jié)合第二方面至第二方面的第二種可能 的實現(xiàn)方式中的任一種實現(xiàn)方式,所述判斷模塊具體用于:
      [0047] 在所述后綴樹上,分別移動每個流水線中的位置指針,使所述位置指針指向與所 述流水線包含的序列的尾字符相鄰的下一個字符的位置;
      [0048] 判斷移動后的所述位置指針指向的字符與所述字符是否相同;若不同,則確定追 加所述字符后的流水線中的序列與后綴樹上對應(yīng)的序列不同;若相同,則確定追加所述字 符后的流水線中的序列與后綴樹上對應(yīng)的序列相同。
      [0049] 在第二方面的第四種可能的實現(xiàn)方式中,結(jié)合第二方面,所述裝置還包括:
      [0050] 追加模塊,用于在所述流水線集合中,若存在第二流水線,在追加所述字符后的序 列與后綴樹上對應(yīng)的序列相同,則將所述字符追加到所述第二流水線中,并將所述第二流 水線的位置指針指向追加所述字符后的所述第二流水線中序列的尾字符在所述后綴樹上 的位置;
      [0051] 第二確定模塊,用于根據(jù)所述第二流水線的位置指針以及第二預設(shè)策略確定最大 非串聯(lián)重復序列。
      [0052] 在第二方面的第五種可能的實現(xiàn)方式中,結(jié)合第二方面的第四種可能的實現(xiàn)方 式,所述第二確定模塊具體用于:
      [0053] 判斷所述第二流水線的位置指針與所述第二流水線的參考流水線的位置指針是 否相同;其中,所述第二流水線的參考流水線為讀取所述第二流水線包含的序列的首字符 時,在所述流水線集合中,包含的序列的首字符與所述第二流水線包含的序列的首字符相 同的流水線;
      [0054] 若相同,則確定所述第二流水線中的序列為最大非串聯(lián)重復序列。
      [0055] 在第二方面的第六種可能的實現(xiàn)方式中,結(jié)合第二方面的第五種可能的實現(xiàn)方 式,所述裝置還包括:
      [0056] 銷毀模塊:用于確定所述第二流水線的參考流水線中的序列為由所述第二流水線 中的序列組成的串聯(lián)序列,銷毀第二流水線以及第二流水線的參考流水線。
      [0057] 在第二方面的第七種可能的實現(xiàn)方式中,結(jié)合第二方面至第二方面的第六種可能 的實現(xiàn)方式中的任一種實現(xiàn)方式,所述裝置還包括:
      [0058] 建立模塊,用于在獲取模塊獲取字符之前,建立空流水線,
      [0059] 搜索模塊,用于遍歷所述后綴樹的每個分支的首字符;
      [0060] 存儲模塊,用于若存在與所述字符相同的首字符,則將所述字符存儲在所述空流 水線中,并將所述空流水線的位置指針指向與所述字符相同的首字符在所述后綴樹上的位 置;同時,在所述流水線集合中,若存在第三流水線,在追加所述字符后的序列與后綴樹上 對應(yīng)的序列不同,將所述后綴樹上對應(yīng)的分支從所述第三流水線的位置指針指向的位置開 始分裂成兩個分支,將所述字符插入到分裂后的所述后綴樹的每一個分支上;若存在第三 流水線,在追加所述字符后的序列與后綴樹上對應(yīng)的序列相同,將所述字符插入到所述后 綴樹的每一個分支上;
      [0061] 若不存在與所述字符相同的首字符,則銷毀空流水線,從所述后綴樹的根節(jié)點分 裂出一個新的分支;同時,在所述流水線集合中,若存在第三流水線,在追加所述字符后的 序列與后綴樹上對應(yīng)的序列不同,將所述后綴樹上對應(yīng)的分支從所述第三流水線的位置指 針指向的位置開始分裂成兩個分支,將所述字符插入到分裂后的所述后綴樹的每一個分支 上;若存在第三流水線,在追加所述字符后的序列與后綴樹上對應(yīng)的序列相同,將所述字符 插入到分裂后的所述后綴樹的每一個分支上。
      [0062] 在第二方面的第八
      當前第1頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1