2017-12-01 4 views
0

Ich fand this question, die Beweise, dass Satz Reihenfolge wahrscheinlich wichtig ist (aber Effekt kann auch ein Ergebnis der verschiedenen zufälligen Initialisierung).Geht die Umsetzung von word2vec von gensim bei der Untersuchung des Kontextes über die Ebene des Satzes hinaus?

Ich möchte Reddit comment dumps für mein Projekt verarbeiten, aber die von json extrahierten Strings wäre unsortiert und gehören sehr unterschiedliche subreddits und Themen zu, so will ich nicht zu versauen Kontexten:

{"gilded":0,"author_flair_text":"Male","author_flair_css_class":"male","retrieved_on":1425124228,"ups":3,"subreddit_id":"t5_2s30g","edited":false,"controversiality":0,"parent_id":"t1_cnapn0k","subreddit":"AskMen","body":"I can't agree with passing the blame, but I'm glad to hear it's at least helping you with the anxiety. I went the other direction and started taking responsibility for everything. I had to realize that people make mistakes including myself and it's gonna be alright. I don't have to be shackled to my mistakes and I don't have to be afraid of making them. ","created_utc":"1420070668","downs":0,"score":3,"author":"TheDukeofEtown","archived":false,"distinguished":null,"id":"cnasd6x","score_hidden":false,"name":"t1_cnasd6x","link_id":"t3_2qyhmp"} 

So Sind die Nachbarsätze für Gensim word2vec von Bedeutung und sollte ich die gesamte Struktur des Kommentarbaums wiederherstellen, oder kann ich einfach "Beutel mit Sätzen" extrahieren und das Modell darauf trainieren?

Antwort

1

Die von GENSIM Word2Vec erwartet Korpus ist ein iterable von Listen-of-Token. (Zum Beispiel würde eine Liste von Token-Listen funktionieren, aber für größere Korpora würden Sie normalerweise einen neu startbaren Iterable bereitstellen, der Textbeispiele aus dem persistenten Speicher streamt, um das Halten des gesamten Korpus im Speicher zu vermeiden.)

Das Wort-Vektor-Training berücksichtigt nur den Kontext in einzelnen Textbeispielen. Das heißt, innerhalb einer Token-Liste. Also, wenn zwei aufeinander folgende Beispiele sind ...

['I', 'do', 'not', 'like', 'green', 'eggs', 'and', 'ham'] 
['Everybody', 'needs', 'a', 'thneed'] 

... es gibt keinen Einfluss, die in diesen Beispielen zwischen ‚Schinken‘ und ‚Everybody‘. (Die Kontexte sind nur innerhalb jedes Beispiels.)

Dennoch kann es subtile Auswirkungen auf die Qualität geben, wenn die Anordnung der Beispiele alle Wörter oder Themen eines bestimmten Typs zusammenfügt. Zum Beispiel möchten Sie nicht, dass alle Beispiele für Wort X am Anfang des Korpus vorkommen und alle Beispiele für Wort Y spät vorkommen - das verhindert die Art von verschachtelten Beispielen, die die besten Ergebnisse erzielen.

Also, wenn Ihr Korpus in irgendeiner sortierten Reihenfolge kommt, nach Thema oder Autor oder Größe oder Sprache verklumpt, ist es oft vorteilhaft, eine anfängliche Mischung durchzuführen, um solche Verklumpungen zu entfernen. (Re-shuffling mehr, wie zwischen Trainingspässen, hat in der Regel vernachlässigbar zusätzlichen Nutzen.)

+0

Vielen Dank und bitte entschuldigen Sie mich für die späte Antwort! Ich denke, Reddit-Dumps haben Kommentare, die ziemlich durcheinander sind, also hast du mich vor einem riesigen Haufen Arbeit bewahrt, ihre Struktur zu rekonstruieren. – Slowpoke

Verwandte Themen