Hej,
mam plik w formacie .iob gdzie jest:
Tak adv:pos B-VP O O
było praet:sg:n:imperf I-VP O B-HEAD-VP
w prep:loc:nwok B-NP B-AGP O
przypadku subst:sg:loc:m3 I-NP I-AGP O
krzyża subst:sg:gen:m3 I-NP I-AGP B-HEAD-AGP#B-HEAD-NP
i conj O O O
jest fin:sg:ter:imperf B-VP O B-HEAD-VP
w prep:loc:nwok B-NP B-AGP O
każdej adj:sg:loc:f:pos I-NP I-AGP B-HEAD-AGP#B-HEAD-NP
innej adj:sg:loc:f:pos I-NP I-AGP O
” interp O O O
. interp O O O
Do prep:gen B-NP B-AGP O
naszej adj:sg:gen:f:pos I-NP I-AGP O
redakcji subst:sg:gen:f I-NP I-AGP B-HEAD-AGP#B-HEAD-NP
zadzwonił praet:sg:m1:perf B-VP O B-HEAD-VP
zbulwersowany ppas:sg:nom:m1:perf:aff B-NP B-AGP O
Czytelnik subst:sg:nom:m1 I-NP I-AGP B-HEAD-AGP#B-HEAD-NP
. interp O O O
Każde zdanie jest oddzielone pustą linią.
Ilość zdań w całym pliku zliczam po pustych liniach:
ilosc_zdan = 0
with open('test.iob') as infp:
for line in infp:
if not line.strip():
ilosc_zdan += 1
print('ilość zdań: %d' % ilosc_zdan)
Jak zliczyć ilość wyrazów/tokenów w każdym zdaniu i dodać to do data frejma gdzie kolejne zdanie (numery) będą indeksami ?
Ilość tokenów w całym zbiorze zliczam tak:
data_3 to już lista krotek gdzie każda linia jest krotką.
rows_token = []
for data in data_3:
for token in data:
rows_token.append(token[0])
df_token = pd.DataFrame(rows_token, columns=['token'])
#df_token.head(20)
count_token = {"Token":df_token['token'].count()}
print(count_token)