java - 基于 WordNet 的语义相似性 (WNetSS) API

标签 java netbeans semantics similarity wordnet

我正在使用WNetSS我研究中的 API 用于计算单词之间的语义相似度。我按照 this page 中列出的说明进行操作。我运行 first example它工作完美,数据库已成功加载,但是当我尝试运行 second example 时,已显示此错误:

run:
The database WordnetSemanticSimilarity is created.
Feb 13, 2018 11:34:07 PM net.sf.extjwnl.dictionary.Dictionary setInstance
INFO: Installing dictionary net.sf.extjwnl.dictionary.FileBackedDictionary@e73f9ac
Loading WordNet2.1 in progress ...
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1740-noun' for key 'PRIMARY'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1040)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2450)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2371)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2355)
    at WordNetSemanticSimilarity.WordNetTreatment.WordNetProcessing.LoadWordNetInDataBase(WordNetProcessing.java:259)
    at wnetssexamples.Example0.main(Example0.java:39)
C:\Users\Administrator\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)

我尝试打开第一个示例中创建的数据库,发现有四行具有相同的键值,但不确定这是否会改变 api 的逻辑:

enter image description here

当我进一步尝试查找该表中有多少重复行时,我发现了一个巨大的数字,如下图所示:

enter image description here

拜托,我不确定如何解决这个问题,因为我自己没有创建数据库,我只是加载它。不知道这是作者的错还是我做错了什么。您的快速 react 将会有很大帮助。

谢谢

最佳答案

这是因为您运行了 example 0 两次,这将重复数据集中的记录,应该做的是运行 example 0 ,然后 example 1 运行它四次,每次更改以下行:

第一次POS pos=POS.ADVERB; 第二次POS pos=POS.ADJECTIVE; 第三次POS pos=POS.NOUN; 第四次 POS pos=POS.VERB;

然后运行示例 6 四次,并进行与示例 1 中相同的修改。

然后尝试注释这些类,并且不再运行它们,这样数据库和表就不会被覆盖。

关于java - 基于 WordNet 的语义相似性 (WNetSS) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48775526/

相关文章:

java - 使用 JanusGraph Java API 和 HBase 时出现 TemporaryBackendException

java - 我的计时器有什么问题吗?

HTML 语义 : Is it a good idea to put links (anchor elements) in headings?

parsing - 句法分析和语义分析

html - 从语义上讲,a 中的 : a in h2, 和 h2 哪个更正确?

java - 在 Spring REST Controller 中将 JSON 映射到 Hibernate 模型

java - 将 PDF 文件转换为字节数组的方法..(使用 outputstream() 进行刷新)

javascript - 如何在导入JSP中获取主机协议(protocol)

html - 杂散结束标记 "head"

python - 错误 : no viable alternative at input 'for' Python