Ich habe stackoverflow und das Web durchsucht und finde nur Teillösungen ODER einige, die aufgrund von Änderungen in TM oder qdap nicht funktionieren. Problem unten:
Ich habe einen Datenrahmen: ID und Text (Einfaches Dokument id / name und dann ein paar Text )
Ich habe zwei Probleme:
Teil 1 : Wie kann ich eine tdm oder dtm erstellen und den Dokumentnamen / die ID beibehalten? Es zeigt nur "Zeichen (0)" auf inspect (tdm).
Teil 2 : Ich möchte nur eine bestimmte Liste von Begriffen behalten, d. H. Gegenteil von benutzerdefinierten Stoppwörtern entfernen. Ich möchte, dass dies im Korpus geschieht, nicht im tdm / dtm.
Für Teil 2 habe ich eine Lösung verwendet, die ich hier bekommen habe: Wie man Näherungsregeln im tm-Wörterbuch zum Zählen von Wörtern implementiert?
Dieser passiert auf dem tdm Teil! Gibt es eine bessere Lösung für Teil 2, wo Sie etwas wie "tm_map (my.corpus, keepOnlyWords , benutzerdefinierte Liste)" verwenden?
Jede Hilfe wird sehr geschätzt. Vielen Dank!
Zuerst, hier ist ein Beispiel data.frame
%Vor% Um nun spezielle Attribute aus einem data.frame zu lesen, verwenden wir die Funktion readTabular
, um unseren eigenen data.frame-Reader zu erstellen. Das ist alles was wir tun müssen
Wir geben nur die Spalte an, die für den Inhalt und die ID im data.frame verwendet werden soll. Jetzt lesen wir es mit DataframeSource
ein, verwenden aber unseren benutzerdefinierten Reader.
Wenn wir nun nur einen bestimmten Satz von Wörtern behalten wollen, können wir unsere eigene content_transformer
-Funktion erstellen. Ein Weg, dies zu tun, ist
Dadurch wird alles, was nicht in der Wortliste enthalten ist, durch ein Leerzeichen ersetzt. Beachten Sie, dass Sie danach wahrscheinlich stripWhitesspace ausführen möchten. So würden unsere Transformationen aussehen wie
%Vor%Und dann können wir das in eine Dokument-Term-Matrix umwandeln
%Vor%und Sie können es, es hat unsere Liste von Wörtern und die richtigen Dokument-IDs aus dem data.frame
Tags und Links r text text-mining tm corpus