gojûon整理有没有比kakasi图书馆更好的东西?

时间:2010-10-09 16:41:47

标签: perl unicode collation cjk

“更好”主要意味着准确性,但我也对其他系统擅长的任何其他标准感兴趣。我以一种公认的有限的方式对Perl绑定Text::Kakasi进行了正确的采样,它可以很好地满足我们的需求。

use utf8;
use Encode;
use Text::Kakasi;
use Unicode::Collate;

my $k = Text::Kakasi->new(qw(-iutf8 -outf8 -JH));
my $c = Unicode::Collate->new;

print encode_utf8 $_ for
    map  { $_->[0] }
    sort { $c->cmp($a->[1], $b->[1]) }
    map  { [$_, $k->get($_)] }
    <DATA>;

__DATA__
アメリカ合衆国
アラブ首長国連邦
ロシア連邦
中国
南アフリカ共和国
日本
北京(ペキン)
大阪
東京

3 个答案:

答案 0 :(得分:5)

我所知道的唯一其他(严肃的)开源转换工具是N-gram,而不是最明确的名称......它有很多字典,可能比Kakasi更好。但我没有看到任何比较。

修改

在这种情况下,我考虑过一个图书馆的“更好”概念。可以做的一件事就是拿出N-gram的字典并对抗kakasi。如果kakasi无法转换一些N-gram的条目,可以说N-gram更好,因为它的词典更丰富 - 提高了整理的准确性。

然而,由于基于汉字的词语(需要转换成假名才能正确整理)并不是有限的 - 家族名称等等都是一个大问题,因为它们几乎可以被你想象的任何方式阅读 - 没有提供100%覆盖率的解决方案。但OP要求“更好”的解决方案,而不是一个完美的解决方案......

答案 1 :(得分:2)

我不确定'权威'的含义。

但我可以说卡卡西是众所周知的免费软件库,今天仍然没有过时。

如果您可以通过卡卡西将汉字字符串转换为平假名(或片假名)字符串,那么排序顺序就可以了。

http://www.utf8-chartable.de/unicode-utf8-table.pl

答案 2 :(得分:2)

考虑到Kakasi所做的只是从提供的字典中拉出kana / romaji来获取特定的日语字符串,你几乎没有更精确的东西。精确度取决于使用的词典的质量。