![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
supercelt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 25.8.2005 Репутация: нет Всего: 1 |
Подставляются туда только буквы, причём только одна. Так вот, всё до G - нормально, а буква g (G) заменяется на Ф. И такая же херь ещё с некоторыми. В чём может быть ошибка? Это сообщение отредактировал(а) supercelt - 3.6.2008, 11:27 |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
Внимательнее смотрите на свои строки у вас как раз строке с английскими буквами повторяется несколько раз буква G а против неё стоят разные буквы в строке с русскими буквами. А вообще там алгоритм используется обычно другой.
Добавлено через 5 минут и 13 секунд
|
|||
|
||||
supercelt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 25.8.2005 Репутация: нет Всего: 1 |
ааа, ясно, спасибо
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
krundetz, это ты серьёзно?
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
есть покороче вариант:
Добавлено через 1 минуту и 13 секунд надо только перевернуть её в обратную сторону |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
Абсолютно. Вобщем то код там рабочий из какогото уже несуществующего проекта. Но выкладывал я его чтобы принцип понятен был. Как его оптимизировать показал bars80080. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
krundetz, у тебя там не принцип, а голотяпство с костылями.
Принцип показан уже у автора вопроса. Как его оптимизировать, показал Барс. А ты тут вообще не при чем |
|||
|
||||
slaw |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.4.2008 Репутация: 1 Всего: 1 |
Feldmarschall, рабочий скрипт?.. рабочий... а то, что через ... сделан (так он сам признался, что не его творение... и это лишь пример)... к тому же у bars80080-а есть ошибка в функции (4 со 2 строкой местами поменять не мешало бы)
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
почему? это же перевод с кирилицы на латиницу, там везде берётся один символ.
А вот в обратном направлении да, надо строку с многосимвольными сочетаниями поднять на первое место, ну и поменять местами значения в массивах |
|||
|
||||
supercelt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 25.8.2005 Репутация: нет Всего: 1 |
Всё проще. В общем смысл такой, что слово помещается в базу и просто нужно выделить первую букву слова, что бы тоже записать её в базу, для лёгкого отображения по алфавиту. Но иногда в русском варианте чел может написать англ. буквы, не по ошибке, а потому что само слово такое. Вот и надо строго заменить одну букву только на одну. И вот проблема в том, что: г->g и ж->g. Так что функция strtr не подойдёт
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
supercelt, тебе искусственный интеллект, что ли нужен? чтобы скрипт сам определял, что Gena - это Жена, а не Гена? Это тебе не на этот форум тогда
|
|||
|
||||
supercelt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 25.8.2005 Репутация: нет Всего: 1 |
Feldmarschall ,речь идёт не о словах а только об одной букве, с которой начинается слово
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
жесть.
если речь будет идти об одной букве, СМЫСЛ моего вопроса изменится? |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
функция strtr нормально справляется со своими обязаностями
естесственно будут погрешности на переводе туда-обратно, но этого не избежать (кирилица и латиница - это не разные кодировки одного и того же)
если же тебе нужно записать одну букву в БД, то не понятно зачем идёт транслитерация, раз неизвестно когда нужно переводить, а когда не нужно советую просто rawurlencode твоей букве и она везде будет выглядеть одинаково |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
bars80080, ты вопрос читать не пробовал?
перед тем, как на него отвечать |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
именно поэтому люди используют не для "ж" не "g", а "zh". "ш" - это, кстати, две буквы в транслите. я, ю, ч - дщве буквы транслита. а "щ" - вообще три. Ъ и Ь обозначаются одинаково - ' так что если ты собираешьс использовать только одну букву для определния, то счастливого тебе плавания. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
вообще-то, ему и две не поможет.
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
Feldmarschall, согласен. сходу не пришло слово, которое "не определишь"(например, на "зх" не знаю ни одного слова; потому "zh" -> "ж"). но теперь есть куча примеров:
счастье - schast'e - щастъе схоластика - sholastika - шоластика вобщем, после блуждания в неведении поддержу Feldmarschall'a в том, что задача потенциально нерешаема. |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
supercelt а зачем делать так:
индексация вам на что? |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
А если ввести словарь неоднозначных слов? |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
krundetz, прежде, чем выдумывать нестандартное решение, сначала надо посмотреть на задачу.
Я даже спросить сначала хотел - понял ли кто-нибудь, что это за "слово такое", в которого в русском варианте английские буквы. Но потом разобрался в конечной цели, и мне уже стало смешно. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
||||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
Feldmarschall разясните пожалуйста.
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
В каком смысле? Я не разъясняю, а сам хочу разъяснений - какую такую задачу мы решаем, чтобы для неё городить искусственный интеллект с определением.
Здесь на форуме каждый второй вопрос типа "как мне выращивать бананы на потолке?". И каждый первый отвечатель начинает придумывать - как. А чуть копнешь - так выясняется, что этот юный ботаник даже огурцы на грядке на сажал. И что нужны ему не бананы, а люстра, и не выращивать, а повесить. |
|||
|
||||
slaw |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.4.2008 Репутация: 1 Всего: 1 |
для таких случаев, пожалуй, следует усложнить функции транслита таким образом, чтобы они перебрали наибольшую массу возможных вариантов (а сами слова с множественным переводом вывелитаким образом: schast'e(счастье, щастъе) ) - как делает большая масса автоматических переводчиков PS: т.е. слово латиницей разбить на "транскрипции" максимальной длинны (и каждую из транскипций прогнать по различному порядку замен, к счастью их не так много 123, 132, 312, 321, 231, 213, где 1,2,3 - замены 1, 2, 3 символов) Это сообщение отредактировал(а) slaw - 9.6.2008, 17:53 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |