Nach dem Ausführen eines STM Modell auf einem Quanteda basierend Start dfm, ich möchte, dass meine Kovariaten Auswirkungen auf bestimmte Themen schätzen.STM: Abschätzen Beziehungen Metadaten/Thema, wenn sie von DFM
Die Ausführung des STM-Modells verlief fehlerfrei und lieferte die Themen erwartungsgemäß. Bei Verwendung von estimateEffect
(im letzten Schritt des folgenden Skripts) wurde die R-Sitzung abgebrochen, wodurch ein schwerwiegender Fehler gemeldet wurde.
Wie kann ich die Auswirkungen meiner Kovariaten abschätzen, wenn ich von einem DFM aus anfange? Das STM-Handbuch gibt Tipps zum Ausführen eines STM-Modells von einem DFM, aber ich konnte nach dieser Phase nicht herausfinden, wie mit den Kovariaten gearbeitet wird.
Hier ist der Code:
# Read texts with Quanteda
texts <- (readtext("C:/Users/renswilderom/Documents/Stuff Im working on at the moment/Newspaper articles DJ/test data/*.txt",
docvarsfrom = "filenames", dvsep = "_",
docvarnames = c("Date of Publication", "Length LexisNexis", "source"),
encoding = "UTF-8-BOM"))
mycorpus <- corpus(texts)
tokens <- tokens(mycorpus, remove_punct = TRUE, remove_numbers = TRUE, ngrams = 1)
mydfm <- dfm(tokens, remove = stopwords("english"), stem = TRUE)
# Run the STM model - Metadata is called with 'data = docvars(mycorpus)'
stm_from_dfm <- stm(mydfm, K = 10, prevalence =~ Date.of.Publication + source, gamma.prior='L1', data = docvars(mycorpus))
# Estimate effects
prep <- estimateEffect(1:10 ~ Date.of.Publication + source, stm_from_dfm,
meta = docvars(mycorpus), uncertainty = "Global")
Alternativ machte ich einen STM Korpus aus meinem DFM Korpus, STMcorpus <- asSTMCorpus(mydfm)
verwenden. Aber dann konnte ich das STM-Modell nicht ausführen, da es meine Metadaten nicht erkannte. Wäre es besser, dieser alternativen Strategie zu folgen? (Ich muss also die Metadaten mit dem STMcorpus verbinden, nachdem ich STMcorpus <- asSTMCorpus(mydfm)
ausgeführt habe).
Es ist schwierig, ohne ein reproduzierbares Beispiel zu diagnostizieren - könnten Sie einen liefern? Außerdem denke ich, dass Quanteda die Daten enthält, wenn du 'asSTMCorpus (mydfm)' machst. Die Metadaten sind nur das Objekt in der Liste namens 'data'. – bstewart
Sicher, hier ist ein Beispiel für die aktuellen Zeitungsartikel, die ich benutze: https://wetransfer.com/downloads/a50d8b8fd524359751e8aa68bac3256c20171016160720/3f3bb29e40362434594f44aeee1e67f720171016160720/b425d8 würde ich lieber arbeite von der 'stm_from_dfm', kann aber bei Bedarf natürlich auch vom 'asSTMCorpus (mydfm)' aus arbeiten. Ich werde es einfach versuchen, auf die Metadaten über die Liste "Daten" zuzugreifen. – Rens
Ich konnte Ihren Fehler mit dem von Ihnen angegebenen Datenbeispiel nicht replizieren. Wenn Sie eine Kopie des Arbeitsbereichs kurz vor dem Aufruf von 'estimateEffect()' teilen möchten, kann ich versuchen, von dort zu replizieren - aber ansonsten kann ich nicht viel tun, ohne das Problem neu erstellen zu können. – bstewart