Quiero encontrar similitudes de Word usando WordNet

Estoy haciendo un proyecto de último año sobre "categorización de videos web", en el que una parte es encontrar palabras similares (sinónimos) para una palabra en particular y quiero eliminar términos similares.

Conozco el lenguaje Java, así que elegí "Similitud de palabras para Java" ws4j

Para eso solo he usado WS4J1.0.1 jar, aunque no he descargado ningún archivo adicional como WordNet base de datos léxica o sqlite base de datos para almacenarlo. Porque en ese sitio web han mencionado que todos están contenidos como precompilados en este archivo jar.

Cuando ejecuté el programa Demo SimilarityCalculationDemo.java, Tengo los siguientes errores:

    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

Estoy usando Netbeans IDE 7.4 con JDK 6.

¿Podría alguien ayudarme, por favor, cómo superar este problema, porque hay menos documentación disponible en Internet sobre ws4j.

preguntado el 08 de febrero de 14 a las 12:02

1 Respuestas

Bueno, no pude reproducir tu error. Para mí, funcionó perfectamente desde el primer momento, usando eclipse, así que intentaré ayudarlo a reproducir exactamente lo que hice.

  1. descargar ws4j-1.0.1.jar desde https://ws4j.googlecode.com/files/ws4j-1.0.1.jar y asegúrese de que su tamaño después de la descarga sea de 41,362,723 bytes (al menos, eso es lo que me dijo eclipse en mi caja de Linux)

  2. Usa java 7

  3. Cree un proyecto de eclipse simple y suelte el frasco allí. Luego agregue el jar a la ruta de compilación (clic derecho -> ruta de compilación -> agregar)

  4. Cree un paquete y una clase apropiados para acomodar la clase de demostración

  5. Simplemente ejecute la demostración y obtendrá algo como

    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.
    

enter image description here

respondido 06 mar '14, 17:03

Estoy usando el sistema operativo Windows8 con NetBeans IDE 7.4. ¿Hay algún problema en el uso del Sistema Operativo? porque hice lo mismo que tú al ejecutar el archivo de demostración: nawazlj

en teoría, no. He ejecutado el mío en Linux - Leo

¿Estás seguro de que tu jar no está dañado? - Leo

Acabo de descargar el archivo jar del mismo enlace ayer y lo ejecuté en NetBeansIDE 7.4. pero muestra el mismo error de tiempo de ejecución - nawazlj

acabas de salvarme el día, aunque todo lo que necesitaba era descargar el archivo ws4j.jar original - R.jzadeh

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.