在斯坦福解析器中查找名词和动词

6

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

例如,单词“search”既可以是名词,也可以是动词,但是斯坦福解析器将其标记为NN。

有没有办法让斯坦福解析器显示“search”既是名词又是动词?

我现在使用的代码:

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();
}

或者我应该使用其他软件来完成这项任务?请给我建议。谢谢!
3个回答

8
斯坦福解析器根据上下文统计猜测单词的词性标签。为了确定在句子中“search”是名词还是动词,您应该传入完整的句子。
您不需要完整的解析器来获取词性标签,斯坦福POS标注器就足够了;它还包括形态学类,但也考虑上下文。
如果您想要一个英语单词可能具有的所有词性标签,而不给出上下文,则WordNet可能是更好的选择。它有几个Java接口,包括JWNLJWI

3

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

请查看 Yawni,这是一个很棒的纯 Java WordNet API。


1

Stanford解析器可以解析句子中的单词。以“search”为例,在任何给定的句子中,“search”都可以是名词或动词,但不会在同一个句子中同时作为名词和动词。

您要查找的是字典查询。我找到了几个在线词典,可以提供您要查找的信息。以下是来自Free Online Dictionary关于“search”的示例。

结果发现,“search”可以是名词、动词、及物动词和不及物动词。

我找不到一个应用程序编程接口(API),能够提供与Free Online Dictionary网页上相同类型的信息。如果您的词汇表有限,您可以建立自己的API。


1
有一个Wordnik的API可以提供这个功能:http://www.wordnik.com/developers - ealdent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接