Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как определить язык? (нужен алгоритм) 
:(
    Опции темы
Li
Дата 9.9.2002, 17:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет всем!
Есть база данных. Одно из полей - название книг. В другое поле нужно проставить язык, на котором это книга, и определить это нужно по названию книги.
Идеальное решение  если определяется четыре варианта: русский, украинский (отличается от русского четырьмя буквами), английский и неизвестный язык. Если в такой постановке задача сложная можно упростить до трех языков: рус, укр, англ.
Нужно помнить, что есть книги с названиями, содержащими буквы разных алфавитов,
например: "Perl. Библиотека программиста".
Заранее спасибо за помощь в виде словесного алгоритма решения или программки на Си!
  Вверх
Vit
Дата 9.9.2002, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Со 100% точностью нельзя, но приблизительно можно считать что

1) Если нет букв кириллицы то книга английская
2) Если встречаются буквы специфичные для украинского языка ("Э оборотное", "и" с точкой и с двумя точками) то это украинксий
3) Во всех остальных случаев с какой-то долей вероятности - русский


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
suborg
Дата 10.9.2002, 04:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В каждом языке можно определить возможные и довольно немыслимые буквосочетания. Таким образом можно разрешить некоторые неопределённости. Например в русском ЧА, ЩА, значит если написано ЧЯ, значит что-то здесь не так :)
PM MAIL WWW ICQ   Вверх
Ampersand
Дата 10.9.2002, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Наиболее работоспособный, но и наиболее трудоемкий - сопоставление со словарем. Трудоемкость тут - в составлении словаря.
PM MAIL WWW   Вверх
Li
  Дата 10.9.2002, 18:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо за идеи!

Если упростить первый алгоритм до следующего

ЕСЛИ встречается хотя бы одна русская гласная, то
   (ЕСЛИ встречается укр_и_с_двумя_точками ИЛИ укр_э_оборотное, то это украинский язык,
    ИНАЧЕ это русский язык),
ИНАЧЕ это английский язык.

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

ТЕОРЕТИЧЕСКИ, такой алгоритм дает 100% определение языка?
Если нет, можно на конкретном примере?
  Вверх
Alex101
Дата 12.9.2002, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

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



Цитата(Guest @ 10.9.2002, 11:35)
ТЕОРЕТИЧЕСКИ, такой алгоритм дает 100% определение языка?
Если нет, можно на конкретном примере?

ТЕОРЕТИЧЕСКИ - нет.
Представь себе учебник русского языка для англичан...
Алгоритм ищет русские слова, и он их найдет


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
Vit
Дата 12.9.2002, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Любые алгоритмы дают только некое приближение, и могут определить язык только приблизительно - например если это монография по "сравнительной грамматике славянских языков и англосаксонских языков" то там могут быть слова на десятках языков, и даже проще - русский перевод английской книги, выпущенный в Киеве будет иметь русские, английские и украинские(название города и адрес редакции) слова...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Li
Дата 12.9.2002, 17:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да, согласна.
Спасибо!
  Вверх
Step
Дата 5.3.2003, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



товарищи лучше всего использовать анализ частоты встречи конкретных символов. так не только язык можно определить. Так определяется кто в действительности написал ту или иную книгу.

Например русский язык. чаще всего встерчаються буквы е и н , в других языках по другому. При достаточной длине документа можно достигнуть практически сто процентного результата. Это не я придумал, а лингвисты. Нас к стати этому учили и на лобараторных мы могли идентифицировать учащихся по их докумнетам, а тут целый язык применяется, да есил еще и принять во внимае то что предложил VIT то вообще можно сделать 100 процентник. Кстати в книгах по лингвистике приводятся даже эти частоты, названия книги не помню, но мню что это огромные книги их около 10 томов, то про это столько написано что просто жуть


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DENNN
Дата 5.3.2003, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

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



Кажется автор написал, что в базе дданных только название книги а не содержание.
Частотный анализ в названии не даст 100% гарантии. Мне кажется что это даже около 50%, так как название не есть типичная, среднестатистическая фраза из языка, а скорее некое обобщение. Если же окажется, что часть односложных русских названий вбита английскими буквами (пример OH) то вообще кошмар для теоретического алгоритма.
PM ICQ   Вверх
Paradox
Дата 5.3.2003, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



"10 УРОКОВ WEB-МАСТЕРУ"
у меня на полке такая книга стоит...
И на каком она языке по-моему предложенные алгоритмы не определят... Только словарный поиск, но никак не побуквенное сравнение


--------------------
---
PM MAIL WWW   Вверх
Step
Дата 5.3.2003, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Цитата
"10 УРОКОВ WEB-МАСТЕРУ"
у меня на полке такая книга стоит...
И на каком она языке по-моему предложенные алгоритмы не определят... Только словарный поиск, но никак не побуквенное сравнение

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




--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Paradox
Дата 5.3.2003, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата
вот тут ты ошибаеся, если ты еще языки програмирования заложеш и многое другое и выставишь приоритеты назначения языков, например человеческие с максимальным приоритетом то все будет ок.

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


--------------------
---
PM MAIL WWW   Вверх
Step
Дата 5.3.2003, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



а русский и украинский процентов 50 узнавать будет буква і не так часто встречается.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Molnienosetz
Дата 6.3.2003, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 6.3.2003
Где: Россия, Королёв, комитетский лес

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



Извините, что везде суюсь, а в какой кодировке название? Если в Unicode, то вроде полегче, а если 8 бит, как отличить, например, русскую ы или украйнскую э наоборот или что там подвернётся. Извините.
--------------------
"Вы только появились на форуме, но уже стали весьма популярны. Правда не как профессионал, а большой зазнайка."Это про меня! :) (В том смысле, что писалось не про меня.)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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