2

テキストの段落でいっぱいの 140k 以上の大きなテキスト ファイルがあり、ファイルに 200 語を超える単語が含まれている場合にのみ、このファイルにランダムな間隔で文を挿入する必要があります。

大きな文書全体にランダムに挿入する必要がある文は、10 語の長さです。

LAMP サイトを実行しているサーバーを完全に制御できるので、PHP または Linux コマンド ライン アプリケーションがあればそれを使用できます。

これに取り組む最善の方法についてのアイデアは大歓迎です。

ありがとう

マーク

4

2 に答える 2

1

str_word_count()文字列内の単語数を取得するために使用できます。そこから、文字列を挿入するかどうかを決定します。「ランダムに」挿入するのは危険です。いくつかのランダムな領域に挿入することを提案することを意味しますか? その場合は、ファイルの内容を配列としてロードし、とfile()の間の任意の場所に文を挿入します。$file[0]count($file);

于 2009-08-23T02:59:32.057 に答える
0

次のコードは、文字列を見つけてランダムな場所に挿入するトリックを実行する必要があります。そこから、ファイルを書き直すだけです。これは非常に大まかな方法​​であり、句読点などを考慮していないため、微調整が必​​要になる可能性が高くなります。

$save = array();
$words = str_word_count(file_get_contents('somefile.txt'), 1);

if (count($words) <= 200)
  $save = $words;
else {
  foreach ($words as $word) {
    $save[] = $word;
    $rand = rand(0, 1000);
    if ($rand >= 100 && $rand <= 200)
      $save[] = 'some string';
  }
}

$save = implode(' ', $save);

これは乱数を生成し、それが 100 から 200 の間であるかどうかをチェックし、そうであればランダムな文字列を挿入します。乱数の範囲とチェックの範囲を変更して、追加する数を増減できます。各文字列の間に少なくともx単語があることを確認するようなカウンターを実装することもできます。

繰り返しますが、これは句読点などを考慮せず、すべての単語がスペースで区切られていることを前提としています。そのため、完璧にするには微調整が必​​要になる場合がありますが、これは良い出発点になるはずです。

于 2009-08-23T04:11:13.920 に答える