Word Embeddings#
Lernziele#
NLP-Methode: Word Embeddings = Überführung von Wörtern in Vektoren
Die Texte müssen vorher aufbereitet werden, z.B. Entfernung der Satzzeichen, Lemmatisierung des Textes.
Die Berechnung der Kosinusähnlichkeit zweier Vektoren ermöglicht Aussagen zur Beziehung der durch die Vektoren dargestellten Wörter. In diesem Beispiel liegen die Ergebniswerte zwischen 0 und 1. Je näher der Wert an der 1 ist, desto häufiger tauchen die Worte im gleichen Kontext auf.
Einführung#
Word Embeddings (“Worteinbettungen”) erlauben es dem Computer, Wörter miteinander in Beziehung zu setzen, z.B. hinsichtlich ihrer Bedeutungen oder ihrer Position im Text. Letzteres werden Sie im Beispiel unten ausnutzen. Da Computer bekanntlich nicht mit Wörtern, sondern nur mit Zahlen umgehen können, müssen alle Wörter eines Korpus zunächst in Zahlen überführt (“eingebettet”) werden - und genau das machen Word-Embedding-Modelle. Allerdings überführen sie Wörter nicht in einfache Zahlen (Aal=1, aber=2, anders=3 …), sondern in komplexe Vektoren (https://zenodo.org/doi/10.5281/zenodo.11582357). Durch die Berechnung der sogenannten Kosinusähnlichkeit (= Wie stehen zwei Vektoren im Raum zueinander?), können Aussagen über die semantische und/oder syntaktische Nähe zweier Wörter getroffen werden.
Ein klassisch-philologisches Anwendungsbeispiel: Für die Beantwortung einer übergeordneten Forschungsfrage1 soll ermittelt werden, welche Wörter besonders häufig in der Nähe des Wortes polis auftreten.
Vorgehen:
Zu untersuchende Texte einlesen
Entfernung aller Satzzeichen im Text
Installation der Python-Bibliothek spaCy (Vorbereitung der Lemmatisierung)
Installation des KI-Modells grc_proiel_trf (Vorbereitung der Lemmatisierung)
Einbindung von spaCy und grc_proiel_trf in den Python-Code (eigentliche Lemmatisierung)
Installation der Python-Bibliothek gensim (Vorbereitung des Word-Embedding-Algorithmus)
Installation des KI-Modells Word2Vec (Vorbereitung des Word-Embedding-Algorithmus)
Einbindung von gensim und Word2Vec in den Python-Code (Ausführung des Word-Embedding-Algorithmus)
Wenn alles gut geht, sollten Sie am Ende des Workflows zwei Listen sehen, eine für die Nomoi und eine für den Menexenos:
Nomoi:
1 Wie unterscheidet sich das Verständnis der griechischen Polis in der Grabrede aus Platons Menexenos von dem in seinen Nomoi?
Aufgaben#
Aufgabe 1: Zu untersuchende Texte einlesen#
Bevor Sie einen Text mithilfe Ihres Computers untersuchen können, müssen Sie ihm das relevante Textkorpus zur Verfügung stellen. Um Zeit und Platz zu sparen, beschränken wir uns an dieser Stelle auf je zwei Sätze aus Platons Menexenos und Platons Nomoi. Prinzipiell kann in diesem Schritt jeder digital verfügbare Text eingespeist werden, unabhängig von seiner Länge.
Führen Sie den ersten Code-Schnipsel (= grau hinterlegt) aus, indem Sie ihn anklicken und dann im Menü auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert. Sobald der Stern eine Zahl wird, sind die Texte eingelesen und Sie können mit dem nächsten Schritt fortfahren.

menexenos_texts: list = [
# # Plat. Mx. 243b
"[...] τόδε λέγω τὸ εἰς τοσοῦτον φιλονικίας ἐλθεῖν πρὸς τὴν πόλιν τοὺς ἄλλους Ἕλληνας, ὥστε [...] συναθροῖσαι ἐπὶ τὴν πόλιν πάντας Ἕλληνάς τε καὶ βαρβάρους.",
# # Plat. Mx. 244b-c
"μετὰ δὲ τοῦτο [...] ἡσυχίαν ἦγεν ἡ πόλις, τοῖς μὲν βαρβάροις συγγιγνώσκουσα, ὅτι παθόντες ὑπʼ αὐτῆς κακῶς ἱκανῶς οὐκ ἐνδεῶς ἠμύναντο [...] ."
]
nomoi_texts: list = [
# Plat. leg. 946d
"καὶ τὰ μὲν ἰδίᾳ ἕκαστος, τὰ δὲ καὶ κοινῇ μετʼ ἀλλήλων κρίναντες τοὺς ἄρξαντας τῇ πόλει, ἀποφηνάντων [...] ὅτι χρὴ παθεῖν ἢ ἀποτίνειν [...] .",
# Plat. leg. 714a
"εἰ δʼ ἄνθρωπος εἷς [...] ἄρξει δὴ πόλεως ἤ τινος ἰδιώτου καταπατήσας ὁ τοιοῦτος τοὺς νόμους, ὃ νυνδὴ ἐλέγομεν, οὐκ ἔστι σωτηρίας μηχανή."
]
Aufgabe 2: Entfernung aller Satzzeichen im Text#
Satzzeichen, die dem antiken Text später hinzugefügt wurden, stehen unserem Interesse am antiken Wortlaut im Weg. Entfernen Sie in Vorbereitung auf die maschinelle Analyse alle Satzzeichen im Text, indem Sie den nächsten Code-Schnipsel anklicken und dann im Menü erneut auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert. Sobald der Stern eine Zahl wird, können Sie mit dem nächsten Schritt fortfahren. Dieser Schritt ist notwendig, um zu verhindern, dass der Word-Embedding-Algorithmus Ihnen später berichtet, dass ein Satzzeichen (z.B. ein Komma) besonders häufig mit dem Wort polis auftritt.
import string
# In jedem der obrigen 4 Sätze, werden die Sonderzeichen entfernt, dann werden Sie zu einer Liste zusammengefügt
all_texts: list = [y.translate(str.maketrans('', '', string.punctuation)) for x in [menexenos_texts, nomoi_texts] for y in x]
all_texts
[' τόδε λέγω τὸ εἰς τοσοῦτον φιλονικίας ἐλθεῖν πρὸς τὴν πόλιν τοὺς ἄλλους Ἕλληνας ὥστε συναθροῖσαι ἐπὶ τὴν πόλιν πάντας Ἕλληνάς τε καὶ βαρβάρους',
'μετὰ δὲ τοῦτο ἡσυχίαν ἦγεν ἡ πόλις τοῖς μὲν βαρβάροις συγγιγνώσκουσα ὅτι παθόντες ὑπʼ αὐτῆς κακῶς ἱκανῶς οὐκ ἐνδεῶς ἠμύναντο ',
'καὶ τὰ μὲν ἰδίᾳ ἕκαστος τὰ δὲ καὶ κοινῇ μετʼ ἀλλήλων κρίναντες τοὺς ἄρξαντας τῇ πόλει ἀποφηνάντων ὅτι χρὴ παθεῖν ἢ ἀποτίνειν ',
'εἰ δʼ ἄνθρωπος εἷς ἄρξει δὴ πόλεως ἤ τινος ἰδιώτου καταπατήσας ὁ τοιοῦτος τοὺς νόμους ὃ νυνδὴ ἐλέγομεν οὐκ ἔστι σωτηρίας μηχανή']
Aufgabe 3: Installation der Python-Bibliothek spaCy (Vorbereitung der Lemmatisierung)#
Führen Sie alle flektierten Formen im Text auf ihre Grundform zurück, indem sie den Text von einem Algorithmus lemmatisieren lassen. Dieser Schritt ist notwendig, damit der Word-Embedding-Algorithmus Ihnen später die Kontexte aller (auch der flektierten) polis-Formen auswirft.
Installieren Sie die Python-Bibliothek spaCy mit dem Paketmanager pip, indem Sie den nächsten Code-Schnipsel anklicken und dann im Menü erneut auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert. Sobald der Stern eine Zahl wird, können Sie mit dem nächsten Schritt fortfahren.
{
"tags": [
"hide-output"
]
}
{'tags': ['hide-output']}
!pip install spacy==3.8.3
Collecting spacy==3.8.3
Downloading spacy-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (27 kB)
Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (3.0.12)
Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (1.0.5)
Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (1.0.15)
Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (2.0.13)
Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (3.0.12)
Requirement already satisfied: thinc<8.4.0,>=8.3.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (8.3.10)
Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (1.1.3)
Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (2.5.2)
Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (2.0.10)
Requirement already satisfied: weasel<0.5.0,>=0.1.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (0.4.3)
Requirement already satisfied: typer<1.0.0,>=0.3.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (0.21.1)
Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (4.67.1)
Requirement already satisfied: numpy>=1.19.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (1.26.4)
Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (2.32.5)
Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (2.12.5)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (3.1.6)
Requirement already satisfied: setuptools in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (79.0.1)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (26.0)
Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/site-packages (from spacy==3.8.3) (3.5.1)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy==3.8.3) (0.7.0)
Requirement already satisfied: pydantic-core==2.41.5 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy==3.8.3) (2.41.5)
Requirement already satisfied: typing-extensions>=4.14.1 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy==3.8.3) (4.15.0)
Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy==3.8.3) (0.4.2)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy==3.8.3) (3.4.4)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy==3.8.3) (3.11)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy==3.8.3) (2.6.3)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy==3.8.3) (2026.1.4)
Requirement already satisfied: blis<1.4.0,>=1.3.0 in /usr/local/lib/python3.10/site-packages (from thinc<8.4.0,>=8.3.0->spacy==3.8.3) (1.3.3)
Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/site-packages (from thinc<8.4.0,>=8.3.0->spacy==3.8.3) (0.1.5)
Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/site-packages (from typer<1.0.0,>=0.3.0->spacy==3.8.3) (8.3.1)
Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/site-packages (from typer<1.0.0,>=0.3.0->spacy==3.8.3) (1.5.4)
Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/site-packages (from typer<1.0.0,>=0.3.0->spacy==3.8.3) (14.2.0)
Requirement already satisfied: typer-slim<1.0.0,>=0.3.0 in /usr/local/lib/python3.10/site-packages (from weasel<0.5.0,>=0.1.0->spacy==3.8.3) (0.21.1)
Requirement already satisfied: cloudpathlib<1.0.0,>=0.7.0 in /usr/local/lib/python3.10/site-packages (from weasel<0.5.0,>=0.1.0->spacy==3.8.3) (0.23.0)
Requirement already satisfied: smart-open<8.0.0,>=5.2.1 in /usr/local/lib/python3.10/site-packages (from weasel<0.5.0,>=0.1.0->spacy==3.8.3) (7.5.0)
Requirement already satisfied: wrapt in /usr/local/lib/python3.10/site-packages (from smart-open<8.0.0,>=5.2.1->weasel<0.5.0,>=0.1.0->spacy==3.8.3) (2.0.1)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/site-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy==3.8.3) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/site-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy==3.8.3) (2.19.2)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy==3.8.3) (0.1.2)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/site-packages (from jinja2->spacy==3.8.3) (3.0.3)
Downloading spacy-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.1 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/29.1 MB ? eta -:--:--
━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━ 11.8/29.1 MB 66.3 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━ 27.3/29.1 MB 76.0 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 29.1/29.1 MB 56.6 MB/s 0:00:00
?25h
Installing collected packages: spacy
Attempting uninstall: spacy
Found existing installation: spacy 3.8.4
Uninstalling spacy-3.8.4:
Successfully uninstalled spacy-3.8.4
Successfully installed spacy-3.8.3
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
Aufgabe 4: Installation des KI-Modells grc_proiel_trf (Vorbereitung der Lemmatisierung)#
Laden Sie grc_proiel_trf, ein KI-Modell für Lemmatisierung, herunter, indem Sie den nächsten Code-Schnipsel anklicken und dann im Menü erneut auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert. Sobald der Stern eine Zahl wird, können Sie mit dem nächsten Schritt fortfahren.
{
"tags": [
"hide-output"
]
}
{'tags': ['hide-output']}
!pip install https://huggingface.co/DaidalosTeam/greCy/resolve/main/grc_proiel_trf-3.7.5-py3-none-any.whl # grc = altgriechisch, proiel = Pragmatic Resources in Old Indo-European Languages (https://dev.syntacticus.org/proiel.html), trf = Modellarchitektur: transformer
Collecting grc-proiel-trf==3.7.5
Downloading https://huggingface.co/DaidalosTeam/greCy/resolve/main/grc_proiel_trf-3.7.5-py3-none-any.whl (497.5 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/497.5 MB ? eta -:--:--
━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 82.6/497.5 MB 419.5 MB/s eta 0:00:01
━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━ 170.7/497.5 MB 426.8 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━ 258.2/497.5 MB 427.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━ 348.7/497.5 MB 438.3 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━ 449.3/497.5 MB 460.3 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 497.3/497.5 MB 484.2 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 497.3/497.5 MB 484.2 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 497.3/497.5 MB 484.2 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 497.3/497.5 MB 484.2 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 497.3/497.5 MB 484.2 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 497.5/497.5 MB 162.8 MB/s 0:00:02
?25h
Collecting spacy-transformers<1.2.0,>=1.1.9 (from grc-proiel-trf==3.7.5)
Downloading spacy_transformers-1.1.9-py2.py3-none-any.whl.metadata (6.2 kB)
Requirement already satisfied: spacy<3.9.0,>=3.8.2 in /usr/local/lib/python3.10/site-packages (from grc-proiel-trf==3.7.5) (3.8.3)
Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.0.12)
Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (1.0.5)
Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (1.0.15)
Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.0.13)
Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.0.12)
Requirement already satisfied: thinc<8.4.0,>=8.3.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (8.3.10)
Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (1.1.3)
Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.5.2)
Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.0.10)
Requirement already satisfied: weasel<0.5.0,>=0.1.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.4.3)
Requirement already satisfied: typer<1.0.0,>=0.3.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.21.1)
Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (4.67.1)
Requirement already satisfied: numpy>=1.19.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (1.26.4)
Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.32.5)
Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.12.5)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.1.6)
Requirement already satisfied: setuptools in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (79.0.1)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (26.0)
Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/site-packages (from spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.5.1)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.7.0)
Requirement already satisfied: pydantic-core==2.41.5 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.41.5)
Requirement already satisfied: typing-extensions>=4.14.1 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (4.15.0)
Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.4.2)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.4.4)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.11)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.6.3)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests<3.0.0,>=2.13.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2026.1.4)
Collecting transformers<4.26.0,>=3.4.0 (from spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading transformers-4.25.1-py3-none-any.whl.metadata (93 kB)
Collecting torch>=1.6.0 (from spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading torch-2.10.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (31 kB)
Collecting spacy-alignments<1.0.0,>=0.7.2 (from spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading spacy_alignments-0.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.6 kB)
Requirement already satisfied: blis<1.4.0,>=1.3.0 in /usr/local/lib/python3.10/site-packages (from thinc<8.4.0,>=8.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (1.3.3)
Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/site-packages (from thinc<8.4.0,>=8.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.1.5)
Collecting filelock (from transformers<4.26.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading filelock-3.20.3-py3-none-any.whl.metadata (2.1 kB)
Collecting huggingface-hub<1.0,>=0.10.0 (from transformers<4.26.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading huggingface_hub-0.36.0-py3-none-any.whl.metadata (14 kB)
Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/site-packages (from transformers<4.26.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5) (6.0.3)
Collecting regex!=2019.12.17 (from transformers<4.26.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB)
Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers<4.26.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)
Collecting fsspec>=2023.5.0 (from huggingface-hub<1.0,>=0.10.0->transformers<4.26.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading fsspec-2026.1.0-py3-none-any.whl.metadata (10 kB)
Collecting hf-xet<2.0.0,>=1.1.3 (from huggingface-hub<1.0,>=0.10.0->transformers<4.26.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading hf_xet-1.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB)
Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/site-packages (from typer<1.0.0,>=0.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (8.3.1)
Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/site-packages (from typer<1.0.0,>=0.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (1.5.4)
Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/site-packages (from typer<1.0.0,>=0.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (14.2.0)
Requirement already satisfied: typer-slim<1.0.0,>=0.3.0 in /usr/local/lib/python3.10/site-packages (from weasel<0.5.0,>=0.1.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.21.1)
Requirement already satisfied: cloudpathlib<1.0.0,>=0.7.0 in /usr/local/lib/python3.10/site-packages (from weasel<0.5.0,>=0.1.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.23.0)
Requirement already satisfied: smart-open<8.0.0,>=5.2.1 in /usr/local/lib/python3.10/site-packages (from weasel<0.5.0,>=0.1.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (7.5.0)
Requirement already satisfied: wrapt in /usr/local/lib/python3.10/site-packages (from smart-open<8.0.0,>=5.2.1->weasel<0.5.0,>=0.1.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.0.1)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/site-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/site-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (2.19.2)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (0.1.2)
Collecting sympy>=1.13.3 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB)
Collecting networkx>=2.5.1 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)
Collecting cuda-bindings==12.9.4 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading cuda_bindings-12.9.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (2.6 kB)
Collecting nvidia-cuda-nvrtc-cu12==12.8.93 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-cuda-runtime-cu12==12.8.90 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-cuda-cupti-cu12==12.8.90 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-cudnn-cu12==9.10.2.21 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl.metadata (1.8 kB)
Collecting nvidia-cublas-cu12==12.8.4.1 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-cufft-cu12==11.3.3.83 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-curand-cu12==10.3.9.90 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-cusolver-cu12==11.7.3.90 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl.metadata (1.8 kB)
Collecting nvidia-cusparse-cu12==12.5.8.93 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.8 kB)
Collecting nvidia-cusparselt-cu12==0.7.1 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_x86_64.whl.metadata (7.0 kB)
Collecting nvidia-nccl-cu12==2.27.5 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_nccl_cu12-2.27.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.0 kB)
Collecting nvidia-nvshmem-cu12==3.4.5 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_nvshmem_cu12-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.1 kB)
Collecting nvidia-nvtx-cu12==12.8.90 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.8 kB)
Collecting nvidia-nvjitlink-cu12==12.8.93 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-cufile-cu12==1.13.1.3 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB)
Collecting triton==3.6.0 (from torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading triton-3.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (1.7 kB)
Collecting cuda-pathfinder~=1.1 (from cuda-bindings==12.9.4->torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading cuda_pathfinder-1.3.3-py3-none-any.whl.metadata (1.9 kB)
Collecting mpmath<1.4,>=1.1.0 (from sympy>=1.13.3->torch>=1.6.0->spacy-transformers<1.2.0,>=1.1.9->grc-proiel-trf==3.7.5)
Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/site-packages (from jinja2->spacy<3.9.0,>=3.8.2->grc-proiel-trf==3.7.5) (3.0.3)
Downloading spacy_transformers-1.1.9-py2.py3-none-any.whl (53 kB)
Downloading spacy_alignments-0.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314 kB)
Downloading transformers-4.25.1-py3-none-any.whl (5.8 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/5.8 MB ? eta -:--:--
━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━ 2.6/5.8 MB 13.9 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.8/5.8 MB 17.5 MB/s 0:00:00
?25hDownloading huggingface_hub-0.36.0-py3-none-any.whl (566 kB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/566.1 kB ? eta -:--:--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 566.1/566.1 kB 14.4 MB/s 0:00:00
?25hDownloading hf_xet-1.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/3.3 MB ? eta -:--:--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 31.1 MB/s 0:00:00
?25hDownloading tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/7.8 MB ? eta -:--:--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.8/7.8 MB 52.2 MB/s 0:00:00
?25h
Downloading fsspec-2026.1.0-py3-none-any.whl (201 kB)
Downloading regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (791 kB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/791.8 kB ? eta -:--:--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 791.8/791.8 kB 44.0 MB/s 0:00:00
?25h
Downloading torch-2.10.0-cp310-cp310-manylinux_2_28_x86_64.whl (915.6 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/915.6 MB ? eta -:--:--
━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 28.6/915.6 MB 142.7 MB/s eta 0:00:07
━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.5/915.6 MB 190.4 MB/s eta 0:00:05
━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 123.7/915.6 MB 204.4 MB/s eta 0:00:04
━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 169.9/915.6 MB 211.0 MB/s eta 0:00:04
━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 210.0/915.6 MB 208.1 MB/s eta 0:00:04
━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 245.4/915.6 MB 210.9 MB/s eta 0:00:04
━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━ 283.4/915.6 MB 208.8 MB/s eta 0:00:04
━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━ 326.4/915.6 MB 205.4 MB/s eta 0:00:03
━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━ 363.9/915.6 MB 201.3 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━ 394.5/915.6 MB 189.1 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━ 434.6/915.6 MB 185.1 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━ 475.5/915.6 MB 185.6 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━ 516.4/915.6 MB 192.7 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━ 557.3/915.6 MB 191.0 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━ 598.0/915.6 MB 190.5 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━ 640.2/915.6 MB 200.7 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━ 682.4/915.6 MB 202.7 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━ 725.4/915.6 MB 205.0 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━ 756.5/915.6 MB 197.2 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━ 787.7/915.6 MB 190.5 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━ 804.0/915.6 MB 174.6 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━ 833.6/915.6 MB 169.0 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━ 855.9/915.6 MB 159.1 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━ 878.4/915.6 MB 150.5 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺ 900.5/915.6 MB 142.2 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 915.4/915.6 MB 137.7 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 915.6/915.6 MB 56.5 MB/s 0:00:07
?25h
Downloading cuda_bindings-12.9.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (12.1 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/12.1 MB ? eta -:--:--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.1/12.1 MB 66.0 MB/s 0:00:00
?25h
Downloading nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl (594.3 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/594.3 MB ? eta -:--:--
━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.6/594.3 MB 117.4 MB/s eta 0:00:05
━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.2/594.3 MB 117.4 MB/s eta 0:00:05
━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.0/594.3 MB 117.0 MB/s eta 0:00:05
━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 95.2/594.3 MB 117.9 MB/s eta 0:00:05
━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120.1/594.3 MB 118.7 MB/s eta 0:00:04
━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 145.2/594.3 MB 119.5 MB/s eta 0:00:04
━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━ 170.4/594.3 MB 120.1 MB/s eta 0:00:04
━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━ 195.6/594.3 MB 120.6 MB/s eta 0:00:04
━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━ 212.9/594.3 MB 120.8 MB/s eta 0:00:04
━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━ 235.1/594.3 MB 115.9 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━ 261.4/594.3 MB 117.1 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━ 287.6/594.3 MB 118.2 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━ 314.0/594.3 MB 119.4 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━ 333.4/594.3 MB 117.4 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━ 360.4/594.3 MB 118.6 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━ 388.0/594.3 MB 119.7 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━ 415.5/594.3 MB 120.8 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━ 443.0/594.3 MB 121.9 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━ 470.8/594.3 MB 123.0 MB/s eta 0:00:02
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━ 498.3/594.3 MB 129.4 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━ 526.9/594.3 MB 130.8 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━ 555.7/594.3 MB 132.0 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺ 584.6/594.3 MB 133.3 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 594.3/594.3 MB 136.8 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 594.3/594.3 MB 136.8 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 594.3/594.3 MB 136.8 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 594.3/594.3 MB 136.8 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 594.3/594.3 MB 136.8 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 594.3/594.3 MB 88.3 MB/s 0:00:05
?25hDownloading nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (10.2 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/10.2 MB ? eta -:--:--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 97.3 MB/s 0:00:00
?25hDownloading nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl (88.0 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/88.0 MB ? eta -:--:--
━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━ 29.6/88.0 MB 148.1 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━ 59.5/88.0 MB 147.9 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 87.8/88.0 MB 148.1 MB/s eta 0:00:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.0/88.0 MB 127.9 MB/s 0:00:00
?25hDownloading nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (954 kB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/954.8 kB ? eta -:--:--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 954.8/954.8 kB 62.0 MB/s 0:00:00
?25hDownloading nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl (706.8 MB)
?25l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/706.8 MB ? eta -:--:--
━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 28.8/706.8 MB 145.9 MB/s eta 0:00:05
━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.2/706.8 MB 147.0 MB/s eta 0:00:05
━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.7/706.8 MB 149.5 MB/s eta 0:00:05
━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.9/706.8 MB 150.8 MB/s eta 0:00:04
━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 153.1/706.8 MB 151.3 MB/s eta 0:00:04
━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 184.5/706.8 MB 151.8 MB/s eta 0:00:04
━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.9/706.8 MB 146.6 MB/s eta 0:00:04
━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━ 230.4/706.8 MB 142.2 MB/s eta 0:00:04
━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━ 254.0/706.8 MB 139.3 MB/s eta 0:00:04
━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━ 277.9/706.8 MB 136.3 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━ 302.5/706.8 MB 134.5 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━ 327.7/706.8 MB 131.6 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━ 346.3/706.8 MB 126.5 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━ 356.0/706.8 MB 118.6 MB/s eta 0:00:03
━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━ 364.9/706.8 MB 111.1 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━ 373.6/706.8 MB 104.7 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━ 383.0/706.8 MB 99.0 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━ 390.3/706.8 MB 93.4 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━ 397.1/706.8 MB 88.5 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━ 404.8/706.8 MB 84.0 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━ 412.1/706.8 MB 80.2 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━ 419.7/706.8 MB 76.6 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━ 427.6/706.8 MB 73.3 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━ 436.2/706.8 MB 70.3 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━ 444.9/706.8 MB 67.7 MB/s eta 0:00:04
^C
━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━ 453.2/706.8 MB 65.5 MB/s eta 0:00:04
━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━ 453.2/706.8 MB 65.5 MB/s eta 0:00:04
?25hERROR: Operation cancelled by user
Aufgabe 5: Einbindung von spaCy und grc_proiel_trf in den Python-Code (eigentliche Lemmatisierung)#
Binden Sie spaCy und grc_proiel_trf in den Python-Code ein, um die eigentliche Lemmatisierung zu starten, indem Sie den nächsten Code-Schnipsel anklicken und dann im Menü erneut auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert. Sobald der Stern eine Zahl wird, können Sie mit dem nächsten Schritt fortfahren. Der Algorithmus produziert nun einen Text, in dem jede ehemals flektierte Form in ihrer Grundform erscheint.
import spacy
import warnings
# Warnungen werden ausgeblendet
warnings.filterwarnings('ignore')
# Der Lemmatizer wird initialisiert
lemmatizer = spacy.load("grc_proiel_trf", exclude=["morphologizer", "tagger", "parser", "transformer"])
# Jedes Wort in jedem der obrigen Sätze wird auf sein Lemma zurückgeführt und dann ausgegeben
lemmatized_texts: list = [" ".join(token.lemma_ for token in lemmatizer(text)) for text in all_texts]
for lemmatized_text in lemmatized_texts:
print(lemmatized_text)
ὅδε λέγω ὁ εἰς τοσοῦτος φιλονικία ἔρχομαι πρός ὁ πόλις ὁ ἄλλος Ἕλλην ὥστε συναθροίζω ἐπί ὁ πόλις πᾶς Ἕλλην τε καί βάρβαρος
μετά δέ οὗτος ἡσυχία ἄγω ὁ πόλις ὁ μέν βάρβαρος συγγιγνώσκω ὅτι πάσχω ὑπό αὐτός κακῶς ἱκανός οὐ ἐνδεής ἀμύνω
καί ὁ μέν ἴδιος ἕκαστος ὁ δέ καί κοινός μετά ἀλλήλων κρίνω ὁ ἄρχω ὁ πόλις ἀποφηνάντων ὅτι χρή πάσχω ἤ ἀποτίνω
εἰ δέ ἄνθρωπος εἷς ἄρχω δή πόλις ἤ τίς ἰδιώτης καταπατέω ὁ τοιοῦτος ὁ νόμος ὁ νῦν δή λέγω οὐ εἰμί σωτηρία μηχανή
Aufgabe 6: Installation der Python-Bibliothek gensim (Vorbereitung des Word-Embedding-Algorithmus)#
Installieren Sie die Python-Bibliothek gensim mit dem Paketmanager pip, indem Sie den nächsten Code-Schnipsel anklicken und dann im Menü erneut auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert. Sobald der Stern eine Zahl wird, können Sie mit dem nächsten Schritt fortfahren.
!pip install gensim==4.3.2 scipy==1.10.1
Collecting gensim==4.3.2
Using cached gensim-4.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.3 kB)
Requirement already satisfied: numpy>=1.18.5 in /home/konstantin/miniconda3/envs/daidalos-workshops/lib/python3.11/site-packages (from gensim==4.3.2) (2.2.1)
Collecting scipy>=1.7.0 (from gensim==4.3.2)
Downloading scipy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
Requirement already satisfied: smart-open>=1.8.1 in /home/konstantin/miniconda3/envs/daidalos-workshops/lib/python3.11/site-packages (from gensim==4.3.2) (7.1.0)
Requirement already satisfied: wrapt in /home/konstantin/miniconda3/envs/daidalos-workshops/lib/python3.11/site-packages (from smart-open>=1.8.1->gensim==4.3.2) (1.17.0)
Using cached gensim-4.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.7 MB)
Downloading scipy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 MB 48.5 MB/s eta 0:00:00a 0:00:01
Installing collected packages: scipy, gensim
Successfully installed gensim-4.3.2 scipy-1.15.0
Aufgabe 7: Installation des KI-Modells Word2Vec (Vorbereitung des Word-Embedding-Algorithmus)#
Installieren Sie Word2Vec, ein KI-Modell für Word Embeddings, indem Sie den nächsten Code-Schnipsel anklicken und dann im Menü erneut auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert. Sobald der Stern eine Zahl wird, können Sie mit dem nächsten Schritt fortfahren.
from gensim.models import Word2Vec
# Nach Texten getrennt werden die Vektoren für jedes Wort berechnet.
# window: gibt an, wieviele der Umstehenden Worte zur Berechnung des Vektors berücksichtigt werden
# min_count: gibt an, wie oft ein Wort im Text auftauchen muss, um berücksichtigt zu werden
# vector_size (optional): gibt die Anzahl der Dimensionen des Vektorraumes an
model_menexenos: Word2Vec = Word2Vec(sentences=[x.split() for x in lemmatized_texts[:2]], window=3, min_count=1, vector_size=200)
model_nomoi: Word2Vec = Word2Vec(sentences=[x.split() for x in lemmatized_texts[2:]], window=7, min_count=1)
Aufgabe 8: Einbindung von gensim und Word2Vec in den Python-Code (Ausführung des Word-Embedding-Algorithmus)#
Binden Sie die Python-Bibliothek gensim und Word2Vec in den Python-Code ein, um die maschinelle Analyse zu starten, indem Sie den nächsten Code-Schnipsel anklicken und dann im Menü erneut auf das Play-Zeichen klicken. Ein Stern in den eckigen Klammern links [ ] weist Sie darauf hin, dass die Ausführung des Codes noch andauert.
Der Algorithmus produziert nun auf Basis seiner Berechnungen für beide Texte je eine Liste mit den fünf Worten, die am häufigsten im Kontext von polis vorkommen. Dahinter steht in Klammern jeweils die relative Häufigkeit der Kookkurenz des Wortes mit dem Wort polis.
[(word, round(similarity, 3)) for word, similarity in model_menexenos.wv.most_similar("πόλις", topn=5)]
# Für jeden Text wurde ein eigenes KI-Modell trainiert.
# Wenn Sie mehr oder weniger Ergebnisse sehen möchten, ändern Sie die Zahl hinter "topn=" und lassen Sie den Code-Schnipsel erneut laufen.
[('βάρβαρος', 0.151),
('ἡσυχία', 0.099),
('μέν', 0.086),
('ἀμύνω', 0.077),
('Ἕλλην', 0.065)]
[(word, round(similarity, 3)) for word, similarity in model_nomoi.wv.most_similar("πόλις", topn=5)]
# Für jeden Text wurde ein eigenes KI-Modell trainiert.
# Wenn Sie mehr oder weniger Ergebnisse sehen möchten, ändern Sie die Zahl hinter "topn=" und lassen Sie den Code-Schnipsel erneut laufen.
[('ἴδιος', 0.167),
('τίς', 0.163),
('ἄρχω', 0.139),
('δέ', 0.132),
('ἀποφηνάντων', 0.098)]
Reflexion#
Ergebnis (mögliche Interpretation)#
Im Menexenos geht es um kriegerische (ἀμύνω) Auseinandersetzungen zwischen Griechen (Ἕλλην) und Barbaren (βάρβαρος). Die Polis (insbesondere Athen, aber auch andere griechische Poleis) wird dort also in Abgrenzung zu anderen Völkern gedacht.
In den Nomoi hingegen geht es um Herrschaft (ἄρχω) und den Gegensatz von Polis und Individuum (ἴδιος). Hier spielen also Machtfragen eine Rolle und die Abgrenzung von Individuum und Kollektiv bzw. privat und öffentlich.
Methode#
Abhängig von der Forschungsfrage eignen sich manche Word-Embedding-Modelle besser als andere.
Bias: Verzerrungen im Datensatz (z.B. ein sehr einseitiges Frauenbild) werden ungefiltert reproduziert. Darum ist eine kritische Reflexion der Ergebnisse unabdingbar.
Der eingesetzte Algorithmus berechnet nur einen Gesamtvektor für jedes Lemma. Einzelne Verwendungsweisen stark polysemer Wörter sind dadurch nicht differenzierbar.
Ausblick#
Als weiteren Schritt könnten wir relativ bedeutungsarme kleine Wörter wie μέν oder δέ aus der Analyse ausschließen. Sie kommen in beiden Textkorpora vor und tragen dadurch nicht zu ihrer Unterscheidung bei.
Außerdem könnten wir die erwähnten Beziehungen zwischen polis und anderen Begriffen grafisch (z.B. als Netzwerk/Wortfeld) darstellen, um schneller einen ersten Eindruck von wichtigen Unterschieden zu bekommen.
Vertiefung/Übungsaufgaben (optional)#
1. Ein anderes Korpus einlesen:
Fügen Sie den in NB 2 (Preprocessing) bearbeiteten Korpustext in dieses NB (Word Embeddings) ein, indem Sie den Text aus der zuvor generierten Textdatei kopieren und bei Aufgabe 1 einfügen. Löschen Sie dafür alle Inhalte aus der Liste menexenos_texts und fügen Sie ihren Text in Anführungsstrichen ein: menexenos_texts: list = [“Text”].
Kommentieren Sie die Liste nomoi_texts aus,indem Sie vor jede Zeile eine Raute setzen.
Wiederholen Sie dann alle weiteren Schritte und vergleichen Sie das neue Ergebnis mit dem alten (s. Einführung). Welche Veränderungen können Sie feststellen?
2. Anpassung des Kontextfensters: Das Kontextfenster ist die Menge der benachbarten Wörter auf der linken und rechten Seite, die als wichtig für die Bedeutung des Zielworts angesehen werden. Vergrößern/Verkleinern Sie das Kontextfenster in Schritt 7, indem Sie die Zahl hinter window anpassen. Welche Vor- und Nachteile hat ein größeres bzw. kleineres Kontextfenster? Verändert das neue Kontextfenster die in der Reflexion beschriebene mögliche Interpretation?
3. Wie berechnet man die Kosinusähnlichkeit? Die syntaktische Nähe zweier Wörter wird, wie eingangs beschrieben, über die Kosinusähnlichkeit ihrer Vektoren berechnet. Doch wie berechnet man die Kosinusähnlichkeit? Schauen Sie sich hierzu das folgende Video an und reflektieren Sie, in welchem Umfang mathematische Kenntnisse für Literaturwissenschaftler/innen notwendig sind, die Word Embeddings (oder NLP-Methoden allgemein) verwenden: https://www.youtube.com/watch?v=phe0PhBPTz4.
Zum Nachlesen#
Mikolov, Tomas, Kai Chen, Greg Corrado, and Jeffrey Dean. “Efficient Estimation of Word Representations in Vector Space.” ArXiv Preprint ArXiv:1301.3781, 2013, 1–12. https://arxiv.org/pdf/1301.3781.pdf.
Straka, Milan, and Jana Straková. “UDPipe at EvaLatin 2020: Contextualized Embeddings and Treebank Embeddings.” In Proceedings of LT4HALA 2020-1st Workshop on Language Technologies for Historical and Ancient Languages, 124–29, 2020. https://arxiv.org/pdf/2006.03687.pdf.
Rodda, M, Philomen Probert, and Barbara McGillivray. “Vector Space Models of Ancient Greek Word Meaning, and a Case Study on Homer.” Traitement Automatique Des Langues 60, no. 3 (2019). https://aclanthology.org/2019.tal-3.4.pdf.
Sprugnoli, Rachele, Marco Passarotti, and Giovanni Moretti. “Vir Is to Moderatus as Mulier Is to Intemperans. Lemma Embeddings for Latin,” 2019. https://www.researchgate.net/profile/Rachele-Sprugnoli/publication/336798734_Vir_is_to_Moderatus_as_Mulier_is_to_Intemperans_Lemma_Embeddings_for_Latin/links/5db2a47e92851c577ec259b4/Vir-is-to-Moderatus-as-Mulier-is-to-Intemperans-Lemma-Embeddings-for-Latin.pdf.