Как использовать временный тег 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?,

Тогда вы можете просто использовать пакет импорта и использовать функциональность в вашем проекте.

Другие вопросы по тегам