Utf 8 计算混合语言文档中的单词数

Utf 8 计算混合语言文档中的单词数,utf-8,multilingual,cjk,word-count,Utf 8,Multilingual,Cjk,Word Count,给定一组包含汉字、拉丁字母或两者混合的行,我想获得字数 也就是说: this is just an example 这只是个例子 最好给10个字;当然,如果没有字典,例子 最好将其视为两个单独的字符。因此,这里11个单词/字符的计数也是可以接受的结果 显然,wc-w不起作用。它将6个汉字/5个单词视为1个“单词”,总共返回6个 我该如何进行?我愿意尝试不同的语言,尽管bash和python现在对我来说是最快的。我想到了一个快速破解,因为在UTF8中,汉字有3个字节长: (伪代码) 然后取tot

给定一组包含汉字、拉丁字母或两者混合的行,我想获得字数

也就是说:

this is just an example
这只是个例子
最好给10个字;当然,如果没有字典,例子 最好将其视为两个单独的字符。因此,这里11个单词/字符的计数也是可以接受的结果

显然,
wc-w
不起作用。它将6个汉字/5个单词视为1个“单词”,总共返回6个


我该如何进行?我愿意尝试不同的语言,尽管bash和python现在对我来说是最快的。

我想到了一个快速破解,因为在UTF8中,汉字有3个字节长:

(伪代码)

然后取
total chinese chars/3+total words
得到每行的总和。对于混合语言的情况,这将给出一个错误的计数,但这应该是一个良好的开端

这是test

但是,上面的句子将给出总共2个(每个汉字1个)。两种语言之间需要一个空格来给出正确的计数。

您应该拆分文本,然后计算包含字母或表意文字的元素。例如,如果您使用的是Python,则可以使用或包。另一种方法是简单地使用,但这些方法只会中断。另见问题

请注意,对于某些语言,您需要一个更复杂的基于词典的解决方案。UAX#29个州:

对于泰语、老挝语、高棉语、缅甸语和其他通常不在单词之间使用空格的脚本,良好的实现不应依赖于默认的单词边界规范。它应该使用更复杂的机械装置,断线也需要这种装置。日文和中文等表意文字更为复杂。如果韩语文本没有空格,同样适用。然而,在缺乏更为复杂的机制的情况下,本附件中规定的规则提供了定义明确的违约


+1仅用于unicode单词边界。我不知道有关于这些的指导方针。
这是test