Така като гледам, това което всъщност представлява реда е поредица от елементи разделени с интервал. Значи мога просто да си split() на реда по интервалите и да взема четвъртия елемент, който всъщност е думата. Значи ако имам реда в променливата row, мога да взема четвъртия елемент с row.split(' ')[3]. Сега трябва да натикам по някакъв начин редовете в row. Най лесно може да стане така:
[row for row in file('aSpecificCorpus.cps', 'r')]
Това ще ми върне списък с всички редове от файла. А ако го преобразувам така:
[row.split(' ')[3] for row in file('aSpecificCorpus.cps', 'r')]
ще ми върне списък с всички ДУМИ от файла. И сега остава само да го отпечатам с метода string.join() (който взима като параметър списък с низове и връща низ, който е съставен от конкатениране на всички низове в списъка, разделени с приложения разделител)
print "\n".join([row.split(' ')[3] for row in file('aSpecificCorpus.cps', 'r')])
В случая разделителя е "\n", т.е. нов ред - значи ще ми се отпечата всяка дума на нов ред.
А ако толкова държиш на RegExp ове:
import re
wordPattern = re.compile(r'^(\S+)\s.\s(\S+)\s(\S+)\s(\S+)$')
try:
...for row in file('aSpecificCorpus.cps', 'r'):
......match = wordPattern.search(row.strip())
......if match is not None:
.........print match.groups()[2]
except IOError, err:
...print "Booom!!!....
))"
Не знам за тебе, обаче на мен това горното ми се вижда достa по-чисто и ясно...
Абсолютно изпълним псевдокод
Направо кеф ми прави да си го чета
Между другото не разбирам много много от RegExps... това горното си го направих с kregexpeditor и си нямам идея колко е вярно.
Nikolay бъзикам се бе
и мен си ме кефи Красно Село. А от advanced математика много много не отбирам... Всъщност сигурно отбирам поне малко, обаче само интуитивно и не знам имената на отделните неща... така че си нямам на идея за какво точно ми говориш...
Айде със здраве... извинявай, че се забавих толкова ама съм бая зает тези дни.