Wie ich mithilfe der Verarbeitung natürlicher Sprache nach einem Schönheitsstandard gesucht habe (und ihn nicht gefunden habe)

Es ist unmöglich, objektiv zu messen, welche Mädchen hübscher sind: Blondinen oder Brünette, dunkelhäutig oder weißhäutig, groß oder klein. Sie können jedoch berechnen, welche Erscheinungsmerkmale häufiger erwähnt werden, wenn es um Schönheit geht.

Ich hatte eine Woche Zeit für Experimente, unsere Datenanalyse-Engines, 16.000 russische Romane und Romane des 19. Jahrhunderts und 15.000 moderne Langwerke. Und natürlich gab es keine getaggten Daten.

Die Hauptidee war es, Fragmente von Beschreibungen schöner Frauen aus diesem Berg von Texten zu extrahieren und dann Frequenzlinien des Aussehens aus diesen Fragmenten zu extrahieren.

Hier ist eine Visualisierung dessen, was passiert ist. Genauer gesagt, eine der gängigen Optionen.


Die Farbe der Augen, Haare, Kleidung, Wachstum, Bildung - all dies kann vom Textkörper unterschieden werden.

Natürlich ist nicht alles so einfach und eindeutig wie in den Abbildungen, aber Sie haben bereits eine grobe Idee erhalten. Lassen Sie uns nun über die Details und die Reihenfolge der Aktionen sprechen.

Text Corpus


Es ist mir gelungen, Ressourcen mit einer offenen Lizenz für die Verbreitung von Texten zu finden. Vielen Dank an die Leute, die das alles gesammelt und gepostet haben.

Sowohl das 19. Jahrhundert als auch die Gegenwart enthielten nur russischsprachige Originaltexte im Korps, dh es gibt keine übersetzte Literatur.

Ich habe die gesamte Analyse für eine Reihe von SAS Visual Text Analytics- und Python-Bibliotheken (pymorphy2, gensim, tensorflow) durchgeführt.

Schritt 1. Sprachregeln


Daher war es zunächst notwendig, Fragmente mit Beschreibungen des weiblichen Aussehens hervorzuheben. Da es keine markierten Daten gab, begann ich mit einfachen Regeln im Sinne von „Mädchen UND (Augen ODER Haare ODER Gesicht)“. Die Regeln wurden in SAS Visual Text Analytics geschrieben, sodass sie morphologische Formen, Tippfehler (für den modernen Fall relevant), einfache Syntax, den Abstand zwischen Token und gefilterten unerwünschten Kontexten berücksichtigten.

Vereinfachte Regel
PREDICATE_RULE: (arg1, arg2, arg3): (UNLESS, "bad_contexts", (SENT_5, "_arg1 {beauty}", "_arg2 {woman}", "_arg3 {features}"))

Mit anderen Worten, innerhalb der fünf Sätze sollte eine Frau erwähnt werden, die Tatsache ihrer Attraktivität erwähnt werden, jedes Aussehen beschrieben werden und es sollten keine unerwünschten Zusammenhänge vorhanden sein.

Das Schreiben einer solchen Regel ist nicht schwierig, das Problem liegt im Detail. Wie kann man zum Beispiel alle möglichen Hinweise auf Frauen sammeln? In der Tat kann es im Text "Geliebte" und "Mädchen" und "Margarita" und "Cousine" sein. Einfache Synonyme sind hier unverzichtbar, kein einziges Wörterbuch gibt "Schreibkraft" oder "Student" als Synonym für "Frau" aus. Sie können "vom Kopf" auflisten, obwohl genügend Vorstellungskraft vorhanden ist, aber die Liste ist unvollständig (und es ist langweilig).

Um die Regeln zu erweitern und nach kontextuellen Synonymen zu suchen, verbinden wir Vektordarstellungen.

Schritt 2. Das word2vec-Modell


Word2vec ist ein Wortvektorisierungswerkzeug, das auf der Idee basiert, "Sag mir, wer neben dir steht und ich werde sagen, wer du bist". Zum Beispiel würden die meisten im Satz „Ich ___ sie auf den ersten Blick“ den Pass durch ein Wort wie „geliebt“ ersetzen. Die Idee ist einfach - ähnliche Wörter finden sich in ähnlichen Kontexten. Für die russische Sprache gibt es vorgefertigte Modelle, die hier veröffentlicht werden . Die Erfahrung mit Projekten zeigt, dass im Fachgebiet trainierte Modelle besser funktionieren als Modelle "für die ganze Sprache", daher habe ich zwei Modelle an meinem Körper trainiert.

Zuerst zerlegte sie das Korps mit Python in Wörter, brachte die Wörter in die ursprüngliche Form (dank pymorphy2), extrahierte frequenzverbose Ausdrücke wie eine Cousine, Löwenmähne, Wespentaille (dank Phrasen von Gensim). An den verarbeiteten Daten habe ich das word2vec-Modell gelernt (Skipgram-Algorithmus, Fenster - 3, Dimension - 300).

Unter Verwendung des trainierten Modells iterativ zusammengestellte Listen ähnlicher Wörter. Die Funktion most_similar in gensim verwendet ein Wort als Eingabe und gibt eine Liste von Wörtern / Ausdrücken zurück, deren Vektoren im Kosinusmaß nahe am Vektor des ursprünglichen Wortes liegen.

Vektoren nahe dem Vektor des Wortes "Schönheit" auf dem Gebäude des 21. Jahrhunderts. Der zweite Wert ist das Kosinusmaß.
("Schönheit", 0,6690341234207153)
('hübsch', 0,6438576579093933)
("charmant", 0,6156517267227173)
('kluges Mädchen', 0.6063219308853149)
("gutaussehend", 0,6044491529464722)
("girly", 0,5829722285270691)
("blauäugig", 0,5814758539199829)
("junge Dame", 0,5773882865905762)
("Prinzessin", 0,5754760503768921)
("hell", 0,5743755102157593)
("blond", 0,5731547474861145)
("blauäugig", 0,5724368095397949)

Das Problem hierbei war, dass unter ähnlichen Vektoren Antonyme auftreten können, da sie sich in denselben Kontexten befinden können. Zum Beispiel kann es an der Stelle des Passes im Beispiel über „auf den ersten Blick verliebt“ durchaus das Antonyme „auf den ersten Blick gehasst“ sein. In unserem Fall ist der Vektor „junger Mann“ beispielsweise dem Wort „Mädchen“ am nächsten und erst dann, wenn es um „Frauen“, „Damen“ usw. geht. Das Problem mit Antonyme wurde einfach durch manuelle Auswahl gelöst. Aber es gab nur wenige Antonyme, so dass es ein wenig Mühe kostete.

Übrigens ist es lustig, dass ähnliche Worte wie bei einer Frau des 19. Jahrhunderts alle möglichen Familienkonzepte (Tochter, Schwester, Cousine) oder Berufe (Dienstmädchen, Dienstmädchen, Köchin) oder der soziale Status des Ehemanns (Admiral, General, Baronin) sind. Im 21. Jahrhundert erweitert sich das Spektrum: Es gibt einen Studenten, Klassenkameraden, Sportler, Laborassistenten, Komsomol-Mitglied, Übersetzer und Leiter.

Frauen des 19. Jahrhunderts:
Katerina
Katya
Claudia
Clotilde
Prinzessin
Prinzessin
Kokette
Aufsichtsperson
Krankenschwester
Schönheit
Bäuerin
Spitzenmacher
Cousin
Puppe
Kumushka
Kaufmannsfrau
kochen

Frauen des 21. Jahrhunderts:
Karen
Karina
Kassierer
Katerina
Katrina
Katka
Katya
Mieter
Kira
Clara
Client
Kokette
Komsomol-Mitglied
die Königin
Schönheit
Schönheit
Christina
Ksenia
Ksenia
Cousin

Verwendete das gleiche Prinzip, um die verbleibenden Regeln zu erweitern.

Zum Beispiel, um Haarkontexte zu extrahieren:
Mähne
locken
Mopp
Sense
Zopf
Locken
lockiges Haar
locken
Frisur
Schloss
Schloss
Strahl
Haarschnitt
Pony
Knall
Haare
Schwanz
Pferdeschwanz

Schritt 3. Unerwünschte Kontexte


Ich habe also lange detaillierte Regeln, die eine Beschreibung des Aussehens recht erfolgreich erfassen, eine Frau erwähnen und die Tatsache ihrer Attraktivität erwähnen. Ich schreibe offensichtliche Einschränkungen in sprachlichen Regeln vor: Man muss Negative, Modalität und bedingte Stimmung berücksichtigen, damit Kontexte wie „nicht durch Schönheit unterschieden“, „weit entfernt von Schönheit“ nicht erfasst werden.

Das brauchen wir nicht.
In ihrer Jugend war sie überhaupt keine Schönheit, sondern ein wohlgenährtes Mädchen mit einer breiten Entennase. Sie war sehr besorgt um ihre Nase und nach den Geschichten ihrer Schwestern schlief sie oft mit einer hölzernen Wäscheklammer auf der Nase, um sie auf diese Weise zu verengen.
P. Rebenina, "Unglückliche Zinka".

Überraschenderweise gelingt es den Autoren außerdem, allgemein abstoßende Charaktere zu beschreiben, die eine nette Geste haben. Diese Kontexte sind schwer zu handhaben, sie können Lärm machen, deshalb entferne ich sie einfach aus der Betrachtung.

Jetzt habe ich Textfragmente mit Markup in meinen Händen, die auf Regeln und Vektordarstellungen basieren. Obwohl die Klärung der Regeln einige Tage gedauert hat, weisen die gefundenen Kontexte einen Fehler auf, der für diese Aufgabe recht gut geeignet ist. Zum Beispiel wurden einige Beschreibungen des Aussehens nicht extrahiert, da nicht klar ist, welche Frau oder welcher Mann in Frage kommt: "Vali hatte graublaue Augen, die sich unter den dünnen Brillengläsern versteckten." Im Prinzip konnte diese Unklarheit auf der Grundlage eines größeren Textfragments gelöst werden, aber ich hatte nur eine Woche Zeit, so dass ich alle Ungenauigkeiten in den Startlöchern warten ließ.
Hier ist das Markup.

Beispiele für das Parsen, der Kontext ist fett hervorgehoben , die Fakten zum Erscheinungsbild sind unterstrichen. Außer einigen. Und dieser Link ist auch kein Link und klickt nicht!
Immerhin stammte Alina aus einem anderen Kreis und im Allgemeinen alles andere. Sie war sehr schön : eine Brünette mit graublauen Augen , einer schrägen Stirn , einer ordentlichen Nase , einem gemeißelten Gesicht und dünnen Handgelenken, an denen die stilvollsten Kugeln baumelten, die ich je in meinem Leben gesehen habe. Sie war ein Schnitt über meinem Kopf, ihre Figur war ... na ja, kein Scherz, cool .
K. Belozyorova, "Ein Freund, der nicht ist".

Sie war keine von denen, die für ein Wort in ihre Tasche kletterten, ihre natürliche Schönheit und Attraktivität faszinierten und winkten. Die hohe Stirn war zur Hälfte von einem glatten Knall bedeckt, glattes schwarzes Haar , das im Licht der Bistrolampen schimmerte, erreichte die Schultern und floss sanft über den anmutig gebräunten Hals . Ihre grünen Augen zeigten ein klares Interesse an meiner Person: Alena rieb den dünnen Nasenrücken mit dem Zeigefinger ihrer rechten Hand, was auf ihre Verlegenheit hinwies. Bei meinem nächsten Witz lachte das Mädchen , und dies ließ ihre sinnlichen Lippen sich zu einem Lächeln ausdehnen, und Grübchen erschienen in der Nähe ihrer Lippenwinkel. Ich ertappte mich dabei zu denken, dass ich wirklich möchte, dass dieser Abend niemals endet.
D. Ilyin, "Kreuzung des Schicksals".

In ihr war etwas Geheimnisvolles und Attraktives, sie war schlank und hübsch . Langes, leicht lockiges blondes Haar, regelmäßige Gesichtszüge und sehr lebhafte blaue Augen machten Lena charmant . Boris mochte ihr schelmisches Lächeln, ihren sinnlichen Mund und ihre Fröhlichkeit. Sowohl ihr Aussehen als auch ihre Art zu halten schienen ihr unwiderstehlich attraktiv .
A. Bolschakow, "Ausgestoßener".

Sie war eine sehr schöne Frau mit scharfen Gesichtszügen, einer scharfen Nase und einem gemeißelten Kinn . Ihr Name war nicht weniger beeindruckend - Adelaide. Sie ging mir in einem langen hellgrünen Kleid entgegen, und an Brust und Händen hingen zahlreiche ausgefallene ethnische Ornamente. „Du kannst nur Ida“ , sagte sie freundlich und die Ecken ihres dünnen Mundes gingen asymmetrisch auseinander. "Was für eine Schönheit mit einer Wendung!", Dachte ich.
O. Pavlenko, "Die Geschichte der Hexen."

Eine junge Frau stand mit einer Kerze in der Hand an der Tür des Nebenzimmers ... Ich sah und war erstaunt - sie war so schön in einer weißen Kapuze, mit lockeren Haaren über den Schultern. Was für eine schöne Eigenschaft , obwohl sie durch Wut verzerrt wurden! Blaue Augen mit erweiterten Pupillen leuchteten mit einer bedrohlichen Brillanz ... Die Figur ist schlank , flexibel.
K. Stanyukovich, "Das ursprüngliche Paar".

Und Jacob hatte etwas, das seine junge Frau liebte : eine Frau - eine fleißige Frau , nicht leer, keine Träne, eine gesunde und schöne Frau . Ihr Gesicht ist länglich , mit einer geraden, dünnen Nase und geschwollenen, scharlachroten Lippen . Ihre blauen Augen blicken offen auf das weiße Licht. Und über ihnen hielten wie ein Pinsel dunkle Augenbrauen . Ein dickes Erröten spielt auf ihren gebräunten Wangen .
P. Zasodimsky: "Vom Pflug zur Waffe."

Schritt 4. Das Ergebnis zusammensetzen


Es bleibt Frankenstein zu sammeln und die meisten Frequenzmerkmale zu kombinieren. Einige Zeichen hatten eine sehr enge Häufigkeit, so dass wir uns ein wenig vorstellen und ein paar Zeichen sammeln konnten.

Die ersten beiden Arten von Merkmalen:


Dame des 19. Jahrhunderts. VS Dame des 21. Jahrhunderts.

Es war: eine große und dünne Blondine mit sehr heller, fast blasser Haut und riesigen blauen Augen. Höchstwahrscheinlich mit "auf den Schultern verstreut" Locken. Vielleicht ist sie verwöhnt, eigensinnig und ein bisschen launisch. Ungefähr das entsprechende moderne Analogon: eine lockige, braunäugige Dame mit langen, dunklen Haaren und prallen Lippen, die auf einem gebräunten Gesicht hervorstechen. Vielleicht ist sie flirtend und entspannt, aber gleichzeitig romantisch und verletzlich.

Der zweite Typ. Sie kennen dieses Bild bereits:



Es war: eine junge zarte Brünette mit blauen Augen, die warm lächelt. Viel Aufmerksamkeit wird auf dünne Finger gelegt. Sie ist nachdenklich, sanftmütig, nachgiebig, sogar schüchtern. Oft schaut sie hinter einer Locke hervor. Die moderne Schönheit wird anders sein. Blaue Augen sind immer noch ein Zeichen von Schönheit, zusammen mit schwarzen, aber grüne Augen erscheinen, die vorher überhaupt nicht da waren. Es stellt sich heraus, dass ein junges, grünäugiges, rotes (dies ist auch ein völlig neues Zeichen!) Mädchen mit gutem Make-up auch schlank und groß ist und ein leichtes, leichtes Kleid trägt. Sie ist optimistisch, ruhig und klug.

Visualisierungen zeigen eher Unterschiede: Künstler sehen meine Parameterarrays auf diese Weise. Charakterphantasien entstanden auch aus den Frequenz-Epitheta, die in den extrahierten Fragmenten gefunden wurden.

Warum ist das alles?


Übe einfach zwischen den Projekten. Ebenso kann ich in Ihrer Korrespondenz nach Anzeichen von Geschäftsgeheimnissen suchen, auch wenn Sie diese sehr verschleiert beschreiben. Auf die gleiche Weise kann ich die Nachrichten überwachen, um nach bestimmten Ereignissen oder Ereignissen in Bezug auf Ihr Unternehmen zu suchen. Auf die gleiche Weise kann ich Markennamen überwachen und sie nach Abteilung, Tonalität und Kontaktgrund in Kategorien einteilen. Ich kann Anwendungen für technischen Support von sehr unzureichenden Benutzern analysieren. Ich kann analysieren, in welcher Stadt welche Dialoge geführt werden. Ich kann die Plattform für alle Ihre Zahlungen innerhalb der Bank einrichten und für alle Gegenparteien der Bank eine Liste der hergestellten Produkte, eine Liste der gelieferten Produkte erstellen und verstehen, was für den Manager interessant ist. Fürchte mich im Allgemeinen!

Na ja, oder ich kann einfach alles in den Texten sehen. Analysieren Sie Beschreibungen von Häusern und Innenräumen. Finden Sie Nebenwirkungen auf das Medikament. Finden Sie heraus, dass die Waffeln irgendwie falsch knirschen und der Zucker in den Keksen nicht süß genug ist. Finden Sie heraus, dass Blondinen immer noch fast doppelt so beliebt sind wie Brünette und blaue Augen nicht aus der Mode kommen. Usw…

Aber die praktische Anwendung: Wie wir nach Anzeichen von medizinischen Fehlern gesucht haben .

Source: https://habr.com/ru/post/de472490/


All Articles