php - 创建一个有效的单词计数器,包括中文/日语和其他重音语言

标签 php symbols word-count non-ascii-characters

在尝试弄清楚如何对字符串进行有效的单词计数器后,我了解了 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/

相关文章:

javascript - 在哪里可以找到用于解释功能编程的符号的解释/摘要,特别是Ramda.js?

c++ - 使用 g++ 连接两个具有相同函数签名的强函数符号的结果,为什么?

在hadoop中对输出文本文件进行排序,有没有办法不排序就可以查看输出?或使用不同的排序方法?

php - ADOdb 输出具有 double 值

php - 尝试创建自定义日志 channel Laravel 5.6

dart - 带有私有(private)标识符参数的符号

c - 在函数中使用二维数组以及 C 中的字数统计

maven - 由 : java. lang.ClassNotFoundException : org. apache.hadoop.fs.CanSetDropBehind issue in eclipse 引起

php - 如何配置 SCP/SFTP 文件存储?

javascript - 在鼠标单击时将 X Y 坐标转换为 PHP 变量