我有一个程序可以读取大量文本并进行分析。这些文本可能是任何语言,但我需要特别测试日语和中文以便以不同的方式进行分析。
我了解到可以通过测试每个字符的Unicode编号来确定它是否在CJK字符范围内。这很有帮助,但如果可能的话,我想将它们分开以便对不同的词典进行处理。有没有一种方法可以测试一个字符是日语还是中文?
我有一个程序可以读取大量文本并进行分析。这些文本可能是任何语言,但我需要特别测试日语和中文以便以不同的方式进行分析。
我了解到可以通过测试每个字符的Unicode编号来确定它是否在CJK字符范围内。这很有帮助,但如果可能的话,我想将它们分开以便对不同的词典进行处理。有没有一种方法可以测试一个字符是日语还是中文?
有许多字符只在日语中使用或只在中文中使用。
日本和中国都简化了许多字符,但通常采用不同的方式。您可以查看日本新字体和简体中文字符。后者比前者更多。如果两者都没有,则可能是繁体中文。
当然,如果您处理Unicode文本,您可能会发现偶尔出现罕见字符或混合语言,这可能会扰乱启发式,因此最好计算字符类型以作出判断。
找出哪些字符在一种语言中常见而在其他语言中不常见的好方法是将旧编码相互比较。您可以在互联网上轻松找到每个映射到Unicode的映射。
我曾经写过一些代码,通过代码点进行二进制搜索,即使在JavaScript中也非常快-虽然我可能在旅途中丢失了它(-:
测试片假名或平假名范围内的字符应该是一种非常可靠的方法来确定文本是否为日语,特别是当您处理“常规”的用户生成文本时。如果您正在查看法律文件或其他更正式的内容,则可能会稍微困难一些,因为那里将有更多复杂的汉字 - 但它仍然应该是相当可靠的。
\p{Han}\p{Hiragana}\p{Katakana}
中的任何内容,但以下字符无法匹配:发同讲说宅电的手机告的世全所回广讲说跟 - yarian