4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rでテキストマイニングの際にstringrで前処理後RMeCab(RMeCabC,DocDF)かけると文字化けする件

Posted at

はじめに

Windowsを使い、RMeCabでテキスト解析を行う際に前処理はエディタで行っていたけれど、どうせならR上で前処理をということで、stringrで前処理をやってみたけれどうまくいかない。
よく見ると文字化けしているようでした。

環境

Windows10 64bit 言語:日本語
R 3.6.1 64bit
RStudio 1.2.1335
MeCab 0.996-32bit
RMeCab 1.04

状況確認

文字列置換し、RMeCabで形態素解析

stringrのstr_replace_all関数で
「今日は焼肉食べに行こう。」の「焼肉」を「寿司」に置換し後
RMeCabCで形態素解析してみます。

コードは以下の通りです

> library(dplyr)
> library(stringr)
> library(RMeCab)
>         
> text<-"今晩は焼肉食べに行こう。"
> text1<-text %>% str_replace_all("焼肉","寿司")
> RMeCabC(text1) %>% unlist
        名詞         名詞         名詞         名詞         名詞         名詞         名詞         名詞 
        "莉"       "頑勦"         "縺"          "ッ"         "蟇"          "ソ"         "蜿"          "ク" 
        名詞         名詞         名詞         名詞         名詞         名詞         名詞         名詞 
      "鬟溘"         "∋"         "縺"          "ォ"         "陦"         "後"         "%"         "縺" 
        記号 
"<86>縲<82>" 

文字化けしているようです。
念のため形態素解析をかけてないtext1を表示。

> text1
[1] "今晩は寿司食べに行こう。"

こちらは大丈夫。

str_replace_allで置換する前のtextを形態素解析すると、

> RMeCabC(text) %>% unlist
  名詞   助詞   名詞   動詞   助詞   動詞 助動詞   記号 
"今晩"   "は" "焼肉" "食べ"   "に" "行こ"   "う"   "。" 

text,textのエンコードをEncoding関数で調べてみましょう。

> Encoding(text1)
[1] "UTF-8"
> Encoding(text)
[1] "unknown"

なんと変換後のtext1はUTF-8となるではないですか。

解決方法

理由が分かったところで、落ち着いてiconv関数でUTF-8からWindow標準のCP932に変換し、
RMeCabCで形態素解析したところうまくいきました。

> text2<-text1 %>% iconv(from="UTF-8",to="CP932")
> Encoding(text2)
[1] "unknown"
> RMeCabC(text2) %>% unlist
  名詞   助詞   名詞   動詞   助詞   動詞 助動詞   記号 
"今晩"   "は" "寿司" "食べ"   "に" "行こ"   "う"   "。" 
> 

docDFでも同じ方法で文字化け問題を解決できました。
iconv関数はベクトルも引数にとれるので、データフレームの1列を取り出しベクトルを引数にとって
処理可能です。Rのありがたき仕様。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?