2011-01-13 37 views
1

文字列ファイルのリストを調べて、それらの間で最も一般的なサブ文字列に関するレポートを作成しようとしています。例えば共通部分文字列を検索するために文字列のセットを比較する方法

  1. こんにちは、私は文字列の一人です。私はリンゴやオレンジが好きです。私たちはすべてここに文字列です。
  2. こんにちは、私は文字列2です。私はリンゴやオレンジが好きです。私たちはすべてここに文字列です。
  3. こんにちは、私はストリング3です。私はリンゴやオレンジが好きです。私たちはすべてここに文字列です。
  4. こんにちは、私はストリング4です。私はリンゴやオレンジが好きです。私は私の個性を表現するのが好きです。

文字列間の共通要素が特定のしきい値(たとえば5文字)を超えていることをスクリプトが教えてほしいです。

理想的には私は「こんにちは、私は文字列だ」すべてのファイル

  • で発生する「私はリンゴとオレンジが好き」

    • を言われるだろう「私たちはここにすべての文字列であるすべてのファイル
    • で発生"3つのファイルで発生します。

    機能は、私は精通していた技術でこれを行うために存在する場合 - SQLは、JavaScript、PHP、Rubyやバッシュは非常に満足して-I'll ...

    多くのおかげで、

    Jack

  • +0

    この質問は密接に関連しており、多くの関連する回答があります:http://stackoverflow.com/questions/1410822/how-can-i-detect-common-substrings-in- a-list-of-strings –

    答えて

    2

    これは難問です。Longest common subsequence problemです。ここで

    は、動的計画法を用いたアルゴリズムのPython実装です: http://www.algorithmist.com/index.php/Longest_Common_Subsequence

    私は任意の標準ライブラリ(CやJava、PHP、Pythonのは、JavaScript、Rubyの、など)などが付属していないと思う

    関数。しかし、ここで実装を探すかもし​​れません:http://www.google.com/codesearch?q=%22longest+common+subsequence%22

    +0

    ああ、ありがとう。今私はいくつかの既成の実装を見つけるために名前を知っています:http://en.wikibooks.org/wiki/Algorithm_implementation/Strings/Longest_common_substring#PHP –

    関連する問題