Как использовать временный тег HeidelTime внутри проекта Java?
Я хотел бы автоматически определять даты в потоке документов, и в этом смысле я хотел бы использовать код, предоставленный проектом с открытым исходным кодом Heideltime, доступным здесь ( https://code.google.com/p/heideltime/). Я установил комплект Heideltime (не автономную версию), и теперь мне интересно, как я могу ссылаться на него и вызывать его в моем проекте Java. Я уже добавил зависимость к Heideltime внутри моего pom.xml:
<dependency>
<groupId>de.unihd.dbs</groupId>
<artifactId>heideltime</artifactId>
<version>1.7</version>
</dependency>
однако я не уверен, как вызывать классы из этого исходного проекта в свой собственный проект. Я использую Maven для обоих. Кто-нибудь, кто использовал его раньше, может дать мне совет или совет? Большое спасибо!
3 ответа
heideltime-kit сам по себе является проектом Maven. Таким образом, вы можете добавить проект heideltime-kit в качестве зависимости. (В Netbeans щелкните правой кнопкой мыши на Зависимости, -> Добавить зависимость -> Открыть проекты (сначала убедитесь, что проект открыт) -> HeidelTime)
Затем переместите файл config.props в папку src/main/resources вашего проекта. Установите путь к метке дерева в config.props.
Что касается использования классов, вы захотите создать экземпляр HeidelTimeStandalone (см. De.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.java), используя POSTagger.TREETAGGER в качестве параметра posTagger и жестко закодированный путь к вашему src / Файл main/resources/config.props в качестве параметра configPath. Например,
heidelTime = new HeidelTimeStandalone(Language.ENGLISH,
DocumentType.COLLOQUIAL,
OutputType.TIMEML,
"path/to/config.props",
POSTagger.TREETAGGER, true);
Затем, чтобы использовать HeidelTime для обработки текста, вы можете просто вызвать функцию процесса:
String result = heidelTime.process(text, date);
Добавляя к ответу от jgloves, вам может быть интересно проанализировать результирующую строку Heideltime в представление объекта Java. Следующий код преобразует представление Uima-XML в объекты Timex3.
HeidelTimeStandalone time = new HeidelTimeStandalone(Language.GERMAN, DocumentType.SCIENTIFIC, OutputType.XMI, "config.props", POSTagger.STANFORDPOSTAGGER);
String xmiRepresentation = time.process(document, documentCreationTime); //Apply Heideltime and get the XML-UIMA representation
JCas cas = jcasFactory.createJCas();
for(FSIterator<Annotation> it= cas.getAnnotationIndex(Timex3.type).iterator(); it.hasNext(); ){
System.out.printkn(it.next);
}
Эта библиотека еще не находится в центральном хранилище maven. (Вы можете проверить это на этом сайте http://search.maven.org/.)
Использовать библиотеку в вашем проекте. Вам следует скачать файл JAR и установить его локально. Ответьте на этот вопрос: Как добавить локальные файлы JAR в проект Maven?,
Тогда вы можете просто использовать пакет импорта и использовать функциональность в вашем проекте.