Java中的文本处理

时间:2012-01-23 12:08:10

标签: java opennlp

现在这是一个棘手的问题,我无法找到一个好的解决方案。假设我们在Java中有一个字符串: - “他今天吃了3个苹果。”现在,可以使用isNumeric函数或使用正则表达式在Java中轻松识别数字3。但是,如果我有一个字符串如下:“他今天吃了三个苹果。”?我怎样才能确定三个实际上是一个数字?我使用了OpenNlp并使用了它的POS标签,但是它需要的时间真的太多了!谁能建议更好的解决方案吗?另外在OpenNlp的“.bin”中,有一个文件 - “num.bin”,但我不知道如何使用这个文件。 OpenNlp文档也没有提及它。谁能告诉我这是不是我一直在寻找的,如果是,那么如何使用它。

/ * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** / 我实际上在这里时间不多,所以我已经在这里找到了一个临时解决方案。创建一个文件/字典并获取哈希表中的所有条目。然后我会对我的句子进行标记,并逐字检查数字,类似于你们的建议。我会在需要时继续更新文件。感谢你们宝贵的建议,如果你有比这更好的东西,我会很高兴。 OpenNlp以非常好的方式实现了这一点,唯一的问题是时间复杂度,我希望在最短的时间内完成。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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