2017-07-26 6 views
3

quantegaにポーランド語のストップワードを実装する準備ができていないので、自分のリストを使用したいと思います。私はスペースで区切られたリストとしてテキストファイルに入れています。必要に応じて、新しい行で区切られたリストを用意することもできます。Quanteda:単語の自分のリストを削除するには

私のコーパスからストップワードのカスタムリストを削除するにはどうすればよいですか? ステミング後にどうすればいいですか?

私はまた、構文の単語のようなベクターを使用することを試みた、様々なフォーマットを作成

stopwordsPL <- as.character(readtext("polish.stopwords.txt",encoding = "UTF-8")) 
stopwordsPL <- read.txt("polish.stopwords.txt",encoding = "UTF-8",stringsAsFactors = F)) 
stopwordsPL <- dictionary(stopwordsPL) 

ような文字列ベクトルに変換しようとしている

myStemMat <- 
    dfm(
    mycorpus, 
    remove = as.vector(stopwordsPL), 
    stem = FALSE, 
    remove_punct = TRUE, 
    ngrams=c(1,3) 
) 

dfm_trim(myStemMat, sparsity = stopwordsPL) 

又は

myStemMat <- dfm_remove(myStemMat,features = as.data.frame(stopwordsPL)) 

何も動作しません。ストップワードはコーパスと分析に表示されます。カスタムストップワードを適用するための適切な方法/構文は何でしょうか?それは一つとしてファイル全体を読み込んでいるためREADTEXTを使用して解決策が機能していません

stopwordsPL <- readLines("polish.stopwords.txt", encoding = "UTF-8") 

dfm(mycorpus, 
    remove = stopwordsPL, 
    stem = FALSE, 
    remove_punct = TRUE, 
    ngrams=c(1,3)) 

:あなたのpolish.stopwords.txtを想定し

+0

例データを入力してください。 – jdb

+0

確か:ここにすべてがあります。 https://www.dropbox.com/s/vqasd32m8kmkfi5/text_data.zip?dl=0これは5つのテキストとポーランド語のストップワードを含むファイルです。残りの部分は単純なDMを許可している場合に構文をテストするだけです。 –

答えて

5

thisのように、あなたが簡単にあなたのコーパスから、このようにそれらを削除することができるはずです資料。個々の言葉を得るには、それをトークン化し、トークンを文字に強制する必要があります。おそらくreadLines()が簡単です。

removeは文字ベクトルを取る必要があるため、stopwordsPLから辞書を作成する必要はありません。また、まだ実装されていないポーランドの幹部はいません、私は恐れています。

現在(012.9.9-65)dfm()の機能の削除は、バイグラムを形成するストップワードを削除しません。これを無効にするには、

# form the tokens, removing punctuation 
mytoks <- tokens(mycorpus, remove_punct = TRUE) 
# remove the Polish stopwords, leave pads 
mytoks <- tokens_remove(mytoks, stopwordsPL, padding = TRUE) 
## can't do this next one since no Polish stemmer in 
## SnowballC::getStemLanguages() 
# mytoks <- tokens_wordstem(mytoks, language = "polish") 
# form the ngrams 
mytoks <- tokens_ngrams(mytoks, n = c(1, 3)) 
# construct the dfm 
dfm(mytoks) 
+2

ありがとう!できます。私はあなたの答えを使って、最も重要でないngramをランダムフォレストによって指示された後に取り除くつもりです。 –

関連する問題