Java 我想使用WordNet查找单词相似性

Java 我想使用WordNet查找单词相似性,java,netbeans,wordnet,ws4j,Java,Netbeans,Wordnet,Ws4j,我正在做“网络视频分类”的最后一年项目,其中一个部分是为一个特定的词找到相似的(同义词)词,我想从中删除相似的词 我懂Java语言,所以我选择了“Java的单词相似性”ws4j 为此,我只使用了jar文件,甚至我也没有下载任何额外的文件,如WordNet词法数据库或sqlite数据库来存储它。因为在该网站中,他们提到所有内容都包含在这个jar文件中作为预编译 当我执行演示程序时,我得到以下错误: java.sql.BatchUpdateException: batch entry 0:

我正在做“网络视频分类”的最后一年项目,其中一个部分是为一个特定的词找到相似的(同义词)词,我想从中删除相似的词

我懂Java语言,所以我选择了“Java的单词相似性”ws4j

为此,我只使用了jar文件,甚至我也没有下载任何额外的文件,如WordNet词法数据库或sqlite数据库来存储它。因为在该网站中,他们提到所有内容都包含在这个jar文件中作为预编译

当我执行演示程序时,我得到以下错误:

    java.sql.BatchUpdateException: batch entry 0: [SQLITE_CORRUPT]  The database disk image is malformed (database disk image is malformed)
    at org.sqlite.Stmt.executeBatch(Stmt.java:226)
    at org.sqlite.Stmt.executeBatch(Stmt.java:226)
    at edu.cmu.lti.jawjaw.db.SQL.createIndexIfNotExists(SQL.java:118)
    at edu.cmu.lti.jawjaw.db.SQL.createSQLConnection(SQL.java:98)
    at edu.cmu.lti.jawjaw.db.SQL.<init>(SQL.java:55)
    at edu.cmu.lti.jawjaw.db.SQL.<clinit>(SQL.java:45)
    at edu.cmu.lti.jawjaw.db.WordDAO.findWordsByLemmaAndPos(WordDAO.java:124)
    at edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
    at edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
                             atedu.cmu.lti.ws4j.util.WordSimilarityCalculator.calcRelatednessOfWords(WordSimilarityCalculator.java:79)
    at edu.cmu.lti.ws4j.RelatednessCalculator.calcRelatednessOfWords(RelatednessCalculator.java:61)
    at web_cat.SimilarityCalculationDemo.run(SimilarityCalculationDemo.java:37)
    at web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
        java.sql.SQLException: [SQLITE_CORRUPT]  The database disk image is malformed (database disk image is malformed)
    at org.sqlite.DB.newSQLException(DB.java:383)
    at org.sqlite.DB.newSQLException(DB.java:387)
    at org.sqlite.DB.throwex(DB.java:374)
    at org.sqlite.NativeDB.prepare(Native Method)
    at org.sqlite.DB.prepare(DB.java:123)
    at org.sqlite.Stmt.execute(Stmt.java:113)
    at edu.cmu.lti.jawjaw.db.SQL.setPragmaCacheSize(SQL.java:137)
    at edu.cmu.lti.jawjaw.db.SQL.createSQLConnection(SQL.java:99)
    at edu.cmu.lti.jawjaw.db.SQL.<init>(SQL.java:55)
    at edu.cmu.lti.jawjaw.db.SQL.<clinit>(SQL.java:45)
    at edu.cmu.lti.jawjaw.db.WordDAO.findWordsByLemmaAndPos(WordDAO.java:124)
    at edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
    at edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
    at edu.cmu.lti.ws4j.util.WordSimilarityCalculator.calcRelatednessOfWords(WordSimilarityCalculator.java:79)
    at edu.cmu.lti.ws4j.RelatednessCalculator.calcRelatednessOfWords(RelatednessCalculator.java:61)
    at web_cat.SimilarityCalculationDemo.run(SimilarityCalculationDemo.java:37)
    at web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
java.sql.SQLException: [SQLITE_CORRUPT]  The database disk image is malformed (database disk image is malformed)
    at org.sqlite.DB.newSQLException(DB.java:383)
    at org.sqlite.DB.newSQLException(DB.java:387)
    at org.sqlite.DB.throwex(DB.java:374)
    at org.sqlite.NativeDB.prepare(Native Method)
    at org.sqlite.DB.prepare(DB.java:123)
    at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
    at org.sqlite.Conn.prepareStatement(Conn.java:404)
    at org.sqlite.Conn.prepareStatement(Conn.java:399)
    at org.sqlite.Conn.prepareStatement(Conn.java:383)
    at edu.cmu.lti.jawjaw.db.SQL.prepareStatements(SQL.java:151)
    at edu.cmu.lti.jawjaw.db.SQL.<init>(SQL.java:56)
    at edu.cmu.lti.jawjaw.db.SQL.<clinit>(SQL.java:45)
    at edu.cmu.lti.jawjaw.db.WordDAO.findWordsByLemmaAndPos(WordDAO.java:124)
    at edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
    at edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
    at edu.cmu.lti.ws4j.util.WordSimilarityCalculator.calcRelatednessOfWords(WordSimilarityCalculator.java:79)
    at edu.cmu.lti.ws4j.RelatednessCalculator.calcRelatednessOfWords(RelatednessCalculator.java:61)
    at web_cat.SimilarityCalculationDemo.run(SimilarityCalculationDemo.java:37)
    at web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
Exception in thread "main" java.lang.NullPointerException
    at edu.cmu.lti.jawjaw.db.WordDAO.findWordsByLemmaAndPos(WordDAO.java:125)
    at edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
    at edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
    at edu.cmu.lti.ws4j.util.WordSimilarityCalculator.calcRelatednessOfWords(WordSimilarityCalculator.java:79)
    at edu.cmu.lti.ws4j.RelatednessCalculator.calcRelatednessOfWords(RelatednessCalculator.java:61)
    at web_cat.SimilarityCalculationDemo.run(SimilarityCalculationDemo.java:37)
    at web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
Java Result: 1
java.sql.BatchUpdateException:批处理条目0:[SQLITE\u CORRUPT]数据库磁盘映像格式不正确(数据库磁盘映像格式不正确)
位于org.sqlite.Stmt.executeBatch(Stmt.java:226)
位于org.sqlite.Stmt.executeBatch(Stmt.java:226)
位于edu.cmu.lti.jawjaw.db.SQL.createIndexIfNotExists(SQL.java:118)
位于edu.cmu.lti.jawjaw.db.SQL.createSQLConnection(SQL.java:98)
在edu.cmu.lti.jawjaw.db.SQL.(SQL.java:55)
在edu.cmu.lti.jawjaw.db.SQL.(SQL.java:45)
位于edu.cmu.lti.jawjaw.db.WordDAO.findwordsbylemmandpos(WordDAO.java:124)
位于edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
位于edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
atedu.cmu.lti.ws4j.util.WordSimilarityCalculator.CalcreatedNessOfWord(WordSimilarityCalculator.java:79)
在edu.cmu.lti.ws4j.relatednessofwords.calcreatednessofwords(RelatednessCalculator.java:61)
在web_cat.SimilarityCalculationDemo.run上(SimilarityCalculationDemo.java:37)
在web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
java.sql.SQLException:[SQLITE\u CORRUPT]数据库磁盘映像格式不正确(数据库磁盘映像格式不正确)
位于org.sqlite.DB.newSQLException(DB.java:383)
位于org.sqlite.DB.newSQLException(DB.java:387)
位于org.sqlite.DB.throwex(DB.java:374)
在org.sqlite.NativeDB.prepare(本机方法)
位于org.sqlite.DB.prepare(DB.java:123)
位于org.sqlite.Stmt.execute(Stmt.java:113)
位于edu.cmu.lti.jawjaw.db.SQL.setPragmaCacheSize(SQL.java:137)
位于edu.cmu.lti.jawjaw.db.SQL.createSQLConnection(SQL.java:99)
在edu.cmu.lti.jawjaw.db.SQL.(SQL.java:55)
在edu.cmu.lti.jawjaw.db.SQL.(SQL.java:45)
位于edu.cmu.lti.jawjaw.db.WordDAO.findwordsbylemmandpos(WordDAO.java:124)
位于edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
位于edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
在edu.cmu.lti.ws4j.util.WordSimilarityCalculator.CalcreatedNessOfwords(WordSimilarityCalculator.java:79)
在edu.cmu.lti.ws4j.relatednessofwords.calcreatednessofwords(RelatednessCalculator.java:61)
在web_cat.SimilarityCalculationDemo.run上(SimilarityCalculationDemo.java:37)
在web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
java.sql.SQLException:[SQLITE\u CORRUPT]数据库磁盘映像格式不正确(数据库磁盘映像格式不正确)
位于org.sqlite.DB.newSQLException(DB.java:383)
位于org.sqlite.DB.newSQLException(DB.java:387)
位于org.sqlite.DB.throwex(DB.java:374)
在org.sqlite.NativeDB.prepare(本机方法)
位于org.sqlite.DB.prepare(DB.java:123)
位于org.sqlite.prepsmt(prepsmt.java:42)
位于org.sqlite.Conn.prepareStatement(Conn.java:404)
位于org.sqlite.Conn.prepareStatement(Conn.java:399)
位于org.sqlite.Conn.prepareStatement(Conn.java:383)
位于edu.cmu.lti.jawjaw.db.SQL.prepareStatements(SQL.java:151)
在edu.cmu.lti.jawjaw.db.SQL.(SQL.java:56)
在edu.cmu.lti.jawjaw.db.SQL.(SQL.java:45)
位于edu.cmu.lti.jawjaw.db.WordDAO.findwordsbylemmandpos(WordDAO.java:124)
位于edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
位于edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
在edu.cmu.lti.ws4j.util.WordSimilarityCalculator.CalcreatedNessOfwords(WordSimilarityCalculator.java:79)
在edu.cmu.lti.ws4j.relatednessofwords.calcreatednessofwords(RelatednessCalculator.java:61)
在web_cat.SimilarityCalculationDemo.run上(SimilarityCalculationDemo.java:37)
在web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
线程“main”java.lang.NullPointerException中出现异常
在edu.cmu.lti.jawjaw.db.WordDAO.findwordsbylemmandpos(WordDAO.java:125)
位于edu.cmu.lti.jawjaw.util.WordNetUtil.wordToSynsets(WordNetUtil.java:38)
位于edu.cmu.lti.lexical_db.NictWordNet.getAllConcepts(NictWordNet.java:38)
在edu.cmu.lti.ws4j.util.WordSimilarityCalculator.CalcreatedNessOfwords(WordSimilarityCalculator.java:79)
在edu.cmu.lti.ws4j.relatednessofwords.calcreatednessofwords(RelatednessCalculator.java:61)
在web_cat.SimilarityCalculationDemo.run上(SimilarityCalculationDemo.java:37)
在web_cat.SimilarityCalculationDemo.main(SimilarityCalculationDemo.java:43)
Java结果:1
我将NetBeansIDE7.4与JDK6一起使用


有没有人能帮我解决这个问题,因为互联网上关于ws4j的文档很少,我无法重现你的错误。对我来说,它完全是开箱即用的,使用eclipse,所以我将尽力帮助您复制我所做的一切

  • 从下载ws4j-1.0.1.jar,并确保下载后的大小为41362723字节(至少,eclipse在我的linux框中告诉我)

  • 使用Java7

  • 创建一个简单的eclipse项目并将jar放在那里。然后将jar添加到构建路径 (右键单击->构建路径->添加)

  • 创建一个合适的包和类来容纳演示类

  • 只需运行演示,您将得到如下结果

    edu.cmu.lti.ws4j.impl.HirstStOnge   0.0
    edu.cmu.lti.ws4j.impl.LeacockChodorow   1.3862943611198906
    edu.cmu.lti.ws4j.impl.Lesk  0.0
    edu.cmu.lti.ws4j.impl.WuPalmer  0.4
    edu.cmu.lti.ws4j.impl.Resnik    2.5031573470157453
    edu.cmu.lti.ws4j.impl.JiangConrath  0.11150424023847051
    edu.cmu.lti.ws4j.impl.Lin   0.3582442863008455
    edu.cmu.lti.ws4j.impl.Path  0.14285714285714285
    Done in 1951 msec.
    

  • 我正在使用Windows8操作系统和NetBeans IDE 7.4。操作员的使用有什么问题吗