Hier ist eine Lösung mit einem anderen Text-Paket verwenden, die Sie aus mehreren Wörtern Ausdrücke entweder statistisch erfasst Collocationen, oder einfach nur, indem alle Bi-Gramm erlaubt zu bilden. Das Paket heißt quanteda.
library(quanteda)
packageVersion("quanteda")
## [1] ‘0.9.5.14’
Zuerst wird das Verfahren für den Top-1.500-Bigramm Collocationen Erfassen und Ersetzen dieser Kollokationen in den Texten mit ihrem Single-Token-Varianten (durch den verketteten "_"
character). Hier verwende ich das eingebaute Corpus der US-Präsidentschaftsansprachetexte.
### for just the top 1500 collocations
# detect the collocations
colls <- collocations(inaugCorpus, n = 1500, size = 2)
# remove collocations containing stopwords
colls <- removeFeatures(colls, stopwords("SMART"))
## Removed 1,224 (81.6%) of 1,500 collocations containing one of 570 stopwords.
# replace the phrases with single-token versions
inaugCorpusColl2 <- phrasetotoken(inaugCorpus, colls)
# create the document-feature matrix
inaugColl2dfm <- dfm(inaugCorpusColl2, ignoredFeatures = stopwords("SMART"))
## Creating a dfm from a corpus ...
## ... lowercasing
## ... tokenizing
## ... indexing documents: 57 documents
## ... indexing features: 9,741 feature types
## ... removed 430 features, from 570 supplied (glob) feature types
## ... complete.
## ... created a 57 x 9311 sparse dfm
## Elapsed time: 0.163 seconds.
# plot the wordcloud
set.seed(1000)
png("~/Desktop/wcloud1.png", width = 800, height = 800)
plot(inaugColl2dfm["2013-Obama", ], min.freq = 2, random.order = FALSE,
colors = sample(colors()[2:128]))
dev.off()
Daraus ergibt sich die folgende Grafik. Beachten Sie die Kollokationen wie "generation's_task" und "fellow_americans".

Die Version mit allen Bigrams gebildet ist einfacher, führt jedoch zu einer großen Anzahl von niedrigeren Frequenz Bigramm Funktionen. Für die Wortwolke habe ich einen größeren Satz von Texten ausgewählt, nicht nur die Obama-Adresse von 2013.
### version with all bi-grams
inaugbigramsDfm <- dfm(inaugCorpusColl2, ngrams = 2, ignoredFeatures = stopwords("SMART"))
## Creating a dfm from a corpus ...
## ... lowercasing
## ... tokenizing
## ... indexing documents: 57 documents
## ... removed 54,200 features, from 570 supplied (glob) feature types
## ... indexing features: 64,108 feature types
## ... created a 57 x 9908 sparse dfm
## ... complete.
## Elapsed time: 3.254 seconds.
# plot the bigram wordcloud - more texts because for a single speech,
# almost none occur more than once
png("~/Desktop/wcloud2.png", width = 800, height = 800)
plot(inaugbigramsDfm[40:57, ], min.freq = 2, random.order = FALSE,
colors = sample(colors()[2:128]))
dev.off()
Dies erzeugt:

Falls sich jemand über den Fehler stolpert 'keine anwendbare Methode für‚Collocationen‘auf ein Objekt der Klasse„C (‚VCorpus‘ angelegt, "Corpus") "', versuche '' unlist (corpus) ''. –
An welchem Punkt kann man 'stemDocument()' & 'stemCompletion()' hinzufügen, um zwei verwandte Phrasen in demselben Bigramm zu kombinieren? Wie "freie Gesellschaft" & "freie Gesellschaft" zu "freie_Gesellschaft" in der Wordcloud direkt darüber. –
Nicht sicher, dass ich die Frage verstehe, aber: Sie können diese Funktionen nicht für ein ** Quanteda ** -Objekt verwenden, da sie aus einem anderen Paket stammen. –