5

现在这是一个棘手的问题,我无法找到一个好的解决方案。假设我们在 Java 中有一个字符串:- “他今天吃了 3 个苹果。” 现在可以使用 isNumeric 函数或使用正则表达式在 Java 中轻松识别数字 3。但是如果我有一个像这样的字符串:“他今天吃了三个苹果。”怎么办?我怎样才能确定这三个实际上是一个数字?我使用了 OpenNlp 并使用了它的 POS 标记器,但它所花费的时间真的太多了!谁能为此提出更好的解决方案?同样在OpenNlp的“.bin”中,有一个文件——“num.bin”,但我不知道如何使用这个文件。OpenNlp 文档对此也只字未提。谁能告诉我这是否正是我一直在寻找的,如果是,那么如何使用它。

/ * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **/我这里的时间其实很短,所以我在这里解决了一个临时解决方案。制作一个文件/字典并获取哈希表中的所有条目。然后我将标记我的句子并逐字检查数字,类似于你们建议的。我会在需要时继续更新文件。感谢您的宝贵建议,如果您有比这更好的东西,我会很高兴。OpenNlp 以一种非常好的方式实现了这一点,唯一的问题是时间复杂性,我希望在尽可能短的时间内完成此操作。

4

2 回答 2

1

创建一个数字字典。在文本中搜索该字典中的元素。

检查渐近复杂度,首先对文本进行排序可能更便宜。

于 2012-01-23T12:13:40.720 回答
0

您必须将所有这些单词保存在数组中,然后使用它。是一个如何将数字转换为字符串的示例。它可能对您有所帮助...我认为您必须将文本拆分为单词并检查单词是否为数字(三)。如果是,请检查下一个单词,因为它可以说“百万”,然后检查下一个单词,依此类推。这并不容易,看起来像一个小图书馆。我想你会花很多时间写这个。或者尝试在谷歌搜索这样的图书馆。也许有人已经遇到了这个问题,写了一个库并免费分享))祝你好运。

于 2012-01-23T12:19:58.380 回答