0

我在字符串变量中有一个随机文本内容。我想查找用户指定的特定单词的所有单词变形。

示例:如果用户正在寻找单词“assist”,那么它应该抓取字符串中出现的所有“assist、assist、assist、assisting”。

问题是:是否有 Java 库可用于在指定的 String 中自动检测此类变形?

注意:我看到一个名为WolframAlpha的 Java 库声称它可以做到这一点,这里是它的 Web 界面,但我没有看到这个库工作,也没有使用它的指南。

4

3 回答 3

1

首先它不是 Java 库,它是以前称为 Mathematica 的 Wolfram 语言。它确实有 JLink 并且可以从 Java 调用,但是您必须运行 Wolfram 内核来执行代码。

这被称为自然语言处理,它是一个庞大而复杂的领域。我已经解决了一些问题,但我只能说,如果你想获得可靠的解决方案,这比这更难更复杂。

你可能想看看的东西是:斯坦福 NLP

于 2014-09-03T11:49:31.850 回答
0

看看这个。。

我不知道您的要求有多大,但是您始终可以使用维基词典并解析您的数据?

检查这个问题..可以有所帮助

于 2014-09-03T11:45:12.857 回答
0

它被称为词干。首先,您需要(对于特定语言)派生词干:

assisting -> assist using -ance, -ing, -ly, -s, -ed etcetera.
sought -> search using an exception list

然后进行搜索,可能使用正则表达式(Matcher.find)。图案:

"\\bassist\\p{L}*"
"\\b(search|sought)\\p{L}"

对于前缀 un-dis-inter-,情况仍然会更复杂,但一般来说,变形是英语中的词尾。然后是同义词搜索。

那里的字典通常称为语料库。搜索“免费英语语料库”将产生结果。

\\b= 单词边界 p{L}*= 0 个或更多 ( *) 个字母

于 2014-09-03T12:10:52.137 回答