は、ここでは、いずれかの統計学的に検出されたコロケーションから、または単にすべてのバイグラムを形成することにより、マルチワード表現を形成することを可能にするさまざまなテキストパッケージを使用してソリューションを、です。このパッケージは、quantedaと呼ばれます。
library(quanteda)
packageVersion("quanteda")
## [1] ‘0.9.5.14’
まず、トップ1500バイグラムコロケーションを検出し、("_"
文字で連結)は、単一のトークンバージョンとテキストにこれらのコロケーションを置換するための方法。ここでは、米国大統領就任演説のテキストのパッケージの組み込みコーパスを使用しています。
### 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()
この結果、以下のプロットが得られます。 "generation's_task"や "fellow_americans"などのコロケーションに注意してください。
全てバイグラムで形成されたバージョンが容易であるが、低周波バイグラム機能の膨大な数になります。単語の雲のために、私は、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()
これが生成します。必要であれば
https://youtu.be/HellsQ2JF2k
:
は
を余分な空白を除去、 'Corpus') "'、unlist(コーパス) 'を試してください。 –
2つの関連するフレーズを同じバイグラムに結合するには、どの時点で 'stemDocument()'と 'stemCompletion()'を追加できますか? 「フリーソサエティ」、「フリーソサエティ」、「フリーソサイエティ」など –
私はこの質問を理解していますが、** quantum **オブジェクトに適用されているこれらの関数は、別のパッケージのものであるため、使用できません。 –