Analiza epitetów słowa „miłość” w liryce Cwietajewej z użyciem SpaCy
Marina Cwietajewa w swojej liryce często charakteryzuje „miłość” poprzez metafory i rzeczowniki, a nie standardowe przymiotniki. Analiza pełnego zbioru dzieł (707 487 znaków) w Pythonie ujawniła 281 kompleksów epitetów wokół słowa „miłość”. Wykorzystano bibliotekę SpaCy do ekstrakcji zależności w oknie kontekstowym ±4 tokenów.
Ekstrakcja epitetów
Funkcja analyze_epithets przetwarza tekst przez model SpaCy, skupiając się na dzieciach tokenu „miłość” (token.children). Filtrowane są części mowy nieznaczące, wyróżniane są rzeczowniki, przymiotniki pełne i krótkie, imiesłowy. Okno kontekstowe wyklucza sam token docelowy.
def analyze_epithets(text):
doc = nlp(text)
results = {'adj_full': [], 'adj_short': [], 'noun': [],
'participle': [], 'other': []}
complexes = []
for token in doc:
if token.lemma_.lower() == 'miłość':
children = list(token.children)
window_start = max(0, token.i - 4)
window_end = min(len(doc), token.i + 5)
window_tokens = [doc[i] for i in range(window_start, window_end)
if i != token.i]
potential_epithets = []
Rozkład epitetów:
- Rzeczowniki: 179 (63,7%) – dominują metafory typu „miłość – ciało i krew”.
- Przymiotniki pełne: 81 (28,8%).
- Imiesłowy: 10 (3,6%).
- Przymiotniki krótkie: 8 (2,8%).
To odróżnia Cwietajewę od typowej poezji rosyjskiej: zamiast opisowych przymiotników – utożsamianie pojęć poprzez rzeczowniki.
Częste lematy obejmują „trzeci” (7 przypadków), podkreślając motyw trójkąta miłosnego z trzecim elementem (czas, los, poezja).
Analiza pozycyjna
Funkcja analyze_position sprawdza względne położenie „miłość” w zdaniach. Teoria pozycji silnych (początek/koniec) potwierdza się częściowo.
def analyze_position(doc, target_word='miłość'):
position_data = []
for sent in doc.sents:
love_tokens = [t for t in sent if t.lemma_.lower() == target_word]
if love_tokens:
sent_len = len(sent)
for token in love_tokens:
token_idx = token.i - sent.start
rel_pos = token_idx / sent_len if sent_len > 0 else 0
position_data.append({
'sentence_len': sent_len,
'relative_position': rel_pos
})
return pd.DataFrame(position_data)
Wyniki dla 191 zdań:
- Średnia pozycja: 0,473.
- Początek (0,0–0,2): 50 (26,2%).
- Środek (0,2–0,8): 108 (56,5%).
- Koniec (0,8–1,0): 33 (17,3%).
- Pozycje silne: 43,5%.
Słowo integruje się w tkankę wiersza, a nie wyróżnia się deklaratywnie.
Analiza długości zdań
Zdania z „miłością” są dłuższe od ogólnych:
all_sent_lengths = [len(sent) for sent in doc.sents]
avg_len_all = sum(all_sent_lengths) / len(all_sent_lengths)
sentences_with_love = [len(sent) for sent in doc.sents
if any(t.lemma_.lower() == 'miłość' for t in sent)]
avg_len_love = sum(sentences_with_love) / len(sentences_with_love)
- Ogólna średnia długość: 15,3 tokenów.
- Z „miłością”: 21 tokenów.
Miłość wymaga rozwiniętego kontekstu, nie sprowadza się do aforyzmów.
Co jest ważne
- Epitety do „miłość” to głównie rzeczowniki (63,7%), co wzmacnia metaforyczność.
- Motyw „trzeciego” w 7 przypadkach podkreśla złożoność uczuć.
- Pozycja słowa bliżej środka zdań (56,5%), integrując je w narrację.
- Zdania z „miłością” są o 37% dłuższe od średnich, wymagając wyjaśnień.
- SpaCy skutecznie ekstrahuje zależności dla filologicznej analizy NLP.
Takie podejście ma zastosowanie w korpusach dowolnej poezji: dostosowanie okna, lematyzacja i filtry POS dają kwantyfikowalne wglądy w styl.
— Editorial Team
Brak komentarzy.