我正在尝试使用 Java API(没有斯坦福提供的 Apache OpenNLP)来构建一个标记器。我已经能够通过使用正则表达式和 Java Pattern/Matcher 来分离单词:
"[a-zA-Z]+".
我现在想找到这个词的引理。由于许可问题,我不想使用 StanfordNLP。接下来是什么?我想我确实需要一本字典作为参考/比较的模型。和 ...?有人做过吗?尝试使用 Java 构建单词 lemmatizer?提前致谢。:)
我正在尝试使用 Java API(没有斯坦福提供的 Apache OpenNLP)来构建一个标记器。我已经能够通过使用正则表达式和 Java Pattern/Matcher 来分离单词:
"[a-zA-Z]+".
我现在想找到这个词的引理。由于许可问题,我不想使用 StanfordNLP。接下来是什么?我想我确实需要一本字典作为参考/比较的模型。和 ...?有人做过吗?尝试使用 Java 构建单词 lemmatizer?提前致谢。:)
如果您有单词列表并且想知道两个单词是否相同,例如“run”、“runs”、“ran”和“running”。您可以向字典发出 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
你可以阅读 :
动词(runs,running;过去跑/ran/;过去分词run)
然后你可以创建一个解析器来解释页面的信息
在 Java 中,您可以使用以下命令轻松创建 http 请求:
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(URL);