核心概念
大規模なテキストにおいて、一般的で他の文字列と区別される重要な文字列を効率的に特定することは、テキスト圧縮やトークン化などの多くのアプリケーションにとって価値がある。文字列ネット頻度は、このような重要な文字列を特定する有力な手段であるが、これまでその効率的な計算方法は明らかにされていなかった。本研究では、文字列ネット頻度の新しい特性を明らかにし、これに基づいて単一の文字列のネット頻度を O(m + σ) 時間で、全ての正のネット頻度を持つ文字列を O(n) 時間で報告する効率的なアルゴリズムを提案する。
要約
本研究では、大規模なテキストにおいて重要な文字列を効率的に特定するための手法として、文字列ネット頻度に着目している。
まず、文字列ネット頻度の新しい特性を明らかにした。これによると、ネット頻度が正の文字列は、左右どちらの拡張をしても頻度が1になる最大長の文字列である。
次に、この特性に基づいて、単一の文字列のネット頻度を O(m + σ) 時間で計算する効率的なアルゴリズムを提案した。また、全ての正のネット頻度を持つ文字列を O(n) 時間で報告するアルゴリズムも提案した。
これらのアルゴリズムは、接尾辞配列、Burrows-Wheeler変換の要素、および色付き範囲リスト問題の解法を活用している。実験的にも、提案手法が既存の手法に比べて大幅に高速であることを示した。
全体として、本研究は文字列ネット頻度が重要な文字列を特定する有効な手段であることを示し、その効率的な計算手法を明らかにした。
統計
提案手法のCRLアルゴリズムは、すべての文字列に対して平均12.6マイクロ秒で単一のネット頻度を計算できる。
一方、ベースラインのHSAアルゴリズムは平均3755.4マイクロ秒と大幅に遅い。
DNAデータセットでは、提案手法のCRLアルゴリズムが平均6.5マイクロ秒と高速に動作する。
引用
"大規模なテキストにおいて、一般的で他の文字列と区別される重要な文字列を効率的に特定することは、テキスト圧縮やトークン化などの多くのアプリケーションにとって価値がある。"
"文字列ネット頻度は、このような重要な文字列を特定する有力な手段であるが、これまでその効率的な計算方法は明らかにされていなかった。"
"本研究では、文字列ネット頻度の新しい特性を明らかにし、これに基づいて単一の文字列のネット頻度を O(m + σ) 時間で、全ての正のネット頻度を持つ文字列を O(n) 時間で報告する効率的なアルゴリズムを提案する。"