我使用JavaScript创建音译。我想知道是否有可能将CJK文本分成一系列单词,根据一些分词标准定义。还有其他选择吗?
所需行为:
set:动的密习近平
结果:[动, 的, 密, 习, 近平]
答案 0 :(得分:1)
为了正确地做到这一点,人们使用机器学习,因为,正如你所知,挑战是这些语言(至少是中文和日文)没有空格。有一些很棒的工具可以用几种不同的编程语言来实现:
显然,要在浏览器中使用非JavaScript工具,您需要在后端运行它们(就像Kuromoji为其demo page提供动力一样)。但即使您可以在浏览器中运行Rakuten MA,请注意浏览器需要预先下载一个非常大的数据文件,该算法用于解析文本:请参阅他们的demo page。
另一种选择可能是通过Emscripten将C ++工具编译为JavaScript。我使用MeCab(repo,demo page同时预先下载了一个大数据文件)。
请注意,所有这些工具不只是将文本解析为单词。事实证明,他们需要实际进行形态分析和词性标注才能进行准确的分割。所以,如果你想要"只是"将句子分成单词,有点准备趟过你可能不关心的很多东西。但我刚看到你的目标是音译,所以也许你对此感兴趣? MeCab / Kuromoji可以告诉你他们对单词的猜测'发音。 Rakuten MA只会分段并告诉你词性,它不会进行音译(你必须在字典中查找单词等)。
还有比这些更轻量级的方法,例如,日语学习者熟悉Rikaichan Firefox扩展(以及Rikaikun和Rikaisama用于其他浏览器),我相信它只使用字典进行低复杂度解析和一些规则。 Rikaichan's source可能有助于学习?但是如果你需要可靠,准确的结果,这不会击败上述解析器之一。