构建Java Lemmatizer

时间:2016-04-29 03:59:03

标签: java regex lemmatization

我正在尝试使用Java API构建一个tokenizer(没有Stanford提供的,Apache OpenNLP)。 我已经能够通过使用正则表达式和Java模式/匹配器来隔离单词:

"[a-zA-Z]+".

我现在想找到这个词的引理。 由于其许可问题,我不想使用StanfordNLP。 接下来是什么? 我想我确实需要一本字典作为模型来引用/比较。 而且......? 有人在那里做过吗?尝试使用Java构建一个单词变形器?提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

如果您有单词列表,并且想知道两个单词是否相同,例如"运行","运行","运行"和"跑步"。 您可以对字典执行http请求,例如:

http://www.oxforddictionaries.com/definition/english/runs

在这种情况下,页面重定向到:

http://www.oxforddictionaries.com/definition/english/run?q=runs

然后你可以编写一个http请求,如果它被重定向到其他单词,那么它们是相同的。

在其他情况下:

http://www.oxforddictionaries.com/definition/english/run

您可以阅读:

动词(运行,运行;过去运行/运行/;过去分词运行)

然后你可以创建一个解析器来解释页面的信息

在Java中,您可以使用以下命令轻松创建http请求:

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(URL);