2017-11-09 5 views
1

Wir möchten ein Thema Modell mit Bigrammen bauen. Was ist die empfohlene Methode, dies in Java zu implementieren?Unterstützung Bigrammen in Topic Modeling mit Mallet Java API

Derzeit verwenden wir Mallet Java API. Insbesondere ParallelTopicModel beim Übergeben von Token als Zeichenfolge an den Datenparameter des Instance-Objekts.

Vielen Dank.

Antwort

1

Die einfachste und zuverlässigste Möglichkeit, N-Gramme zu berücksichtigen, ist das Ändern der Eingabe. Beispielsweise können Sie durch new_york ersetzen und dann unter Verwendung eines Musters, das _ als ein Buchstabenzeichen akzeptiert, Tokenize. Mallet können Sie eine Datei mit Zeichenfolgen angeben, die als einzelne Tokens zu behandeln, wenn Sie Dokumente importieren:

bin/mallet import-file --help 
A tool for creating instance lists of feature vectors from comma-separated-values 
... 
--replacement-files FILE [FILE ...] 
    files containing string replacements, one per line: 
    'A B [tab] C' replaces A B with C, 
    'A B' replaces A B with A_B 
    Default is (null) 

Diese Art der Verwendung erfordert, dass Sie bestimmte n-Gramm zu identifizieren. Sie könnten auch die Eingabedatei so modifizieren, dass alle Bigramme eingeschlossen sind, so dass to be or not to beto_be be_or or_not not_to to_be wird. Ich weiß nicht, ob das irgendetwas Nützliches hervorbringen würde.

Es gibt auch Themenmodellvarianten, die "nativ" die N-Gram-Identifikation unterstützen, jedoch zu einem signifikanten Preis in Trainingszeit und Modellqualität. Ich würde nicht empfehlen, irgendwelche von ihnen zu verwenden.

Verwandte Themen