フォーラムへの返信
-
投稿者投稿
-
ishidaキーマスター
file = data/hon.txt
がUTF-8だということはないでしょうか?
以下のようにして表示されるか確認してみてください。readLines("data/inu.txt") ## readLines("data/inu.txt", encoding = "UTF-8")
もしも文字化けする場合は、CP932(ShiftJIS)以外で作成されているファイルなので、CP932に変換する必要があります。TeraPad などのエディタで一度開いてメニューで変換するのが簡単かもしれません。
ishidaキーマスターMeCabのサイトに問題があるのではなく、
どうやらご利用されているPC環境の問題であるようです。
ただ、ダウンロードできたということですね。蛇足ながらWindowsであればmecab-0.996.exeだけを使ってインストールします。
なにかありましたら、改めて、ご質問ください。
ishidaキーマスター以下からもう一度試してみてください。
ishidaキーマスターMeCabのインストールに関する情報ありがとうございます。
その後のRMeCabインストール手順ですが、GitHubからZipをダウンロードせずに、以下をR/RStudioのコンソールで実行してもインストールできるのではないかと思います。install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source") # あるいは install.packages("devtools") devtools::install_github("IshidaMotohiro/RMeCab")
機会がありましたらお試しください。
- この返信は6年、 6ヶ月前にishidaが編集しました。
ishidaキーマスターRMeCabを再インストールしてください。
remove.packages("RMeCab") install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
もしも、これで動作しないようでしたら、申し訳ありませんが、お使いのMacの環境構成を拝見しない限り、私からアドバイスできることはありません。
ishidaキーマスターlibmecab の位置情報が知りたいのですが、
ls -la /usr/local/lib/libmecab*
それよりも、MeCabはほとんどアップデートのないアプリケーションですので、 homebrew版 を抜いて、ソースから入れなおすわけにはいかないでしょうか?
brew uninstall mecab brew uninstall mecab-ipadic
ソースからのインストール
ishidaキーマスターAmazonLinux は CentOS系なのですね。情報ありがとうございました。
ishidaキーマスターAmazonLinux を使ったことがないのですが、libmecab.so がないというメッセージがあるようなので、インストールされたというMeCabのライブラリの位置が認識できていないようです。以下、通常のLinux環境からの推測で書きます。間違っているかもしれませんので、ご注意ください。
libmecab.so がどこにインストールされているのか分からないのですが、/usr/local/lib あたりにないでしょうか?以下で確認してみてください。
$ ls -la /usr/local/lib/libmecab*
また /etc/ld.so.conf というファイルがないでしょうか。あれば、中身を確認し、/usr/local/lib が記載されているか確認します。恐らく無いと思うので、追記します。
例えば以下のようにします。sudo echo "/usr/local/lib >> /etc/ld.so.conf
その上で以下を実行してみてください。
$ ldconfig
ishidaキーマスターなにかありましたら、また気楽にご質問ください
ishidaキーマスターいえ、Homebrew版への対応が十分でないためにご迷惑おかけしました。
今後、改善したいと思います。こちらこそ、ありがとうございました。ishidaキーマスターMeCab はソースからコンパイルしたものでしょうか?
あるいは homebrew でインストールしたものでしょうか。後者なら、いったん抜いて、改めてソースからインストールし直すのを試すことをご検討いただけますか?
https://sites.google.com/site/rmecab/home/installbrew uninstall mecab brew uninstall mecab-ipadic
前者、つまりソースであれば、上のご回答の 「中略」 という部分を確認させていただきたいです。
ishidaキーマスターそれでは以下のように実行して、RMeCab を再インストールしてみてください
remove.packages("RMeCab") install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
ishidaキーマスターRで sessionInfo() を実行して、環境(WindowsなのかMacなのか、またRのバージョン)を教えてください。
また 可能であれば、ターミナルないしコマンドプロンプトで以下を実行して MeCab の方が動いているか確認してください。mecab すもももももももものうち
ishidaキーマスターこの件ですが、RMeCab内部で、読み込み可能なファイル数に制限を設定しているのを失念しておりました。
RMeCabを開発した頃は、Rのメモリ周りの余裕が厳しかったための処理なのですが、いまは不要だと思います。
時期バージョン(RMeCab0.99998)から解除します。ishidaキーマスターもしも多数のファイルから単語文書行列を作成したい場合は、面倒ですが、ファイル集合を複数に分けて、それぞれから単語文書行列を作成してから、メモリの効率の良い疎行列に変換して、最後に結合するという手段もあります。概略以下のような処理になります。
library(RMeCab) ## 文書集合1 x <- docMatrix2("folder1") ## 文書集合2 y <- docMatrix2("folder2") ## 文書集合3 z <- docMatrix2("folder3") ## 疎な行列に変換 library(Matrix) x_s <- as(x, "dgCMatrix") y_s <- as(y, "dgCMatrix") z_s <- as(z, "dgCMatrix") ## 行名の共通集合を取得 words <- intersect(rownames(x_s), intersect(rownames(y_s), rownames(z_s))) ## 行名(行数)を統一 x_s <- x_s[words, ] y_s <- y_s[words, ] z_s <- z_s[words, ] ## 結合 cbind2 (x_s, y_s, z_s)
問題は、それぞれの行列の行数を揃えないといけないので、すべての疎行列(の行名)から、必要とする単語だけを抽出する必要があり、この整形が若干手間がかかります。
さらに疎な行列のままだと、適用できる分析関数が限られるので、その場合、再度、通常の行列に戻す必要がありますが、その際、再びメモリ不足を警告される恐れはあります。 -
投稿者投稿