私はコードを提供しなかったので、この質問を以前に聞いて、否定的なフィードバックを得ました。私は一日を過ごして試してみると、今は問題に悩まされています。キーの用語(コーパス)を別のものに検索するR
このコードは、Stackoverflowのユーザーが "Tyler Rincker" <で取得しました - 彼に大きな感謝!ここ
はコードです:
strip <- function(x, digit.remove = TRUE, apostrophe.remove = FALSE){
strp <- function(x, digit.remove, apostrophe.remove){
x2 <- Trim(tolower(gsub(".*?($|'|[^[:punct:]]).*?", "\\1", as.character(x))))
x2 <- if(apostrophe.remove) gsub("'", "", x2) else x2
ifelse(digit.remove==TRUE, gsub("[[:digit:]]", "", x2), x2)
}
unlist(lapply(x, function(x) Trim(strp(x =x, digit.remove = digit.remove,
apostrophe.remove = apostrophe.remove))))
corpus2 <- "In Westerman's disruptive article, Quantitative research as
an interpretive enterprise: The mostly
unacknowledged role of interpretation in research efforts."
corpus2 <- gsub("\\s+", " ", gsub("\n|\t", " ", corpus2))
corpus2.wrds <- as.vector(unlist(strsplit(strip(corpus2), " ")))
corpus2.Freq <- data.frame(table(corpus2.wrds))
corpus2.Freq$corpus2.wrds <- as.character(corpus2.Freq$corpus2.wrds)
corpus2.Freq <- corpus2.Freq[order(-corpus2.Freq$Freq), ]
rownames(corpus2.Freq) <- 1:nrow(corpus2.Freq)
key.terms <- c("research as")
私の問題は、コーパス中で、私はバイグラムやトライグラム(2または3ワード)を検索したいということです。私が「1」の周波数を表示する必要があり、この結果を得る
corpus2.Freq[corpus2.Freq$corpus2.wrds %in%key.terms, ]
:私はこのコード行を実行
。
[1] corpus2.wrds Freq
<0 rows> (or 0-length row.names)
しかし、keytermが唯一の1単語の場合:正常に動作し、私は次のような結果を取得され
key.terms <- c("research")
corpus2.Freq[corpus2.Freq$corpus2.wrds %in%key.terms, ]
コード:
corpus2.wrds Freq
research 2
おかげでたくさん!うまくいけば誰かが助けることができる。
こんにちはレンカ、ありがとうございました。はい、私が実装したコードは何とか古いものです。 unigramsであなたのソリューションを試したとき、私は縛られたエラーを出しました。 –
例文( 'corpus2')と同じ文で試しましたか? 「研究」という言葉があなたのコーパスに現れないと、「範囲外」というエラーが出る可能性があります。 'inspect(tdm)'を実行すると、どのような出力が得られますか? –