我有这段文字:
$text = "Başka, küskün otomobil kaçtı buraya küskün otomobil neden kaçtı
kaçtı buraya, oraya KISMEN @here #there J.J.Johanson hep.
Danny:Where is mom? I don't know! Café est weiß for 2 €uros.
My 2nd nickname is mike18.";
最近我正在使用这个。
$a1= array_count_values(str_word_count($text, 1, 'ÇçÖöŞşİIıĞğÜü@#é߀1234567890'));
arsort($a1);
你可以用这个小提琴检查:http:
//ideone.com/oVUGYa
但是这个解决方案并不能解决所有的 UTF8 问题。我不能将整个 UTF8 集作为参数写入 str_word_count。
所以我创建了这个:
$wordsArray = explode(" ",$text);
foreach ($wordsArray as $k => $w) {
$wordsArray[$k] = str_replace(array(",","."),"",$w);
}
$wordsArray2 = array_count_values($wordsArray);
arsort($wordsArray2);
输出应该是这样的:
Array (
[kaçtı] => 3
[küskün] => 2
[buraya] => 2
[@here] => 1
[#there] => 1
[Danny] => 1
[mom] => 1
[don't] => 1
[know] => 1
...
...
)
这很好用,但它并没有涵盖所有的句子单词问题。例如,我用 str_replace 删除了逗号和点。
例如,这个解决方案不包括这样的词:Hello Mike,how are you ?
Mike and how 不会被视为不同的词。
这在 str_word_count 解决方案中没有涵盖:KISMEN @here #there
. 在和破折号标志,不会被考虑在内。
这将不包括在内J.J.Johanson
。虽然是一个字,但是会被当作JJJohanson
问题,感叹号应从单词中删除。
有没有更好的方法来获得str_word_count
支持UTF8
?这个$text
问题顶部存在的内容对我来说是参考。
(如果你能提供一个小提琴的答案会更好)