gpt4 book ai didi

php - 如何用php计算非英语句子中的单词数?

转载 作者:行者123 更新时间:2023-12-03 23:40:48 25 4
gpt4 key购买 nike

我想用 PHP 计算非英语句子中的单词数。为此,我尝试了 str_word_count 但它没有给我想要的结果,我不想使用 mb_strlen 因为它给了我字符串的长度。所以请如果有人可以帮助我。
所以,到目前为止,我已经做到了,

function count_words($string) {
$string = html_entity_decode($string);
$string= str_replace("'", "'", $string);
$t= array(' ', "t", '=', '+', '-', '*', '/', '', ',', '.', ';', ':', '[', ']', '{', '}', '(', ')', '<', '>', '&', '%', '$', '@', '#', '^', '!', '?', '~'); // separators
$string= str_replace($t, " ", $string);
$string= trim(preg_replace("/s+/", " ", $string));
$num= 0;
if (my_strlen($string)>0) {
$word_array= explode(" ", $string);
$num= count($word_array);
}
return $num;
}

$string = "আমি 'আমার' দেশ, ভারতকে ভালবাসি";
echo count_words($string);

它需要给我 5 的输出,但给我 6,我发现当我使用任何逗号或引号时出现问题,所以我该如何纠正我只想从中显示 3 个单词。怎么可能。

最佳答案

您的阵列 $t包含一些用于在原始字符串中创建额外空白的符号。
由于这是您在爆炸中使用的字符( ' ' ),因此数组 $word_array将为每个这样的额外空格包含空字符串。
要摆脱那些肯定不是单词的空字符串,您可以像现在一样在最后简单地过滤数组。
最后,如果您想处理字符串中的单词,该函数可以返回单词数组。然后,您可以从数组中取出您想要的 3 个或多少个单词。

$string = "আমি 'আমার' দেশ, ভারতকে ভালবাসি";

function words($string)
{
$string = html_entity_decode($string);
$string = str_replace("'", "'", $string);
$t = array(' ', "t", '=', '+', '-', '*', '/', '', ',', '.', ';', ':', '[', ']', '{', '}', '(', ')', '<', '>', '&', '%', '$', '@', '#', '^', '!', '?', '~'); // separators
$string = str_replace($t, " ", $string);
$string = trim(preg_replace("/s+/", " ", $string));

$word_array = [];
if (my_strlen($string) > 0) {
$word_array = explode(" ", $string);

// Filter out those redundant empty strings that might be a by-product
// of replacing characters from $t with a whitespace ' ' and explode.
$word_array = array_filter($word_array, function ($word) {
return $word !== '';
});
// PHP 7.4
// $word_array = array_filter($word_array, fn ($word) => $word !== '');
}

return $word_array;
}

$words = words($string);
echo count($words) . PHP_EOL;

// Additionally you could output the first 3 words
echo implode(' ', array_slice($words, 0, 3));
结果:
5
আমি 'আমার' দেশ
您的原始功能在计算单词方面是否可靠当然是您必须仔细检查自己的。

关于php - 如何用php计算非英语句子中的单词数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65976790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com