开发一个处理服务器端表单提交的PHP文档。嵌入式PHP脚本(在您的PHP文档中)首先识别出最有意义的"最有意义的#34;在提交的故事文本中出现次数最多的故事中的单词(注意:a,an,the,等等,不算作有意义的单词),然后使用&#等句子回复用户34;你的故事是关于“最有意义的词”'。
答案 0 :(得分:2)
你需要将这个任务分解成可消化的部分。它根本不是很复杂;一旦你看到如何解决几个简单的组件,我认为你会发现它是相当基本的。
你需要:
那不是那么疯狂。
首先,你如何迭代一个故事?嗯,这取决于语言。通常,您会找到一个'explode'类型函数,它会使用分隔符将长字符串分解为数组。例如,“嗨,我的名字是史蒂夫”,在PHP中爆炸如下:explode($string, ' ');
将$ string转换为:
array(
0 => 'Hi,',
1 => 'my',
2 => 'name',
3 => 'is',
4 => 'Steve',
)
现在你可以这样说:
foreach ($story as $word) {
// start counting/comparing
}
要跟踪所有这些单词,您需要一个可以通过多种方式之一格式化的数组。也许是这样的,每个单词的关键词都是单词本身,其值是出现次数:
$occurrences = array(
'Hello,' => 1,
'my' => 1
);
然后你需要一个数组来列出你不关心的单词:
$ignoreWords = array(
'and', 'a', 'the', 'etc', '...'
);
现在怎样?我不知道,比如:
foreach ($story as $word) {
if (in_array($word, $ignoreWords)) {
continue;
}
if (isset($occurences[$word])) {
$occurences[$word] += 1;
} else {
$occurences[$word] = 1;
}
}
循环完成后,您只需要一些函数即可获得最高出现次数。您可以按值对$ occurrences数组进行排序并弹出第一个元素,或者您可以在PHP中使用像max()这样的函数。
$highestValue = max($occurrences);
则...
$word = array_search($highestValue, $array);
则...
echo "The most important word in the story was {$word}.";
我没有测试过这段代码,我知道几个问题区域(比如如果array_search得到多个结果会发生什么),但是你可能已经了解了如何将它们放在一起。如果我错过了一个更好的观点,我会道歉,但如果您要求提供有关SO的任务帮助,您需要提出更好的问题以获得更好的问题。祝你好运!