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

xoffer

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

Sergodjan

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

Dimionix

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

orka13

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

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

GreenWay

Client
Регистрация
11.05.2012
Сообщения
437
Благодарностей
142
Баллы
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
Сообщения
69
Благодарностей
21
Баллы
8
не идеальный вариант, но все же, можно напрмиер такой регуляркой [А-Яа-яё].* проверять строку (переменную) на наличие кириллицы и с помощью IF проверять на пустоту..
Благодарю, для моей задачи вполне подходит данное решение)
 
  • Спасибо
Реакции: Sergodjan

vesb

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






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

nrg8601

Client
Регистрация
22.06.2010
Сообщения
74
Благодарностей
69
Баллы
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
Благодарностей
19
Баллы
18

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