8

大規模なデータベースをテキスト マイニングして、観測のコメント フィールドに特定のフレーズが出現したことを示すインジケーター変数を作成しています。コメントは技術者によって入力されたものであるため、使用される用語は常に一貫しています。

ただし、技術者が単語のスペルを間違えた場合があるため、私の grepl() 関数は、(スペルが間違っていても) フレーズが観測で発生したことを検出しません。理想的には、フレーズ内の各単語を関数に送信できるようにしたいと考えています。これにより、その単語のいくつかの一般的なスペルミスやタイプミスが返されます。そのようなR関数は存在しますか?

これにより、コメント フィールド内のフレーズのスペル ミスのすべての可能な組み合わせを検索し、それを別のデータ フレームに出力することができました。このようにして、発生した事象を個別に調べて、関心のある現象が技術者によって実際に説明されたかどうかを判断することができました。

私はグーグルで検索しましたが、Rの実際のスペルチェックパッケージへの参照しか見つかりませんでした。私が探しているのは「逆」スペルチェッカーです。私が探しているフレーズの数は比較的少ないので、現実的には手動でスペルミスをチェックすることができます。将来のテキスト マイニングの取り組みのために、この機能が R パッケージに組み込まれていると便利だと思いました。

お時間をいただきありがとうございます!

4

1 に答える 1

5

Gavin Simpson が提案したように、aspell を使用できます。これが機能するには、aspell をインストールする必要があると思います。多くの Linux ディストリビューションでは、デフォルトです。他のシステムについても、R とともにインストールされているかどうかもわかりません。

使用例については、次の関数を参照してください。それは、入力データと、指定しなかった結果に対して正確に何をしたいか (最初の提案でスペルミスを修正するなど) によって異なります。

check_spelling <- function(text) {
  # Create a file with on each line one of the words we want to check
  text <- gsub("[,.]", "", text)
  text <- strsplit(text, " ", fixed=TRUE)[[1]]
  filename <- tempfile()
  writeLines(text, con = filename);
  # Check spelling of file using aspell
  result <- aspell(filename)
  # Extract list of suggestions from result
  suggestions <- result$Suggestions
  names(suggestions) <- result$Original
  unlink(filename)
  suggestions
}

> text <- "I am text mining a large database to create indicator variables which indicate the occurence of certain phrases in a comments field of an observation. The comments were entered by technicians, so the terms used are always consistent. "
> check_spelling(text)
$occurence
[1] "occurrence"   "occurrences"  "occurrence's"
于 2013-02-09T20:11:04.247 に答える