Ich habe erfolgreich ein LDA-Modell in Funken über den Python API trainiert:Extract Dokument-Thema Matrix aus Pyspark LDA Modell
from pyspark.mllib.clustering import LDA
model=LDA.train(corpus,k=10)
Die komplett funktioniert gut, aber ich muß jetzt das Dokument -topic Matrix für das LDA-Modell, aber soweit ich sagen kann alles, was ich bekommen kann, ist das Wort -Thema, mit model.topicsMatrix()
.
Gibt es eine Möglichkeit, die Dokument-Thema-Matrix aus dem LDA-Modell zu erhalten, und wenn nicht, gibt es eine alternative Methode (außer LDA von Grund auf neu zu implementieren) in Spark ein LDA-Modell auszuführen, das mir das Ergebnis gibt Ich brauche?
EDIT:
um ein wenig Nach dem Graben, ich die Dokumentation für DistributedLDAModel in der Java api gefunden, das hat ein topicDistributions()
dass ich denke, genau das, was ich hier brauchen (aber ich bin 100% sicher, ob die LDAModel in Pyspark ist in der Tat ein DistributedLDAModel unter der Haube ...).
Auf jedem Fall ich bin in der Lage, diese Methode indirekt zu nennen wie so, ohne offenkundiges Versagen:
In [127]: model.call('topicDistributions')
Out[127]: MapPartitionsRDD[3156] at mapPartitions at PythonMLLibAPI.scala:1480
Aber wenn ich die Ergebnisse betrachtet eigentlich alles, was ich bekommen ist, dass die Ergebnis-String mir zu sagen, ist eigentlich ein Scala Tupel (glaube ich):
In [128]: model.call('topicDistributions').take(5)
Out[128]:
[{u'__class__': u'scala.Tuple2'},
{u'__class__': u'scala.Tuple2'},
{u'__class__': u'scala.Tuple2'},
{u'__class__': u'scala.Tuple2'},
{u'__class__': u'scala.Tuple2'}]
dies ist in der Regel der richtige Ansatz Vielleicht, aber gibt es, um die tatsächlichen Ergebnisse zu bekommen?
Ich weiß, dass die LDA-Funktionalität in Funken noch in der Entwicklung ist, aber es scheint seltsam, dass es zu bekommen diese Informationen aus dem Modell keine einfache Art und Weise ist ... – moustachio
Ich denke, es gibt ein anderes Problem hier. Wie von Jason Lenderman (http://stackoverflow.com/users/2480873/jason-lenderman) gezeigt, implementiert Spark LDA keine LSA, sondern eine Variante von PLSI. Es macht diese Matrizen direkt weniger nützlich. Siehe auch http://StackOverflow.com/a/32953813/1560062 – zero323
Ich sehe, aber in diesem Fall wäre eine mehr oder weniger gleichwertige Lösung, Themen für die ursprünglichen Schulungsdokumente ähnlich der in der verknüpften Frage beschriebenen Methode vorherzusagen Soweit ich das beurteilen kann, sind die notwendigen Methoden in der Python-API nicht implementiert. Sind sie irgendwo versteckt oder gibt es eine andere Möglichkeit, dies in Pyspark zu erreichen? – moustachio