Обнаружение языка с apache Tika - PullRequest
0 голосов
/ 23 апреля 2020

В настоящее время я пытаюсь ладить с Apache Tika и настроить обнаружение языка, которое проверяет все значения ключей моих различных файлов свойств на правильный язык соответствующего файла. К сожалению, обнаружение не очень хорошее. Все ключи не распознаются на правильном языке, и я не знаю, как лучше это сделать. Решение API не может быть рассмотрено, потому что у меня есть заказ, чтобы найти свободный путь, и большинство бесплатных соединений разрешают только 1000 звонков в день (только на немецком языке у меня более 14000 ключей).

Если вы знаете, как я могу улучшить текущий код или, возможно, есть другое решение, пожалуйста, дайте мне знать!

Большое спасибо, Pascal

Это мой текущий код:

import java.util.Set;

import org.apache.tika.language.LanguageIdentifier;

public class detect {

  @SuppressWarnings("deprecation")
  public static void main(String[] args) throws Exception {

    final MyPropAllKeys mPAK = new MyPropAllKeys("messages_forCheck.properties");
    final Set<Object> keys = mPAK.getAllKeys();

    for (final Object key : keys) {
      final String keyString = key.toString();
      final String keyValueString = mPAK.getPropertyValue(keyString);

      detect(keyValueString, key);

    }

  }

  public static void detect(String keyValueString, Object key) {
    final LanguageIdentifier languageIdentifier = new LanguageIdentifier(keyValueString);

    final String language = languageIdentifier.getLanguage();
    if (!language.equals("de")) {
      System.out.println(language + " " + key + ": " + keyValueString);

    }
  }

}

Например, вот некоторые из результатов:

pt de.segal.baoss.platform.entity.BackgroundTaskType.MASS_INVOICE_DOCUMENT_CREATION: Rechnungsdokumente erzeugen

sk de.segal.baoss.purchase.supplier.creditorNumber: Kreditorennummer

no de.segal.baoss.module.crm.revenueLastYear: Umsatz vergangenes Jahr

no de.segal.baoss.module.op.customerReturn.action.createCreditEntry: Gutschrift erstellen

Все они определенно немецкие

...