Как определить язык текста?

xoffer

Client
Регистрация
27.01.2011
Сообщения
88
Благодарностей
7
Баллы
8
Как определить язык текста на странице с помощью зенно? Сам сайт на анг., но нужно отбирать тех кто пишет отзывы только на русском языке.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Как определить язык текста на странице с помощью зенно? Сам сайт на анг., но нужно отбирать тех кто пишет отзывы только на русском языке.
не идеальный вариант, но все же, можно напрмиер такой регуляркой [А-Яа-яё].* проверять строку (переменную) на наличие кириллицы и с помощью IF проверять на пустоту..
 
  • Спасибо
Реакции: PussyM и Valerevic

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
Хз, банально, но любой язык определит: брать блок текста с отзывом и забрасывать в гугл переводчик в режиме "авто определение языка", и смотреть как он определит.
Или искать другие сервисы для анализа текстовки. Офлайн решения может есть на каких то библиотеках C# с встроенными словарями часто встречаемых слов в языке.

или вариант регуляркой, но не просто проверкой на буквы, а на часто встречаемые слова (ну чтобы отсеять другие языки, которые на кириллице) . Я использую именно такой метод:
Русский язык:
Код:
\b(и|в|на|с|не|эт\w*|что|для|котор\w*)\b
Английский язык:
Код:
\b(the|and|to|for|at)\b
Ищем сколько таких слов нашло, потом считаем общую длину текста в котором искали, и рассчитываем процентное соотношение, если оно сильно больше 0, то наш клиент :-).
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
428
Благодарностей
132
Баллы
43
Объеденил подход Dimionix и orka13 - то-есть считаем не количество букв, а количество типичных слов. Если русских больше - значит текст на русском.
Определение языка текста (РУ-НЕ РУ):
string input = project.Variables["TEMP_TEXT"].Value;
int countEn = Regex.Matches (input, @"\b(the|and|to|for|at)\b").Count;
int countRu = Regex.Matches (input, @"\b(и|в|на|с|не|эт\w*|что|для|котор\w*)\b").Count;
if (countEn >= countRu) return "EN";
else return "RU";
 

PussyM

Client
Регистрация
08.04.2019
Сообщения
64
Благодарностей
19
Баллы
8
не идеальный вариант, но все же, можно напрмиер такой регуляркой [А-Яа-яё].* проверять строку (переменную) на наличие кириллицы и с помощью IF проверять на пустоту..
Благодарю, для моей задачи вполне подходит данное решение)
 
  • Спасибо
Реакции: Sergodjan

vesb

Client
Регистрация
13.03.2010
Сообщения
139
Благодарностей
18
Баллы
18
Подскажите, нашел сервис, который определяет язык по API
Как правильно вводить данные в POST кубик?






Но пишет, что неправильный API ключ
{"error":{"code":1,"message":"Invalid API key"}}
 
  • Спасибо
Реакции: GreenWay

nrg8601

Client
Регистрация
22.06.2010
Сообщения
74
Благодарностей
68
Баллы
18
Подскажите, нашел сервис, который определяет язык по API
Как правильно вводить данные в POST кубик?






Но пишет, что неправильный API ключ
{"error":{"code":1,"message":"Invalid API key"}}
Нужно UA указать

user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.75
Authorization: Bearer 3c022dca94063**************
 
  • Спасибо
Реакции: vesb

vesb

Client
Регистрация
13.03.2010
Сообщения
139
Благодарностей
18
Баллы
18

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)