Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 23, 2013 11:11:06

nightvi
Зарегистрирован: 2013-03-12
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу

Программа должна открывать текстовый файл f в кодировке UTF-8 содержащий латинский текст После этого она должна:
1. записать в новый файл список всех встретившихся в f словоформ оканчивающихся -ibus или -arum
2. заменить в f все словоформы оканчивающихся -ibus или -arum и встречающиеся в f более двух раз на соответственно “__ibus” или “__arum”, никаких других изменений в файле не производить, результат записать в новый файл
3. Если считать что основу любой словоформы можно получить отрезанием -ibus или -arum, составить частотный список основ таких словоформ и записать в csv таблицу (1 словоформа = 1 строка) в первом поле пишется словоформа во втором количество ее употреблений в словоформах содержащих -ibus или -arum, разделитель точка с запятой список может быть неотсортированным Регистр не учитывается

Офлайн

#2 Апрель 23, 2013 11:25:51

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Помогите решить задачу

чет не понял.
Привели пример словоформы

содержание файла и что там необходимо найти

Отредактировано ilnur (Апрель 23, 2013 11:33:10)

Офлайн

#3 Апрель 23, 2013 14:27:34

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

Помогите решить задачу

nightvi
Помогите решить задачу
Судя по задаче Вам нужно, чтобы за Вас решили данную задачу.
Всё это спокойно гуглится.

Вам нужно гуглить про:
1) Открытие файла в нужной кодировке в режиме чтения.
2) Чтение файла построчно.
3) Поиск подстроки в строке
4) Замена подстроки в строке
5) Открытие файла для записи

Это простые операции в питоне и проблем с поиском не должно быть.
Думаю найденные знания будут достаточны для решения вашей задачи.



————————–
Истина где-то рядом

Офлайн

#4 Апрель 24, 2013 13:19:07

nightvi
Зарегистрирован: 2013-03-12
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу

2 -е сделал вот так

# coding: utf-8
import re
f = open('f.txt').read().decode('utf-8')
new = re.sub(ur'ibus\b', u'__ibus ', f)
new = re.sub(ur'arum\b ', u'__arum ', new)
open('f_new.txt','w').write(new.encode('utf-8'))

Правильно?

А вот не понимаю как записать список всех встречающихся словоформ?

Офлайн

#5 Апрель 24, 2013 13:33:10

nightvi
Зарегистрирован: 2013-03-12
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу

# coding: utf-8
import re
pattern = 'ibus'
pattern2 = 'arum'
f = open('f.txt').read().decode('utf-8')
found = re.findall(pattern, f)
found = re.findall(pattern2, found)
open('f_new.txt','w').write(found.encode('utf-8'))
Предполагаю что надо делать так первое задание

Отредактировано nightvi (Апрель 24, 2013 13:33:42)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version