Что такое лучшая библиотека обнаружения языка или веб-api? [даже оплачено] [закрыто]


Во-первых, у меня есть много текста. Скажем, у меня есть 10000 символов для каждой попытки. Скрипт основан на php, но я могу использовать все, что захочу. C++, java, никаких проблем.

Google language api не может быть использован: их лимиты использования низки.

Я уже 6 часов пытаюсь придумать что-нибудь замечательное, но пока ничего. Может кто-нибудь указать мне на мой лучший шанс?
7 4

7 ответов:

Существует API обнаружения языков, который предоставляет как бесплатный, так и премиум-сервис.

Он принимает текст через GET или POST и обеспечивает вывод JSON с баллами.

Java-инструменты:

Apache Tika : не все языковые профили, но вы можете добавить их самостоятельно

public String detectLangTika(String text) throws SystemException {
    LanguageIdentifier li = new LanguageIdentifier(text);
    if (li.isReasonablyCertain())
        return li.getLanguage();
    else
        throw new Exception("Tika lang detection not reasonably certain");
}

Language-detection : много языковых профилей, отлично работает для меня.

    DetectorFactory.loadProfile(new File(LangDetector.class.getClassLoader().getResource("profiles").toURI()));

public String detectLangLD(String text) throws SystemException {

    Detector detector;
    String lang;
    try {
        detector = DetectorFactory.create();
        detector.append(text);
        lang = detector.detect();
    } catch (LangDetectException e) {
        throw new SystemException("LangDetector Failure", e);
    }
    return lang;
}

Наиболее точный инструмент был API-интерфейса Google Ланг обнаружения, которая была прекращена и заменена платной Гугл транслейт АПИ.

Немного поздно, но я написал эту библиотеку (и я реализую бесплатный API-сервис без ограничений).

Https://github.com/crodas/LanguageDetector

Если вы готовы дать python ход...взгляните на nltk. И я надеюсь, что вы прошли через это .

Здесь есть еще один API freemium: API обнаружения языков

Вы можете легко проверить конечные точки с этой страницы.

Он принимает как GET, так и POST запросы (для более длительного ввода) и ответ JSON со следующей структурой:

{
  language: "eng",
  isReliable: "true",
  confidence: "0.9979894639898946"
}

Отказ от ответственности: я предоставляю этот API.

Я бы рекомендовал использовать languagelayer.com , они предлагают бесплатный веб-сервис RESTful JSON API, который может обнаружить около 170 языков. Пакетные запросы также предлагаются.

Запрос GET API (POST promoted) выглядит примерно так:

https://apilayer.net/api/detect
    ? access_key = YOUR_ACCESS_KEY
    & query = I like apples and oranges

И вот ответ JSON:

{
  "success": true,
  "results": [
    {
    "language_code": "en",
    "language_name": "English",
    "probability": 83.896703655741,
    "percentage": 100,
    "reliable_result": true
    }
  ]
} 
5 000 ежемесячных запросов бесплатны, если вам нужно больше (как я сделал), то самая дешевая подписка составляет $4,99/mo для 50 000 запросов. (Подробнее здесь)

Вы можете использовать Rosoka. Он обнаруживает 230 различных языков. Вы можете попробовать его через Amazon AWS Market в Rosoka Cloud

Вы платите за использованное время.