0

Johns Hopkins Capstone プロジェクトのために処理している一連のテキストがあります。私はコアテキスト処理ライブラリとして quanteda を使用しています。自宅では Macbook Pro を使用し、職場では Windows 7 64 ビットを使用しています。R スクリプトが Mac では正しく実行されているように見えますが、Win7 システムでは失敗します。コースの制限により原文資料を提供することができません。助けを得るために、以下に十分な情報を提供できることを願っています。私の現在のアプローチは、テキスト ファイルからコーパスを作成し、それを ngram なしでトークン化し、トークン化されたファイルで ngram を実行することです。以下は私のコードスニペットです。

次のようにテキスト ファイルからデータを取得します。

con <- file(src_file, open="rb")
tmp <- scan(con,
            what = "complex",
            nlines = maxlines,
            # I break the large file into portions via the stp variable
            # which is a number from 1 to 10
            skip = maxlines * stp, 
            fileEncoding = "UTF-16LE",
            encoding = "ASCII",
            blank.lines.skip = TRUE,
            na.strings = "",
            skipNul = TRUE)

tmp オブジェクトは Rds ファイルに保存されます。

次の関数は quanteda 要素の周りで使用されます

make_corpus <- function(lines) {
    lines <- toLower(lines)
    cat("Making corpus\n")
    t <- corpus(lines)
}

tok_corpus <- function(lines) {
    lines <- toLower(lines)
    cat("Making vocabulary\n")
    t <- tokenize(lines,
                   what = "word",
                   verbose = TRUE,
                   simplify = FALSE,
                   removeSeparators = TRUE,
                   removeNumbers = TRUE,
                   removePunct = TRUE,
                   removeTwitter = TRUE
              )
    }

make_ngrams <- function(lines) {
    lines <- toLower(lines)
    cat("Making ngrams\n")
    t <- ngrams(lines, n = c(1,4) )
}

以下は、ファイルから ngrams に進みます。

cat("...creating corpus\n")
# smp_all has been read from previously mentioned Rds file
voc_corpus <- make_corpus(smp_all)

cat("...going to make vocabulary\n")
vocab <- tok_corpus(voc_corpus)

cat("...going to make n_grams\n")
n_grams <- make_ngrams(vocab)

以下は、スクリプトからの出力です。

Removing working files...
Loading text files...
Read 37716 items
Read 28848 items
Read 12265 items
...Building smp_all
...creating corpus
Making corpus
Non-UTF-8 encoding (possibly) detected  :ISO-8859-2.
...going to make vocabulary
Making vocabulary
Starting tokenization...
...tokenizing texts...total elapsed:  0.48 seconds.
...replacing names...total elapsed:  0 seconds.
Finished tokenizing and cleaning 66,565 texts.
...going to make n_grams
Making ngrams
Error in if (any(stringi::stri_detect_fixed(x, " ")) & concatenator !=  : 
  missing value where TRUE/FALSE needed

私の Mac では、Making ngrams は生成されたものに関する統計を提供しますが、Win7 では上記のエラーが見られます。

これをRコンソールで実行しています。

システムインフォメーション:

R バージョン 3.2.3 (2015-12-10) -- 「木製のクリスマス ツリー」 Copyright (C) 2015 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64 ビット)

Quanteda バージョン: 0.9.0-1 日付: 2015-11-26

前もって感謝します。

4

1 に答える 1