@Cipo

Как проверять что введен русский язык?

Привет! Такой вопрос, как проверять, что в переменную text введен русский текст, а не любой другой
from googletrans import Translator
translator = Translator()

text = input()

res = translator.translate(text, scr='ru', dest='en')
print(res.text)


Если я буду вводить текст на финском или китайском, он так же будет переводиться на английский(но в очень плохом качестве)
А мне нужно проверять как то переменную text на наличие русской речи. Спасибо!
  • Вопрос задан
  • 196 просмотров
Решения вопроса 1
Решил написать свой вариант такой функции, чтобы продемонстрировать её несовершенство. Вариант с флагом и только русскими буквами делать не стал, сделал с процентами. Третья проверка не проходит, тк русских букв слишком мало в соотношении с другими, хотя текст по сути русский. Но это скорее исключение, в целом такая функция имеет место быть, но лучше перестраховаться от разных вариантов.

import string

def is_russian(text):
    alpha = "абвгдеёжзиклмнопрстуфхцчшщъыьэюя"
    new_text = text.translate(str.maketrans('', '', string.punctuation)).lower().replace(' ', '')
    
    rulet = 0
    for letter in new_text:
        if letter in alpha:
            rulet += 1
     
    # Если больше или равно 70%       
    if rulet/len(new_text) >= 0.7:
        return(True)
    else:
        return(False)
    

good_text = "Какой-то текст, со знаками препинания, конечно же, sorry!"
bad_text = "Some english text, isn't russian."
secret = "Люблю Gucci"

print(is_russian(good_text)) #вернёт True
print(is_russian(bad_text)) #вернёт False
print(is_russian(secret)) #вернёт False
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы