【问题标题】:Convert Numbers written as Words to Integers? [duplicate]将写成单词的数字转换为整数? [复制]
【发布时间】:2012-09-25 20:23:46
【问题描述】:

是否有用于将字符串数字转换为等效整数(例如,将“十”转换为 10)的开源 Java 库?我知道怎么做,但如果已经有可用的库,我宁愿不要浪费客户的时间从头开始编写。

【问题讨论】:

  • 我不知道一个合适的“图书馆”,但是有很多这样的学术项目一次性课程。我相信我不久前看过 Eric Lippert 的一个(用于 C#)。
  • 也许在ICU的某个地方?
  • @NimChimpsky 不是重复的。那是相反的方向。 (我找不到这个方向的人,但我已经看到了,我敢肯定..)

标签: java numbers


【解决方案1】:

我怀疑这样的图书馆是否存在。

如果您只想转换有限数量的数字(例如 zeroten),那么在这里提出这个问题可能会花费您更多的时间,而不仅仅是自己实现它。

如果您希望转换比您正在寻找的更复杂的数字(例如 "one hundred twenty four and fifty-one hundredth's"),那么自然语言识别器非常复杂,并且不太可能有任何语言的良好库。

最后,后端值和用户可消费内容通常最好不要耦合。

【讨论】:

  • 没有。此任务不需要复杂的 NL - 这是一个更简单的问题,具有更精细的范围。给定的案例仍然相对容易处理。 (如果不需要处理小数值就更简单了,而且这个问题仅限于整数。)
  • @pst Twenty-one Hundred twenty one Hundred two thousand one hundred one hundred and one one hundred one one hundred one twenty thirteen forty two point five 3 thousand forty five twenty k
  • 同样,这些示例并不代表复杂的语法,并且很容易包含在简单的 CFL 中。 (虽然关于 NL 是否为 CFL 存在相反的论点,但它们处于复杂性的极端端。事实并非如此。此外,在这种情况下,其中一些形式可能会被排除在可接受的输入之外。)
  • @pst 猪是如何从蜘蛛手中救出来的?
【解决方案2】:

“二十七”还是“二十七”?对于“二十七”还是“分数和七”?贝克的十几个人?一对骰子,还是两个骰子?还差一个六包?数字处理程序的三重奏? 21 世纪(20xx 年)?

您的要求比我想象的要宽泛一些。我建议您使用一个实际上允许灵活地添加新表示而不是假设单个表示的框架,Apache's Open Natural Language processing framework 可能是一个不错的选择。

经过几次尝试,您可能会构建三位一体的数字处理例程。或者至少有一个plethora 的想法。

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2014-10-19
    • 1970-01-01
    • 2015-01-03
    • 2020-02-17
    相关资源
    最近更新 更多