wordcloud 文字化け

アールメカブ フォーラム RMeCab wordcloud 文字化け

  • このトピックには4件の返信、2人の参加者があり、最後にApepirmにより2年、 11ヶ月前に更新されました。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #1568
    hiro
    ゲスト

    はじめまして。

    wordcloudについて、2つの質問になります。

    ReCabおよびRMeCabインストール手順
    ///////////////////////////////////////////
    OSは、windows10、
    MeCabはmecab_0.996.exeにて、
    RMeCabは、install.packages(“RMeCab”, repos = “http://rmecab.jp/R”)です。
    ///////////////////////////////////////////

    □質問(1)
    特定の文字、例えば”本”を含むテキストでwordcloudを実行すると、
    「tolower(txt)でエラー:43は不正なマルチバイト文字です。」のエラーとなり図示されません。
    特定の文字、例えば”本”を除くと、wordcloudにて図示されます。文字コードが原因と考えています。

    detectEncoding()で確認すると、RMeCabCの前後で、SHIFT-JISからwindows-1252に変化しています。
    iconv(data,from=”shift-jis”,to=”windows-1252″)を行うと、””(空)になります。
    Sys.setlocale(“LC_ALL”,”windows-1252″)を行うと、受け入れらなれません。
    尚、MeCabのプロパティ/現在のコードページは、932(ANSI/OEM-日本語 Shift-JIS) です。

    特定の文字があっても、wordcloudにて図示する方法について、ご教示いただけますと幸いです。

    □質問(2)
    質問(1)で特定の文字、例えば”本”を削除すると、図示されるのですが、文字化けが生じています。
    英数字は正しく表示されますが、カタカナ・ひらがな・漢字が正しく表示さません。
    wordcloudにて日本語が文字化けせずに図示する方法について、ご教示いただけますと幸いです。

    はじめは、質問(1)の問題だけで特定の文字を取り除くと日本語も正しく図示されていたのですが、
    再インストールを行なった後は質問(2)の現象が発生しました。
    ///////////////////////////////////////////
    R version 3.5.2 (2018-12-20)
    Platform: i386-w64-mingw32/i386 (32-bit)
    Running under: Windows 10 x64 (build 17134)

    Matrix products: default

    locale:
    [1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Japan.932
    [3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C
    [5] LC_TIME=Japanese_Japan.932

    attached base packages:
    [1] stats graphics grDevices utils datasets methods base

    other attached packages:
    [1] wordcloud_2.6 RColorBrewer_1.1-2 RMeCab_1.00 Ruchardet_0.0-3.1
    [5] RPostgreSQL_0.6-2 DBI_1.0.0

    loaded via a namespace (and not attached):
    [1] compiler_3.5.2 parallel_3.5.2 NLP_0.2-0 Rcpp_1.0.0 slam_0.1-44
    [6] xml2_1.2.0 tm_0.7-6
    ///////////////////////////////////////////

    #1569
    ishida
    キーマスター

    石田です。

    まず質問1ですが、対象テキストの中身の詳細がわからないのでなんと言えませんが、
    「本」という文字が問題なのではなく、その前後におそらくは絵文字の類がはいっているのではないかと思います。windows-1252と判定されるのは、detectEndoding()が正しく判定できていないからです。

    一番簡単なのは、Windows上のエディタで開いて、明示的にShift-Jisを指定して保存し直すことです。ここ場合、特殊文字は?に置換されます。
    もしも、絵文字も分析上、重要となると、ファイルをUTF-8で保存し、Rで読み込んだ際、特殊文字をUnicodeあるいはバイナリ表示に変えて利用することです。
    Windowsでは以下のようにすれば、特殊文字だけ16進コードに置き換えられます。

    
    x <- readLines("file")
    for( s in x) { 
      iconv(s, from = "UTF-8", to = "CP932", sub = "byte")
      write(s, file = "converted", append = TRUE)
    }
    

    質問2についても、こちらもWindows上では特に設定なくひらがな感じが表示されるはずなのですが、
    一応、ユーザーホームに .Rprofileを作成することを試してください。

    ちなみに以下を実行すると、自動的に作成してくれます。

    
    source("http://rmecab.jp/R/Rprofile.R")
    
    #1570
    hiro
    ゲスト

    回答ありがとうございます。

    対象のファイルはwindowsのメモ帳で文字コードANSIで作成しました。
    指示頂いた明示的な保存のためTeraPadにてSHIFT-JISで保存後、wordcloudを行いましたが、
    質問(1)、質問(2)の問題は解消されませんでした。
    誤った対応、または他対処法等あれば、ご教示いただけますと幸いです。

    以上、よろしくお願いします。

    #1572
    ishida
    キーマスター

    以下のコードをWindowsのRで実行してプロットに日本語が表示されますか?

    
    source("http://rmecab.jp/R/Aozora.R")
    x <- Aozora("http://www.aozora.gr.jp/cards/000081/files/43754_ruby_17594.zip")
    library(RMeCab)
    z <- docDF(x, type = 1)
    library(wordcloud)
    wordcloud(z$TERM, z$chumonno_oi_ryoriten2.txt)
    
    • この返信は5年、 2ヶ月前にishidaが編集しました。
    #1574
    hiro
    ゲスト

    教えて頂いたプログラムにて、漢字、ひらがな文字化けなく図示できました。
    問題はファイルではなく、以下のプログラムにあったようです。
    x1<-read.table(“x.txt”);x2<-RMeCabDF(x1);x3<-unlist(x2)
    ;wordcloud(x3,min.freq=3,random.order=FALSE)

    ありがとうございました。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • フォーラム「RMeCab」には新規投稿および返信を追加できません。