Dies ist die Aufzeichnung der 91. "Aufbereitung von Analogiedaten" von Language Processing 100 Knock 2015. Diesmal ist es technisch super einfach, da es sich um ein Vorbehandlungssystem für späteres Klopfen handelt.
Verknüpfung | Bemerkungen |
---|---|
091.Aufbereitung von Analogiedaten.ipynb | Antwortprogramm GitHub Link |
100 Klicks Amateur-Sprachverarbeitung:91 | Ich bin Ihnen immer zu Dank verpflichtet, wenn ich auf 100 Sprachverarbeitung klopfe |
Art | Ausführung | Inhalt |
---|---|---|
OS | Ubuntu18.04.01 LTS | Es läuft virtuell |
pyenv | 1.2.15 | Ich benutze pyenv, weil ich manchmal mehrere Python-Umgebungen benutze |
Python | 3.6.9 | python3 auf pyenv.6.Ich benutze 9 3.7 oder 3.Es gibt keinen tiefen Grund, keine 8er-Serie zu verwenden Pakete werden mit venv verwaltet |
In Kapitel 10 werden wir weiter daran arbeiten, Wortvektoren aus dem vorherigen Kapitel zu lernen.
Laden Sie [Word Analogy Evaluation Data] herunter (https://github.com/svn2github/word2vec/blob/master/questions-words.txt). Die Zeile, die in diesen Daten mit ":" beginnt, repräsentiert den Abschnittsnamen. Zum Beispiel markiert die Zeile ": Kapital-gemeinsame Länder" den Beginn des Abschnitts "Kapital-gemeinsame Länder". Extrahieren Sie aus den heruntergeladenen Bewertungsdaten die im Abschnitt "Familie" enthaltenen Bewertungsfälle und speichern Sie sie in einer Datei.
"Analoge Daten" scheinen Daten für die Analogie zu sein. Die ersten 10 Zeilen sind unten dargestellt. Ein Doppelpunkt am Anfang, wie ": gemeinsame Länder", bedeutet einen Block, gefolgt von "Athen, Griechenland, Bagdad, Irak" und der Beziehung zwischen der Hauptstadt und dem Land in zwei Sätzen auf einer Linie. Auf diese Weise sind es Daten, in denen Blöcke und Dutzende von Zeilen danach in zwei Sätzen und einer Zeile angeordnet sind. Dieses Mal werden wir den Inhalt des Familienblocks aus diesen Daten extrahieren.
questions-words.txt
: capital-common-countries
Athens Greece Baghdad Iraq
Athens Greece Bangkok Thailand
Athens Greece Beijing China
Athens Greece Berlin Germany
Athens Greece Bern Switzerland
Athens Greece Cairo Egypt
Athens Greece Canberra Australia
Athens Greece Hanoi Vietnam
Athens Greece Havana Cuba
with open('./questions-words.txt') as file_in, \
open('./091.analogy_family.txt', 'w') as file_out:
target = False #Zieldaten
for line in file_in:
if target:
#Bei Zieldaten wird ausgegeben, bis es zu einem anderen Abschnitt wird
if line.startswith(': '):
break
print(line.strip(), file=file_out)
elif line.startswith(': family'):
#Zieldatenerkennung
target = True
Um ehrlich zu sein, habe ich technisch nichts Besonderes getan, daher habe ich keinen Grund, dies zu erklären. Wenn Sie es erzwingen, sind mehr als 90% ein Kopieren und Einfügen von 100 Amateur-Sprachverarbeitungsklopfen: 91. Die ersten 10 Zeilen des resultierenden Textes sind:
091.analogy_family.txt
boy girl brother sister
boy girl brothers sisters
boy girl dad mom
boy girl father mother
boy girl grandfather grandmother
boy girl grandpa grandma
boy girl grandson granddaughter
boy girl groom bride
boy girl he she
boy girl his her
Danach weggelassen