我有大量文本文件140k或更大的文本段落,只有当文件包含200多个单词时,才需要以随机的间隔插入一个句子。
我需要在较大的文档中随机插入的句子长度为10个单词。
我可以完全控制运行我的LAMP站点的服务器,这样我就可以使用PHP或Linux命令行应用程序(如果存在的话)可以为我做这个。
非常感谢任何有关如何最好地解决这个问题的想法。
由于
标记
答案 0 :(得分:1)
您可以使用str_word_count()
来获取字符串中的字数。从那里,确定是否要插入字符串。至于“随机”插入它可能是危险的。你的意思是建议你想把它插入几个随机区域吗?如果是这样,请将文件内容加载为file()
的数组,并在$file[0]
和count($file);
之间的任意位置插入
答案 1 :(得分: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
个单词。
同样,这不会考虑标点符号或任何内容,只是假设所有单词都用空格分隔。因此,完善它可能需要一些微调,但这应该是一个很好的起点。