Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 6, 2013 16:44:08

agiz
Зарегистрирован: 2013-11-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Исправление опечаток

Здравствуйте, передо мной стоит задача пройтись по тексту и заменить в нем дни недели с опечатками на правильные.
Использовать специализированные библиотеки или апи для этих целей нельзя, поэтому первое что приходит в голову - регулярные выражения, но пока у меня как-то с ними не складывается. Подскажите, пожалуйста, какие еще есть способы решения задачки. Заранее, спасибо!

Офлайн

#2 Ноя. 6, 2013 18:25:16

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Исправление опечаток

всё-таки лучше начать разбираться с регулярками. Книга Фридла “Регулярные выражения” тебе в помощь



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#3 Ноя. 6, 2013 18:48:45

agiz
Зарегистрирован: 2013-11-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Исправление опечаток

Да я весь день о них читаю, а нужного вычитать не могу.
Я мыслю так: должен быть какой-то шаблон (пускай это будет “понедельник”), нужно пройтись по строке и проверить количество совпавших букв в каждом слове с шаблоном… Например, если у нас совпало 10 букв из 11, то в этом слове опечатка и его нужно заменить на “понедельник”

Офлайн

#4 Ноя. 6, 2013 18:55:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Исправление опечаток

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



Офлайн

#5 Ноя. 6, 2013 18:57:42

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Исправление опечаток

sum( True for x in u"понельник"  if (x in u"понедельник"))/1.0*len(u"понельник")

Офлайн

#6 Ноя. 6, 2013 18:59:43

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Исправление опечаток

Master_Sergius
всё-таки лучше начать разбираться с регулярками. Книга Фридла “Регулярные выражения” тебе в помощь

Jamie Zawinski
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

Офлайн

#7 Ноя. 6, 2013 19:01:53

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Исправление опечаток

определение опечатки в студию

Офлайн

#8 Ноя. 6, 2013 19:10:53

agiz
Зарегистрирован: 2013-11-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Исправление опечаток

sum( True for x in u"понельник"  if (x in u"понедельник"))/1.0*len(u"понельник")
а это как оно так?

Отредактировано agiz (Ноя. 6, 2013 19:11:15)

Офлайн

#9 Ноя. 6, 2013 19:14:19

agiz
Зарегистрирован: 2013-11-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Исправление опечаток

bismigalis
определение опечатки в студию
вот Singularity меня понял и сделал очень круто, но не понятно

Офлайн

#10 Ноя. 6, 2013 19:47:52

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Исправление опечаток

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version