Как использовать Standford NLP библиотеки в Java?
Кто-нибудь знает, как использовать стандартную библиотеку NLP для лемматизации. Это дает стиль maven рамки. Тем не менее, я только хотел использовать в обычной библиотеке. Я импортировал библиотеки NLP. Тем не менее, это дает мне ClassNotFoundException.
java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
Любая идея о том, какие минимальные библиотеки требуется добавить для этого лемматизатора?
1 ответ
Просто создайте Java-проект, используя Maven. И добавьте следующую зависимость:
Для SBT:"edu.stanford.nlp" % "stanford-corenlp" % "3.6.0",
"edu.stanford.nlp" % "stanford-corenlp" % "3.6.0" classifier "models",
"edu.stanford.nlp" % "stanford-parser" % "3.6.0"
Примечание: в вашем случае используйте Maven. Выше 3-х зависимостей достаточно для ядра НЛП.
Но для вашего исключения используйте: зависимость Maven org.slf4j или включите jar org.slf4j в ваш проект.
Если вы хотите использовать Standford CoreNLP для лемматизации, TOKENIZATION, POS, анализа настроений или для каких-либо других целей, вы должны иметь stanford-corenlp
а также stanford-corenlp-model
банки.
Добавление этих банок в Maven:
<properties>
<stanford.corenlp.version>3.9.1</stanford.corenlp.version>
</properties>
<dependencies>
<!-- Stanford dependecies -->
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>${stanford.corenlp.version}</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>${stanford.corenlp.version}</version>
<classifier>models</classifier>
</dependency>
</dependencies>
Обработка ошибок и предупреждений
Если вы получаете сообщение об ошибке, то это ссылки, которые могут помочь вам удалить ссылки:
java.lang.NoClassDefFoundError в Standford Core NLP
Предупреждение StaticLoggerBinder: Если вы получаете это предупреждение в консоли:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Следуйте этому руководству:
SLF4J: Не удалось загрузить класс "org.slf4j.impl.StaticLoggerBinder".
Предупреждение No Appender: если вы получаете это предупреждение в консоли:
log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Следуйте этому руководству:
Обновление: минимальный POM.xml, который у меня есть:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.interviewBubble</groupId>
<artifactId>CoreNLP</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>CoreNLP</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<stanford.corenlp.version>3.9.1</stanford.corenlp.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Stanford dependecies -->
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>${stanford.corenlp.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<classifier>models</classifier>
<version>${stanford.corenlp.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
</project>