Elixir/Erlang - 根据语言将段落拆分为句子



在Java中,有一个名为BreakItterator的类,它允许我传递任何语言的文本段落(它是已知的语言(,它将文本拆分为单独的句子。神奇之处在于,它可以将编写文本的语言区域设置作为参数,并且它将根据该语言规则拆分文本(如果您研究它,即使在英语中,它实际上也是一个非常复杂的问题 - 这当然不是"按句号/句号拆分"的情况(。

有谁知道我会如何在长生不老药中做到这一点?我在谷歌搜索中找不到任何东西。

我几乎到了部署一个非常薄的公共 API 的地步,它只执行我可以从 elixir 调用的基本任务 - 但这真的是不可取的。

任何帮助将不胜感激。

i18n 库应该可用于此目的。仅从提供的示例来看,由于我没有使用它的经验,因此应该可以执行以下操作(:en是区域设置代码(:

str = :i18n_string.from("some string")
iter = :i18n_iterator.open(:en, :sentence)
sentences = :i18n_string.split(iter, str)

还有Cldr,它直接在Elixir中实现了许多依赖于语言环境的Unicode算法,但目前似乎不包括迭代(你可能想在那里提出一个问题(。

最新更新