Реалізація автоматичного визначення мови тексту

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Реалізація автоматичного визначення мови тексту
Простий
~1 день
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Реалізація автоматичного визначення мови тексту

Визначення мови—базове завдання NLP, розв'язуване за мілісекунди. Використовується як перший крок у багатомовних pipeline: перш ніж застосовувати мово-специфічну модель, потрібно знати, якою мовою текст.

Інструменти та вибір

fasttext lid.176.bin—промисловий стандарт. Модель Facebook, розпізнає 176 мов:

import fasttext
model = fasttext.load_model("lid.176.bin")
predictions = model.predict("Привіт, як справи?", k=3)
# (('__label__uk', '__label__ru', '__label__pl'), array([0.99, 0.003, 0.002]))

Latency: < 1ms. Розмір моделі: 1.8MB (bin) або 131MB (ftz). Точність: 97%+ для текстів > 20 слів.

langdetect (Python): порт Google Language Detection, 55 мов. Недолік: недетермінований (різні результати при повторних запусках без фіксації seed).

langid.py: 97 мов, детермінований, гірше ніж fasttext на коротких текстах.

lingua-py: найкраща точність для коротких текстів (1–10 слів), 75 мов.

Складні випадки

  • Змішаний текст (code-switching): «Зустрічаємось в 5pm на zoom call»—технічно російський, але з англійськими вставками. Стратегія: визначити домінуючу мову, не намагатися сегментувати по-мовно для коротких текстів
  • Короткі тексти (< 5 слів): точність падає у всіх моделей. Для критичних випадків використовуйте lingua-py або ансамбль
  • Близькородинні мови: російський/болгарський/сербський, іспанський/португальський—джерело основних помилок

Застосування в багатомовному pipeline

def process_multilingual(text: str):
    lang = detect_language(text)  # "uk", "ru", "en"

    router = {
        "uk": ukrainian_pipeline,
        "ru": russian_pipeline,
        "en": english_pipeline,
    }
    pipeline = router.get(lang, default_pipeline)
    return pipeline.run(text)

Для production: кешування результатів визначення мови за хешем тексту—повторні запити без виклику моделі.