Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определения языка текста, Язык текста 
:(
    Опции темы
mobi_vic
Дата 24.4.2010, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



Здравствуйте!

Нужно написать программу которая будет определять язык текста который бет подгружаться из файла!
Уже есть один алгоритм но он мне кажеться не очень подходящим, суть его заключаеться в следующем:
Сoздаеться например 2-строки (на 2 языка) в каждую мы заносим  те символы согласно которым мы можем на 100% определить какой это язык, например для английского мы туда запишем "qwrtyuisdfghjklzxvbnm".
Далее просто будем сверять, например с помощью функии Pos() будем искать наш символ в определленой строке.

Но есть и минус скажем если взять два языка (русский и украинский) возникает проблема, у них очень много одинаковых букв, а те с помошью которых можно различить, очень мало, поэтому программа получаеться в большинстве счлучев не может определить язык.

Вопрос состоит в следующем: можно ли как то определить толи этот текст пренадлжит русскому толи украинскому толи английскому, что б не привязываться к проверке символов, скажем как то получить код символа и определить к каому языку он пренадлежит.
Расмотрю и другие варианты решения даной задачи. Заранее благодарен smile
PM MAIL WWW ICQ Skype   Вверх
Данкинг
Дата 24.4.2010, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(mobi_vic @  24.4.2010,  10:54 Найти цитируемый пост)
Но есть и минус скажем если взять два языка (русский и украинский) возникает проблема, у них очень много одинаковых букв,

Ну, бери слова, наиболее распространённые в украинском, а как ещё-то в данном случае.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
borisbn
Дата 24.4.2010, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



В какой кодировке будет файл ? ANSI, Utf-8, Unicode-16 ? Если не знаешь, то придётся ещё определять кодировку ...

Это сообщение отредактировал(а) borisbn - 24.4.2010, 12:48


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mobi_vic
Дата 24.4.2010, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



Цитата(borisbn @ 24.4.2010,  12:44)
В какой кодировке будет файл ? ANSI, Utf-8, Unicode-16 ? Если не знаешь, то придётся ещё определять кодировку ...

Мне сейчас без разницы с какой кодировкой скажем взять ту с которой попроще будет работать.

Я обратил внимание на то как в ворде, есть такая вещь как определение языка, вот интерестно какой ее принцип работы.
Ибо там можно со старта выставить язык, или он сам будет определять. Есть такой вопрос к символу как то подвязываеться его происхождение, или только код? Скажем в русском и украинском буква "А" имеет одинаковые данные? Или они разные?
PM MAIL WWW ICQ Skype   Вверх
borisbn
Дата 24.4.2010, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Цитата(mobi_vic @  24.4.2010,  12:50 Найти цитируемый пост)
взять ту с которой попроще будет работать

проще ( в данном контексте ) работать с unicode.
см. эту ссылку
а также
http://novikovmaxim.narod.ru/index.htm?htt...elp/webuni1.htm
а ещё лучше
http://www.google.ru/search?client=opera&a...-8&oe=utf-8


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mobi_vic
Дата 24.4.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



Если я все понял правильно, мне нужно получить код символа и посмотреть в какой дипазон он попадает?

Вопрос, как его получить, у меня только получалось когда с клавиатурі вводили и все :(
PM MAIL WWW ICQ Skype   Вверх
borisbn
Дата 24.4.2010, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



В С/С++ "символ" и "значение символа" - одно и то же. Если у тебя в переменной есть "символ", значит значение этой переменной равно "значению символа".
А как читать симолы из файла - см. MSDN


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mobi_vic
Дата 24.4.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



С кодом разобрался получилось следующее:

char a='Ы';
int b=a;
Form1->Edit2->Text=b;

Только вот результат получается отрицательным :( его надо еще как то переводить?

Это сообщение отредактировал(а) mobi_vic - 24.4.2010, 17:21
PM MAIL WWW ICQ Skype   Вверх
KOHCEPBATOP
Дата 26.4.2010, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 21.4.2010

Репутация: нет
Всего: 1



Цитата(mobi_vic @  24.4.2010,  16:48 Найти цитируемый пост)
Только вот результат получается отрицательным

char по умолчанию является знаковым, поэтому все русские буквы будут отрицательными. Или работай так, или используй unsigned char:
unsigned char a='Ы';
Но тогда нужно учитывать, что a != 'Ы', но a == (unsigned char)'Ы'.
Можно в проекте указать, что char по умолчанию - беззнаковый, но ИМХО лучше этого не делать.
PM MAIL   Вверх
xvr
Дата 26.4.2010, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(mobi_vic @  24.4.2010,  09:54 Найти цитируемый пост)
можно ли как то определить толи этот текст пренадлжит русскому толи украинскому толи английскому
Обычно это делают частотным анализом (отдельных букв и биграмм). На основе анализа отдельных символов определить язык практически невозможно. Например в русском тексте могут быть вкрапления английских слов, про различие украинского и русского я вообще молчу  smile 
См. http://www.statsoft.ru/home/portal/exchange/textanalysis.htm


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0781 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.