2016-04-24 2 views
-5
txt <- readLines("this.txt") 

library(tm) 

corpus <- Corpus(VectorSource(txt)) 

corpus <- tm_map (corpus, removePunctuation) 

tdm <- TermDocumentMatrix (corpus) 

m <- as.matrix (tdm) 

d <- data.frame(freq = sort(rowSums(m),decreasing = TRUE)) 

Antwort

0

Ich glaube, Sie zu fragen, wie Wörter zu entfernen, wie ‚die‘ und ‚dieser‘ mit der tm Bibliothek? Wenn ja, versuchen Sie dies:

corpus <- tm_map(txt, removeWords, stopwords("english")) 

bestimmte Wörter zu entfernen:

corpus <- tm_map(corpus, removeWords, c("hello","is","it","me","you're","looking","for?")) 

Edit: Ich habe ein Beispiel unter Verwendung von Krieg und Frieden, die funktioniert. Versuchen Sie, Ihre Begriffe in Kleinbuchstaben zu konvertieren vor Erstellen einer Dokument-Term-Matrix. Wie so:

library(tm) 

# load 
txt <- readLines("this.txt") 
corpus <- Corpus(VectorSource(txt)) 

# clean 
corpus <- tm_map(corpus, removePunctuation) 
corpus <- tm_map(corpus, removeNumbers) 
corpus <- tm_map(corpus, tolower) 
corpus <- tm_map(corpus, removeWords, stopwords("english")) 
corpus <- tm_map(corpus, PlainTextDocument) 

# create dtm and get terms 
dtm <- DocumentTermMatrix(corpus) 
dtm$dimnames$Terms 

Ändern Sie den Code der Textdatei und die Ausgabe sollte ähnlich wie diese passen:

dtm$dimnames$Terms 
[1] "almost"   "anonymous"  "anyone"   "anywhere"  "author"   "away"   
[7] "aylmer"   "book"   "chapter"   "contents"  "copy"   "cost"   
[13] "date"   "david"   "ebook"   "english"   "give"   "gutenberg"  
[19] "iii"    "included"  "january"   "language"  "last"   "leo"    
[25] "license"   "louise"   "march"   "maude"   "may"    "one"    
[31] "online"   "peace"   "posting"   "project"   "restrictions" "reuse"   
[37] "start"   "terms"   "title"   "tolstoy"   "tolstoytolstoi" "translators"  
[43] "updated"   "use"    "vii"    "volunteer"  "war"    "whatsoever"  
[49] "widger"   "wwwgutenbergorg" 
+0

Ich versuche schon, dies zu tun, aber es funktioniert nicht ... Ich muss die Wörter wie zu löschen: die, in, und ... etc von d –

+0

Ich verstehe, was Sie brauchen, aber sei Genauer zu Ihren Daten: Welche Wörter sind noch übrig? In welcher Sprache befindet sich Ihr Text? Sind die restlichen Wörter in Groß- oder Kleinbuchstaben? Wenn Sie Wörter wie 'The' und nicht 'the' haben, dann können Sie versuchen, sie in Kleinbuchstaben umzuwandeln. Siehe meine Bearbeitung oben. –

0

Es ist schwer zu sagen, wie Ihre Daten aussehen. Aber Sie können versuchen, gsub zu verwenden, die einfache Funktion zum Ersetzen von Suchen ist.

gsub("The", "", "HelloThe") 

Welche Sie

"Hello" 
+0

Es tut mir leid, aber R mein Leben unglücklich machen: '(: p –

+0

Ich habe eine Matrix d und ich muss einige Wörter entfernen wie: die, und ... etc der Korpus <- tm_map (txt, removeWords, Stoppwörter ("Englisch")) funktioniert nicht: '( –

1
gibt

Wissen Sie, was reguläre Ausdrücke? Sie können lesen here über R-Funktion gsub. Hier ist ein kleines Beispiel, wie es funktioniert:

> let <- c("A", "B", "A", "C") # My vector of letters 
> let 
[1] "A" "B" "A" "C" 
> # I want delete "A", so this letter I will replace with nothing ("") 
> l <- gsub("A", "", let) # "A" replace by "" in vector let 
> l 
[1] "" "B" "" "C" 

Alles, was Sie jetzt tun müssen, ist leere Elemente löschen, wenn es welche gibt.

Und wenn Sie nur eine Symbolzeile, dann gsub funktioniert:

> let <- " a b c d g h a a a" 
> let 
[1] " a b c d g h a a a" 
> l <- gsub("a", "", let) 
> l 
[1] " b c d g h " 
+0

tnks ... but was, wenn ich eine Matrix habe ... sollte ich eine Matrix verdecken, um zu liste? wie kann ich das tun? –

+0

gsub arbeitet auch zwischen Matrix-Elementen. Keine Notwendigkeit, Matrix in eine Liste zu konvertieren. Aber für Sie, in meiner Meinung Ein besserer Weg zur Lösung ist die Verwendung von Beispielen, die von Kipras oder Oliver geschrieben wurden. Ich weiß etwas über Paket 'tm', also kann ich nicht helfen, es mehr zu verstehen. –

+0

ok thnk y soooo viel –

Verwandte Themen