6

我需要找出一个词是动词还是名词,或者两者都是

例如,单词是“搜索”,它既可以是名词也可以是动词,但斯坦福解析器会为其提供 NN 标记。

斯坦福解析器有什么办法可以让“搜索”既是名词又是动词?

我现在使用的代码

public static String Lemmatize(String word) {
    WordTag w = new WordTag(word);
    w.setTag(POSTagWord(word));
    Morphology m = new Morphology();
    WordLemmaTag wT = m.lemmatize(w);

    return wT.lemma();
}

还是我应该使用任何其他软件来做到这一点?请建议我提前谢谢

4

3 回答 3

8

斯坦福解析器根据上下文统计猜测单词的词性标签。你真的应该传入一个完整的句子来确定在那个句子中,“搜索​​”是名词还是动词。

您不需要完整的解析器来获取词性标签。斯坦福 POS Tagger就足够了;它还包括Morphology类,但它也考虑了上下文。

如果您想要一个英语单词可以使用的所有词性标签,而不给出上下文,那么WordNet可能是一个更好的选择。它有几个 Java 接口,包括JWNLJWI

于 2010-10-04T13:33:49.377 回答
3

WordNet就是您想要的。它为英语词典提供了一个 API,其中包含可能的词性、同义词、词义、上位词/下位词关系等等。

有关出色的纯 Java WordNet API,请参阅Yawni

于 2010-10-04T13:45:31.733 回答
1

斯坦福解析器在句子的上下文中解析单词。要使用“搜索”的示例,在任何给定的句子中,“搜索​​”将是名词或动词,但不能在同一个句子中既是名词又是动词。

您正在寻找的是字典查找。我找到了几本在线词典,可以为您提供所需的信息。这是免费在线词典中“搜索”一词的示例。

原来“搜索”可以是名词、动词、不及物动词和及物动词。

我找不到可以为您提供与免费在线词典网页上相同类型的信息的应用程序编程接口 (API)。如果您的词汇表有限,您可以构建自己的 API。

于 2010-10-04T13:33:12.230 回答