【发布时间】:2013-04-08 09:33:01
【问题描述】:
我正在尝试查找文本中特定单词或复合词的出现。
例如,文本是“祝你生日快乐” 我必须匹配的短语是“生日快乐”。
我有一个需要与输入文本匹配的单词/短语字典。这本词典由大约3000个单词/复合词组成。需要分析的文本数量可能会有所不同。现在我正在使用正则表达式 .\b+phrase+\b.。这给了我正确的答案,但速度很慢。
此外,在文本中找到的单词可能前面或后面有特殊字符,如!,:,。等等
虽然 text.contains() 很快,但我不能使用它,因为即使对于单词的子集它也会返回 true。有什么方法可以让我更快地做到这一点?
【问题讨论】:
-
为什么不能使用
text.contains()?单词的子集是什么意思? -
你在哪里存储字典?
-
就像说,我想找的词是作者,那么即使权威错误,包含也会返回真。
-
@Sudhanshu :我正在为字典使用 ArrayList。
-
不能将这两种方法结合起来吗?所以首先使用
text.contains,只有当它返回true时,才使用较慢的正则表达式。