Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

А лгоритм поиска и замены.


Tadeush ©   (2002-09-26 12:22:00) 

Господа подскажите алгоритм поиска и замены данных в строках
В одном текстовом файле присутствуют строки на английском языке и на русском но набранном аглицкими буквами. Причем хрен знает как. Надо что бы абракадабра переводилась а аглицкие слова нет. Пример:

SP payment end : Timeout(A101:0009)
Card(0000000000000000) taken
12345678.xxx 000004 PBRABPTAO <--(ОБРАБОТАННО)
JNa VAKMA RAINFR STATUS <--(ИМЯ ФАЙЛА РАЗМЕР СТАТУС)


Smithson   (2002-09-26 15:33:00) [1]

Можно сделать проще (но не быстрее).
Можно насильно определять принадлежность слова к определенному языку (я делал для русского). Делается так - берешь достаточно большой текст (как щас помню - 9600 и все-все-все) и подсчитываешь в нем число ПАР символов (АБ, АВ, АГ и тп). Составляешь массивчик ["а".."я","а".."я"] и пишешь в него подсчитаные пары. Одновременно считаешь количество символов в тексте. Получаешь массив частот ПАР символов и делитель к этому массиву. Теперь для любого текста выполняешь ту же процедуру и можешь сравшивать частоты ПАР для эталона и твоего текста (не забывая про делители). Если частоты совпадают - язык тоже.
Повторю еще раз - я делал для русского языка, но ничего не стоит сделать и для английского. Так ты сможешь без словаря выделять англовидные слова.


Tadeush   (2002-09-26 14:39:00) [2]

:)))))
Типа метки сделать. Тоже думал об этом.


TTCustomDelphiMaster   (2002-09-26 13:06:00) [3]

Tadeush © (26.09.02 12:49)
Никак.

Вы раскажите про этот файл. Можете ли вы в строки на русском вставить слово, наприпер RUSSIANSTRING?


valleyman   (2002-09-26 12:58:00) [4]

Коды букв в английских словах и в абракадабрах совпадают или разные?


Tadeush   (2002-09-26 12:49:00) [5]

2 TTCustomDelphiMaster ©

Это понятно. А как что бы под перекодировку не попели английские слова то?


TTCustomDelphiMaster   (2002-09-26 12:47:00) [6]

Tadeush ©

P - О
R - Р
A - А
и т.д.

Определите алгоритм перекодировки или составте таблицу перекодировки.


Tadeush   (2002-09-26 12:46:00) [7]

В том то и дело что это не стандартная кодировка. Это что то связанное с 7 и 8 битными символами, а что это я не понимаю


Separator   (2002-09-26 12:44:00) [8]

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


Tadeush   (2002-09-26 12:40:00) [9]

Это понятно. Ну а вдруг добавилось новое сообщение в кривой кодировке? Оно ведь не переведется
Может что почитать есть?


Separator   (2002-09-26 12:36:00) [10]

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


Tadeush   (2002-09-26 12:34:00) [11]

До этого я додумался. Но словарь то ведь большой получится. А вдруг какие то изменения. То облом.


Separator   (2002-09-26 12:31:00) [12]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо