dax*_*xim 9 unicode perl collation cjk
"更好"主要意味着准确性,但我也对其他系统擅长的任何其他标准感兴趣.我Text::Kakasi以一种公认有限的方式对Perl绑定进行了正确的采样,它可以很好地满足我们的需求.
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__
???????
????????
?????
??
????????
??
???????
??
??
Run Code Online (Sandbox Code Playgroud)
我所知道的唯一其他(严肃的)开源转换工具是N-gram,而不是最明确的名称......它有很多字典,可能比Kakasi更好.但我没有看到任何比较.
编辑:
在这种情况下,我考虑过一个图书馆的"更好"概念.可以做的一件事就是拿出N-gram的字典并对抗kakasi.如果kakasi无法转换一些N-gram的条目,可以说N-gram更好,因为它的词典更丰富 - 提高了整理的准确性.
然而,由于基于汉字的单词的语料库(需要转换成假名才能正确整理)并不是有限的 - 家族名称等等都是一个大问题,因为它们几乎可以通过任何你能想象的方式阅读 - 可以不是提供100%覆盖率的解决方案.但OP要求"更好"的解决方案,而不是一个完美的解决方案......
我不确定“权威”的含义。
但我可以说 Kakashi 是众所周知的免费软件库,并且今天仍然没有过时。
如果您可以通过卡卡西将汉字字符串转换为平假名(或片假名)字符串,则生成的排序顺序就可以了。
http://www.utf8-chartable.de/unicode-utf8-table.pl
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |