Веб-версияОткрыть в Telegram

ПостЗанимаюсь в рамках петпроекта обработкой текста, появилась потребность проверять на каком языке написан текст.

16 августа 2023
К
Коробка с питоном
Ссылка
нажмите — покажем
Занимаюсь в рамках петпроекта обработкой текста, появилась потребность проверять на каком языке написан текст. Сначала я попытался использовать langdetect, но он часто выдавал неправильные результаты. Как правило, плохие результаты выдавались по нескольким причинам: 1. Нет возможности ограничить языки, которые я хотел бы детектить. Мне надо определять всего четыре языка - украинский, русский, английский и немецкий. 2. Часто исследуемый мною текст слишком мал, из-за чего анализ ломался. По итогу я пошел искать другую библиотеку и нашел lingua, которая успешно справляется с проблемами langdetect. Важное отличие этой библиотеки от всех остальных в том, что она использует не только статистическую модель для определения языка, а ещё и механизмы, основанные на правилах - сначала определяется алфавит текста, ищутся символы которые уникальны для языка и после этого выбираются языки, на которых возможно написан текст. Но есть возможность улучшить этот процесс. Можно самому ограничить языки, на которых возможно будет написан текст, а это как раз то, что мне и нужно: from lingua import Language, LanguageDetectorBuilder languages = [Language.ENGLISH, Language.RUSSIAN, Language.GERMAN, Language.UKRAINIAN] detector = LanguageDetectorBuilder.from_languages(*languages).build() print(detector.detect_language_of("Hello from box with python!")) # Language.ENGLISH print(detector.detect_language_of("Привет от коробки с питоном!")) # Language.RUSSIAN Из-за ограничения языков вероятность совершить ошибку на небольших предложениях сокращается многократно. В добавок ко всему, ребята используют не только триграммы, которые очень часто используют для таких задач, а n-граммы от 1 до 5, из-за чего вероятность предсказания повышается. Причина такого решения проста - чем короче входной текст, тем меньше n-грамм доступно, а если мы будем проверять триграммами короткие заголовки - будут случаться ошибки. Ну и база - ограничение количества языков ускоряет работу и уменьшает потребление памяти, а при исследовании огромных текстов - это несомненный плюс. #nlp #библиотека
7 · 677 ·

Рядом в ленте

ККоробка с питономGIL скорее всего уберут из Python! Руководящий совет объяснил статус PEP 703 (сделать GIL опциональным). Если кратко, то понятно следующее: — Они намерены приняККоробка с питономПоявился PEP 723, который предлагает "встраивать" pyproject.toml в однофайловые скрипты. Предлагается добавить переменную __pyproject__, которая будет содержать
это сообщение
ККоробка с питономНемного девопсовский пост, так как на предыдущем месте работы я много админил линукса. Автоматизация - один из столпов работы любого админа, так как подготавливККоробка с питономТианголо (создатель FastAPI) предложил новый PEP 727, который позволяет стандартизировать механизм документирования параметров. Причина проста - существует мног
ККоробка с питономКоробка с питоном@boxwithpython · канал · Технологии
488подписчиков154постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем