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

Elixir/Erlang - Split paragraph into sentences based on the language

在 Java 中有一个名为 BreakItterator 的 class 它允许我传递一段任何语言的文本(它所用的语言是已知的)并将文本拆分为分开的句子。神奇的是,它可以将文本所用语言的语言环境作为参数,它会根据该语言规则拆分文本(如果你仔细研究它,这实际上是一个非常复杂的问题,即使是英语——它是当然不是 'split by full-stops/periods').

的情况

有谁知道我如何在 elixir 中做到这一点?我在 Google 搜索中找不到任何内容。

我几乎要部署一个非常薄的 public 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 算法,但目前似乎并没有特别包含迭代(你可能想在那里提出问题).