我需要找出一个单词是动词还是名词,还是两者都是
例如,单词是“search”它既可以是名词也可以是动词,但是stanford解析器会为它提供NN标记。
有没有什么方法可以让stanford解析器给出“搜索”既是名词又是动词?
我现在使用的代码
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();
}
或者我应该使用任何其他软件来做到这一点?请建议我 提前谢谢
答案 0 :(得分:8)
Stanford Parser根据上下文统计猜测单词的词性标记。你应该真正传入一个完整的句子,以确定在该句中,“搜索”是名词还是动词。
您只需获取完整的解析器即可获得词性标注。 Stanford POS Tagger就够了;它还包括Morphology
类,但它也考虑了上下文。
如果您想要所有英语单词可以使用的词性标签,而不提供上下文,那么WordNet可能是更好的选择。它有几个Java接口,包括JWNL和JWI。
答案 1 :(得分:3)
答案 2 :(得分:1)
斯坦福大学的解析器在句子的上下文中解析单词。要使用“搜索”的例子,在任何给定的句子中,“搜索”将是名词或动词,但不是同一句子中的名词和动词。
您正在寻找的是字典查找。我找到了几个可以为您提供所需信息的在线词典。以下是 Free Online Dictionary 中“搜索”一词的示例。
事实证明,“搜索”可以是名词,动词,不及物动词和及物动词。
我找不到一个应用程序编程接口(API),它会提供与您在Free Online Dictionary网页上找到的相同类型的信息。如果您的词汇表列表有限,您可以构建自己的API。