在尝试弄清楚如何对字符串进行有效的单词计数器后,我了解了 PHP 具有的现有函数 str_word_count
但不幸的是,它没有执行我需要它执行的操作,因为我需要计算包含英语、中文、日语和其他重音字符的单词数。
但是 str_word_count
无法计算单词的数量,除非您在第三个参数中添加字符,但这是疯狂,这可能意味着我必须添加每个字符中文、日文、重音字符(等)语言,但这不是我需要的。
测试:
str_word_count('The best tool'); // int(3)
str_word_count('最適なツール'); // int(0)
str_word_count('最適なツール', 0, '最ル'); // int(5)
反正我在网上找到了这个函数,它可以完成这项工作,但遗憾的是它无法计数:
function word_count($str)
{
if($str === '')
{
return 0;
}
return preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", $str);
}
测试:
word_count('The best tool') // int(3)
word_count('最適なツール'); // int(1)
// With spaces
word_count('最 適 な ツ ー ル'); // int(5)
基本上我正在寻找一个良好的 UTF-8 支持的单词计数器,它可以计算每个典型单词/重音/语言符号中的单词 - 是否有可能的解决方案?
最佳答案
有 Kuromoji morphological analyzer日语,可用于字数统计。不幸的是,它是用 Java 而不是 PHP 编写的。由于将它全部移植到 PHP 是一项艰巨的任务,我建议围绕它编写一个小包装器,以便您可以在命令行上调用它,或者查看其他 PHP-Java 桥。
我不知道它对日语以外的语言有多适用。您可能想查看 Apache Tika类似此类库的项目。
关于php - 创建一个有效的单词计数器,包括中文/日语和其他重音语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084623/