美文网首页
如何做字数统计-多语言

如何做字数统计-多语言

作者: 雨之都 | 来源:发表于2023-09-06 15:01 被阅读0次

    最近思考下对于单词分割的想法,思考得来可能不同的语言对于单词的分割是不同的,那我以空格等分割符作为基础,以不同语言的正则表达式去匹配,岂不是就可以获取到单个单词,妙啊妙啊,在网上冲浪的过程中也找到了和我思路一致的实现,参考下面的参考文档1,然而事实并没有我想象中的那么简单。

    项目中发现了对于韩语字数的特殊统计规则,感觉惊奇,难道韩语的字分割规则不同吗?于是根据参考文章2学习了下,发现还真是不同的!原因就在于韩语本身是可以由一些基础的表音字符拼接组成,在unicode中就体现为多个unicode,虽然正常来说,韩语也是使用自己单独的unicode码点来表示字,但是一旦使用了表音字符来组合成字,那么使用单独的正则表达式分割来查找字就不足够了。并且这还只是韩语,不同的语音在分割单词这块儿规则肯定略有不同

    这激起了我对单词分割的兴趣,遂了解了单词分割的规则,以下为简版规则,真正完备的规则参考下文中的文档3

    分割单词的规则

    1. 文本不为空的情况下,开头和结尾是一个分割的标记
    2. cr/lf这样的换行符应该当成一个
    3. 换行符作为词的分割线
    4. 用zwj连接起来的emoji字符,形成的单独的emoji不应该被分开
    5. 忽略格式化字符
    6. 大部分正常的字符不应该分开
    7. 数字的序列不分开,或者数字临接字母的不分开,比如”3a”
    8. 片假名之间不分开
    9. 其他的情况都分开

    以上为通用规则,不同的语言之间可能还会有自己的补充,比如上面说的韩语,以及日语片假名等等。

    由此可见,人生苦短,使用icu库来帮我们处理这些细节吧😭

    参考文档

    1. 如何设计多语言词分隔

    https://medium.com/@byn9826/multi-languages-words-count-3498e5b0fdc3

    1. 韩语书写规则

    http://gernot-katzers-spice-pages.com/var/korean_hangul_unicode.html

    1. 词的边界

    https://www.unicode.org/reports/tr29/#Word_Boundaries

    相关文章

      网友评论

          本文标题:如何做字数统计-多语言

          本文链接:https://www.haomeiwen.com/subject/keikvdtx.html