2

多数の短い文字列をいくつかの論理部分に解析しようとしています。誰かがすでに解決できた興味深い問題のようですが、論文/解決策が見つかりません(または間違ったキーワードを試している可能性があります)。

弦は2〜5つの部分で構成されています。各単語を、それが属する「部分」/「セクション」を示す文字に置き換えると、次のサンプルになります。

AAABB
AABBBBCC
AABBBBDD
AAACCDD
...

ほとんどの「セクション」の長さはわずか2〜3語で、約1万文字の文字列にまったく同じセクションが約100〜500回出現します。つまり、100個の文字列にAAA == "some text here"があり、他の100個にAAA == "some other text"があります。1つの文字列には、各タイプのセクションが1つしかありません(通常は順番に表示されます)。どのセクションにも制限された値のセットはなく、将来新しい値が表示される可能性があります。

問題は、十分なサンプルがあり、それらを手動でマークしたくない場合、どうすればそのようなセクションを検出できるかということです。これは、完全に自動ではなく、監視/確認できるため、確率リストは問題ありません。

2〜5個の長い単語のn-gramのリストを作成して確率を見つけることを考えていましたが、順序が考慮されていません(これは役立つ可能性があります)。また、一部のテキストが一般的であることも検出されますが、同じ値が頻繁に使用される特定の2つのセクションがある場合、この方法はうまく機能しません。すべての行に同じ値を持つABCDで構成される文字列しかない場合を考えてみましょう。

ABC
ABD
ACD

ngram分析のみを行うと、Aがセクションであり、AB、C、およびDである可能性が高くなります。この場合、結果からABを除外したいのですが、独自の分析を割り当てない方法で「the」のような単語へのセクションを作成し、「the」を含む大きなセクションをすべて削除します。

同様の問題に対する既知の解決策はありますか?

4

1 に答える 1

1

Lempel-Ziv-Welchアルゴリズムは、一般的な部分文字列を識別するのに非常に効率的ですが、それらをランク付けしようとはしません。また、単語や行の境界にも注意を払いません。それでも、必要なものを取得するための開始点として使用できる可能性があります。

于 2010-10-14T14:31:57.627 に答える