2

我决定为我最后一年的南亚语言项目开发一个(Unicode)拼写检查器。我想将其开发为插件或 Web 服务。但是我需要为它决定一个合适的开发平台。(这不仅会检查字典文件,还会使用形态分析/生成模块(词干分析器))。

java 脚本是否能够以公平的响应时间处理此类处理?

我可以在客户端处理大型字典吗?

有没有更好的建议可以提出?

4

1 回答 1

1

Javascript 不能胜任这项任务,至少不能单独完成;它的 Unicode 支持太原始了,而且在很多地方,实际上是缺失的。例如,Javascript 不支持 Unicode 字素集群。

如果您使用 Java,请确保使用ICU 库,以便获得文本分割所需的所有 whizbang Unicode 属性。Java 的原生 Unicode 处理发生故障的地方是它的正则表达式库,这就是为什么 Android JNI 转向 ICU C/C++ 正则表达式库的原因。有很多为 Java 编写的 NLP 工具,其中一些您可能会觉得很方便。我所知道的其中大部分是针对英语或至少是西方语言的。

如果您愿意通过 CGI 而不仅仅是客户端操作在服务器端运行部分计算,那么您将不再受语言选择的束缚。例如,您可以将客户端上的 Javascript 与服务器上的 Perl 结合起来,后者的 Unicode 支持甚至比 Java 更好。这将如何融合在一起以及如何获得您想要的性能和行为取决于您实际想要做什么。

Perl 也有相当多的行业标准 NLP 模块可供广泛使用,其中大多数已经知道使用 Unicode,因为与 Java 一样,Perl 在内部使用 Unicode。

此处提供了有关在 Perl 中使用 NLP 工具进行某些形态分析(即词干提取和 lammatization)的简短幻灯片演示。众所周知,该演示文稿可以在 Safari、Firefox 或 Chrome 下运行,但在 Opera 或 Microsoft 的 Internet Explorer 下运行不佳。

我不知道有任何专门针对亚洲语言的工具,尽管 Perl 确实通过 CPAN 的Unicode::LineBreak模块支持 UAX#11(东亚宽度)和 UAX#14(Unicode 换行符),而且 Perl 确实带有一个完全-通过标准Unicode:: Collat​​e 模块兼容的排序模块(实现 UTS#10,Unicocde 排序算法),并从同样标准的Unicode::Collat​​e::Locale模块提供语言环境支持,其中支持许多亚洲语言环境。如果您使用 CJK 语言,您可能需要访问 Unihan 数据库,该数据库可通过CPAN的Unicode::Unihan模块获得。更根本的是,Perl 通过它的\X其内置正则表达式引擎中的元字符,Java 和 Javascript 都没有提供。

所有这些都是 Javascript 中您可能需要的,并且发现非常缺乏的东西。

于 2012-06-22T11:17:46.807 回答