gpt4 book ai didi

java - 为什么 Java Wordnet 相似性在第二次调用时崩溃?

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:23 24 4
gpt4 key购买 nike

如上所述here我使用 Java 版本的 Wordnet::similarity。

这是服务器端代码。我收到一个包含两个元素(即两个句子)的列表然后计算这两个句子的相似度矩阵

String wordNetDirectory = System.getenv("WNHOME");
JWS ws = new JWS(wordNetDirectory,"3.0");
Resnik res = ws.getResnik();
while(true) {
try {
Socket clientSocket = serverSocket.accept();
System.out.println("Socket Established...");

ObjectOutputStream outToClient = new ObjectOutputStream(clientSocket.getOutputStream());
ObjectInputStream inFromClient = new ObjectInputStream(clientSocket.getInputStream());

List<List<String>> sents;
sents = (List<List<String>>) inFromClient.readObject();
System.out.println("recieved");

List<String> s1 = sents.get(0);
List<String> s2 = sents.get(1);

Double sum = 0.0;
for(String w1 : s1) {
for(String w2 : s2) {
if(w1.equals(w2)) sum += 1;
else sum += res.max(w1, w2, "n"); // <- Server.java:54
}
}
sum /= (s1.size() * s2.size());
outToClient.writeObject(sum);
System.out.println("wrote " + sum);
} catch (IOException e) {
} catch (ClassNotFoundException e) {
}
}

客户端以串行方式向服务器查询句子相似度(即在收到前一对句子的相似度分数后发送另一个请求)

这是我在服务器端得到的输出

Socket Established...
recieved
wrote 0.111357828694864
Socket Established...

Exception in thread "main" java.lang.IllegalArgumentException
at edu.mit.jwi.item.IndexWordID.<init>(IndexWordID.java:62)
at edu.mit.jwi.CachingDictionary.getIndexWord(CachingDictionary.java:173)
at edu.sussex.nlp.jws.Resnik.res(Resnik.java:133)
at edu.sussex.nlp.jws.Resnik.max(Resnik.java:313)
at Server.start(Server.java:54)
at Main.main(Main.java:7)

我不明白为什么第二次建立连接时会崩溃。

最佳答案

我认为这可能是由非法单词引起的。如果 w1w2 为空或全是空格或未出现在 wordnet 单词列表中,则在获取 wordID 时会出现此异常。

您在 IndexWordID 类中遇到异常,所以我认为这是最有可能的问题。您可以更改要尝试的字符串,或者在调用方法时提供代码和字符串参数以获取更多信息。你可以看这个文档http://projects.csail.mit.edu/jwi/api/edu/mit/jwi/item/IndexWordID.html

关于java - 为什么 Java Wordnet 相似性在第二次调用时崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com