2016-03-28 9 views
1

Vor allem meine Entschuldigung, um eine Frage zu wiederholen, die am 1. August 13 gefragt wurde. Aber ich kann die ursprüngliche Frage nicht kommentieren, da ich 50 Ruf haben muss, um Kommentare abgeben zu können, die ich nicht habe. Die ursprüngliche Frage kann von R text mining documents from CSV file (one row per doc) abgerufen werden.R Text Mining-Dokumente aus CSV-Datei

Ich versuche, mit dem tm-Paket in R zu arbeiten, und habe eine CSV-Datei mit Artikelzusammenfassungen, wobei jede Zeile eine andere Zusammenfassung ist. Ich möchte, dass jede Zeile ein anderes Dokument innerhalb des Korpus ist. In meinem Datensatz befinden sich 2.000 Zeilen.

Ich betreibe die folgenden Codes, wie zuvor von Ben vorgeschlagen:

# change this file location to suit your machine 
file_loc <- "C:/Users/.../docs.csv" 
# change TRUE to FALSE if you have no column headings in the CSV 
x <- read.csv(file_loc, header = TRUE) 
require(tm) 
corp <- Corpus(DataframeSource(x)) 
docs <- DocumentTermMatrix(corp) 

Wenn ich überprüfen Klasse:

# checking class 
class(docs) 
[1] "DocumentTermMatrix" "simple_triplet_matrix" 

Das Problem ist tm Transformationen in dieser Klasse arbeiten:

# Preparing the Corpus 
# Simple Transforms 
toSpace <- content_transformer(function(x, pattern) gsub(pattern, " ", x)) 
docs <- tm_map(docs, toSpace, "/") 

Ich bekomme diesen Fehler:

Error in UseMethod("tm_map", x) : 
no applicable method for 'tm_map' applied to an object of class "c('DocumentTermMatrix', 'simple_triplet_matrix')" 

oder ein anderer Code:

docs <- tm_map(docs, toSpace, "/|@|nn|") 

Ich bekomme den gleichen Fehler:

Error in UseMethod("tm_map", x) : 
no applicable method for 'tm_map' applied to an object of class "c('DocumentTermMatrix', 'simple_triplet_matrix')" 

Ihre Hilfe wäre sehr dankbar.

+0

Sie müssen Ihre Funktion auf das 'Corpus'-Objekt und nicht auf die' DocumentTermMatrix' anwenden. Nach 'corp <- Corpus (DataframeSource (x))' versuchen Sie 'corp <- tm_map (corp, toSpace,"/")' und erst dann erstellen Sie Ihre 'DocumentTermMatrix'. – nicola

+0

@nicola Vielen Dank. Du hattest vollkommen recht. Ich habe es laufen lassen. Es schien jedoch zu funktionieren, bis ich mein dtm erstellt habe. Die letzten Codes waren 'docs <- tm_map (docs, stemDocument)' und 'inspect (docs [16])'. Das Ergebnis ist 'Inhalt: Zeichen: 1190', was mir gut erscheint. Aber wenn ich dtm erstellt habe, ist das Ergebnis von 'dim (dtm)' '[1] 2004 0'. Ja ich habe 2004 Dokumente aber 0 ?! nichts in meinen Matrizen ?! Bitte um Rat. – Sahara

+0

Es hängt wirklich von Ihren Daten ab. Kann nichts erzählen, ohne sie zu sehen. Schau dir Schritt für Schritt deinen Korpus an, um zu sehen, was vor sich geht. – nicola

Antwort

0

Der Code

docs <- tm_map(docs, toSpace, "/|@|nn|") 

muss mit

docs <- tm_map(docs, toSpace, "/|@|\\|"). 

Dann wird es in Ordnung ersetzt werden arbeiten.