Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java wordnet代码中的RetrievalException_Java_Wordnet_Jaws Wordnet - Fatal编程技术网

Java wordnet代码中的RetrievalException

Java wordnet代码中的RetrievalException,java,wordnet,jaws-wordnet,Java,Wordnet,Jaws Wordnet,我执行了以下代码: package edu.smu.tspell.wordnet; import java.util.Scanner; public class TestJAWS { /** * Main entry point. The command-line arguments are concatenated together * (separated by spaces) and used as the word form to look up.

我执行了以下代码:

package edu.smu.tspell.wordnet;

import java.util.Scanner;

public class TestJAWS
{

    /**
     * Main entry point. The command-line arguments are concatenated together
     * (separated by spaces) and used as the word form to look up.
     */
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);

        args =  new String[] {"airplane"};
        if (args.length > 0)
        {
            //  Concatenate the command-line arguments
            StringBuffer buffer = new StringBuffer();
            for (int i = 0; i < args.length; i++)
            {
                buffer.append((i > 0 ? " " : "") + args[i]);
            }
            String wordForm = buffer.toString();
            //  Get the synsets containing the wrod form
            WordNetDatabase database = WordNetDatabase.getFileInstance();
            Synset[] synsets = database.getSynsets(wordForm);
            //  Display the word forms and definitions for synsets retrieved
            if (synsets.length > 0)
            {
                System.out.println("The following synsets contain '" +
                        wordForm + "' or a possible base form " +
                        "of that text:");
                for (int i = 0; i < synsets.length; i++)
                {
                    System.out.println("");
                    String[] wordForms = synsets[i].getWordForms();
                    for (int j = 0; j < wordForms.length; j++)
                    {
                        System.out.print((j > 0 ? ", " : "") +
                                wordForms[j]);
                    }
                    System.out.println(": " + synsets[i].getDefinition());
                }
            }
            else
            {
                System.err.println("No synsets exist that contain " +
                        "the word form '" + wordForm + "'");
            }
        }
        else
        {
            System.err.println("You must specify " +
                    "a word form for which to retrieve synsets.");
        }
    }

}
包edu.smu.tspell.wordnet;
导入java.util.Scanner;
公共类TestJAWS
{
/**
*主入口点。命令行参数连接在一起
*(用空格分隔)用作查找的单词形式。
*/
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
args=新字符串[]{“飞机”};
如果(args.length>0)
{
//连接命令行参数
StringBuffer=新的StringBuffer();
对于(int i=0;i0?“:”)+args[i]);
}
字符串wordForm=buffer.toString();
//获取包含wrod表单的语法集
WordNetDatabase=WordNetDatabase.getFileInstance();
Synset[]synsets=database.getSynsets(wordForm);
//显示检索到的语法集的单词形式和定义
如果(synsets.length>0)
{
System.out.println(“以下语法集包含”+
wordForm+“'或可能的基本形式”+
“在该案文中:”;
for(int i=0;i0?,“:”)+
词形[j];
}
System.out.println(“:”+synsets[i].getDefinition());
}
}
其他的
{
System.err.println(“不存在包含”+
“单词形式“'+单词形式+””);
}
}
其他的
{
System.err.println(“您必须指定”+
“检索语法集的单词形式。”);
}
}
}
但我得到了一个错误:

Exception in thread "main" edu.smu.tspell.wordnet.impl.file.RetrievalException: Error opening index file: .\C:\Users\piyush_p\Desktop\workspace\Wordnet\src\WordNet-3.0\dict\index.sense (The filename, directory name, or volume label syntax is incorrect)
    at edu.smu.tspell.wordnet.impl.file.SenseIndexReader.getInstance(SenseIndexReader.java:88)
    at edu.smu.tspell.wordnet.impl.file.WordFormLookup.loadSynsets(WordFormLookup.java:273)
    at edu.smu.tspell.wordnet.impl.file.WordFormLookup.getSynsets(WordFormLookup.java:230)
    at edu.smu.tspell.wordnet.impl.file.WordFormLookup.getSynsets(WordFormLookup.java:172)
    at edu.smu.tspell.wordnet.impl.file.FileDatabase.getSynsets(FileDatabase.java:87)
    at edu.smu.tspell.wordnet.WordNetDatabase.getSynsets(WordNetDatabase.java:61)
    at edu.smu.tspell.wordnet.TestJAWS.main(TestJAWS.java:28)
Caused by: java.io.FileNotFoundException: .\C:\Users\piyush_p\Desktop\workspace\Wordnet\src\WordNet-3.0\dict\index.sense (The filename, directory name, or volume label syntax is incorrect)
    at java.io.RandomAccessFile.open(Native Method)
    at java.io.RandomAccessFile.<init>(Unknown Source)
    at edu.smu.tspell.wordnet.impl.RandomAccessReader.<init>(RandomAccessReader.java:75)
    at edu.smu.tspell.wordnet.impl.LineLocator.<init>(LineLocator.java:54)
    at edu.smu.tspell.wordnet.impl.MultipleLineLocator.<init>(MultipleLineLocator.java:48)
    at edu.smu.tspell.wordnet.impl.file.SenseIndexReader.<init>(SenseIndexReader.java:102)
    at edu.smu.tspell.wordnet.impl.file.SenseIndexReader.getInstance(SenseIndexReader.java:83)
    ... 6 more`enter code here`
线程“main”edu.smu.tspell.wordnet.impl.file.RetrievalException中的异常:打开索引文件时出错:。\C:\Users\piyush\p\Desktop\workspace\wordnet\src\wordnet-3.0\dict\index.sense(文件名、目录名或卷标语法不正确)
位于edu.smu.tspell.wordnet.impl.file.SenseIndexReader.getInstance(SenseIndexReader.java:88)
位于edu.smu.tspell.wordnet.impl.file.WordFormLookup.loadSynsets(WordFormLookup.java:273)
位于edu.smu.tspell.wordnet.impl.file.WordFormLookup.getSynsets(WordFormLookup.java:230)
位于edu.smu.tspell.wordnet.impl.file.WordFormLookup.getSynsets(WordFormLookup.java:172)
位于edu.smu.tspell.wordnet.impl.file.FileDatabase.getSynsets(FileDatabase.java:87)
位于edu.smu.tspell.wordnet.WordNetDatabase.getSynsets(WordNetDatabase.java:61)
位于edu.smu.tspell.wordnet.TestJAWS.main(TestJAWS.java:28)

原因:java.io.FileNotFoundException:。\C:\Users\piyush\p\Desktop\workspace\Wordnet\src\Wordnet-3.0\dict\index.sense(文件名、目录名或卷标语法不正确) 位于java.io.RandomAccessFile.open(本机方法) 位于java.io.RandomAccessFile。(未知源) 在edu.smu.tspell.wordnet.impl.RandomAccessReader上。(RandomAccessReader.java:75) 位于edu.smu.tspell.wordnet.impl.LineLocator.(LineLocator.java:54) 在edu.smu.tspell.wordnet.impl.MultipleLineLocator.(MultipleLineLocator.java:48) 位于edu.smu.tspell.wordnet.impl.file.SenseIndexReader。(SenseIndexReader.java:102) 位于edu.smu.tspell.wordnet.impl.file.SenseIndexReader.getInstance(SenseIndexReader.java:83) ... 6更多`请在此处输入代码`
通过添加

`System.setProperty("wordnet.database.dir", "C:\WordNet-3.0\dict\");` 

在main方法中,看起来您还没有下载数据库。因此,请从以下链接下载WordNet数据库:

为数据库目录添加“dict”目录的路径:

System.setProperty("wordnet.database.dir", "/home/xyz/WordNet-3.0/dict");

检查路径中是否存在字典,原因是:java.io.FileNotFoundException:。\C:\Users\piyush\p\Desktop\workspace\Wordnet\src\Wordnet-3.0\dict\index.sense(文件名、目录名或卷标语法不正确)…很简单吧?字典存在。@Amit Gyes jane..但是从当前位置(WordNetDatabase.java存储的位置)它正在搜索“\C:\Users\piyush\u p\Desktop\workspace\Wordnet\src\Wordnet-3.0\dict\index.sense”。。。它应该从C:驱动器搜索,而不是从当前位置搜索。@Naren没有。我按你说的做了。