首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -使用Wordnet和JWI获取名词数组

Java -使用Wordnet和JWI获取名词数组
EN

Stack Overflow用户
提问于 2012-07-06 04:03:58
回答 2查看 1.7K关注 0票数 2

关于WordNet和MIT JWI (用于访问WordNet的Java API ),我有一个非常简单的问题:我将一个文件读入一个字符串数组,并将其拆分成单词。如何使用getPOS()获得仅包含名词的单独字符串数组?谢谢!

我尝试过的例子:

公共类测试{

代码语言:javascript
复制
public static void main(String[] args) {

    String sentence1 = "The cat ate the fish";

    String[] s1Split = sentence1.split(" ");

    String wnhome = "C:/Program Files/WordNet/2.1";
    String path = wnhome + File.separator + "dict";
    URL url = new URL("file", null , path); 
    IDictionary dict = new Dictionary(url);
    dict.open();


    for (int i = 0; i <s1.length; i++) {
                    //this is where I got confused, wanted to use something like:
                    //Word w = dict.getIndexWord(s1[i], ..) but I need a POS argument, 
                    //and I can't find another suitable method
                    //if w.getPOS() is a noun I would add it to a separate vector
    }

}

}

编辑:只是想到了另一个-使用像w = dict.getIndexWord(s1[i], POS.NOUN)这样的东西是可靠的吗,如果一个名词不存在,w将是空的?这是值得尝试的东西吗?

EDIT2:所以我的问题是,是否有任何方法可以将字符串(word)转换为Wordnet对象,这样我就可以对其使用getPOS()?

EN

回答 2

Stack Overflow用户

发布于 2012-07-06 04:15:15

如果你使用另一个库,你的方法就不会工作得那么好-- WordNet被设计成一个“字典/辞典”,而不是一个解析器。斯坦福解析器是一个寻找替代方案的好地方。

也就是说,您可以对每个单词执行查找,但如果存在既是名词又是动词的单词,您将无法区分,因为您没有考虑语法。

This应该可以帮助您入门(请参阅底部的示例)。查找一个名词,如果它没有返回,就丢弃它。

票数 1
EN

Stack Overflow用户

发布于 2014-03-13 18:04:58

对于JWNL,它的工作原理如下,不知道它是否相同。

如果我理解了,你的问题是获取词性标签(词性标签)。要做到这一点,你必须使用另一个工具,比如Stanford Pos Tagger。但是,通过这种方式,您可以为每个单词字符串获取一个字符串,因此您必须将字符串格式中的POS转换为JWNL的POS类中的POS。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11351748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档