研究概要 |
本年度は主に単一の文字列を生成するチョムスキー標準形の文法である直線的プログラム(Straight line program, SLP)によって圧縮表現された文字列を対象に研究を行い,以下の成果が得られた.1.テキスト文字列Tを表現する大きさnのSLPと,長さmのパターン文字列Pに対して,PのTにおける部分列としての極小な出現を数え上げるO(nm)時間アルゴリズムを開発した.これは最近[Tiskin 2011]によって提案されたO(nm log m)アルゴリズムよりも効率的である.また,このアルゴリズムを拡張することで,SLP表現されたテキスト文字列に対してdon't care文字を含んだパターン照合を行う初のアルゴリズムを提案した.2.テキスト文字列Tを表現する大きさnのSLPと整数qに対して,Tに出現するすべてのq-gramとその出現頻度を求めるO(qn)時間アルゴリズムを開発した.これは従来アルファベットの大きさに対して指数的であったO(|Σ|^qqn^2)時間アルゴリズムに比べて大幅に改善されている.また,実データに対する計算機実験により,qがある程度小さい場合にはSLP表現からq-gram頻度を求める方が,非圧縮のテキスト文字列からq-gramを求めるよりも高速であることを示した.更に,このアルゴリズムを応用することで,(1)大きさnのSLPで表現されたテキストTの最頻出q-gramを求める問題をO(qn)時間,(2)大きさがそれぞれn_1,n_2であるSLPで表現された二つのテキストに対してq-スペクトラムカーネルの計算をO(q(n_1+n_2))時間,(3)総SLPサイズNの,SLPで表現された2つの文字列集合を区別する最適弁別q-gramパターン発見問題をO(qN)時間、でそれぞれ解くアルゴリズムを得ることができ,圧縮文字列処理のパターン発見・テキスト分類分野への有用性を初めて示した.
|