IshidaMotohiro / RMeCab

Interface to MeCab
29 stars 10 forks source link

日本語でcollocate()がうまく機能しません。 #15

Closed tsunodaissei closed 3 years ago

tsunodaissei commented 3 years ago

質問:日本語に対してRMecCabをうまく動かせるようにしたい。

RMeCabパッケージの関数を日本語のテキストデータに対して実行すると以下のようになり失敗します。 極楽not foundとなっていますが、実際には極楽は存在します。ちなみに英語のみのテキストデータに対してはうまく動きます。

library("RMeCab") r <- collocate("kumo.txt", node = "極楽",span = 3) file = kumo.txt 極楽 not found

ここでも今日質問しました。https://ja.stackoverflow.com/questions/83485/rmecab%e3%81%8c%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%af%e3%81%86%e3%81%be%e3%81%8f%e3%81%84%e3%81%8d%e3%81%be%e3%81%9b%e3%82%93

IshidaMotohiro commented 3 years ago

Windowsでお使いだと思うのですが、デフォルトではMeCabもRもRMeCabの Shift−JIS(CP932)を想定しています。逆に言うと、Windows環境では、通常、 MeCab もRMeCabも、対象ファイルがShift-JISでなければ、正常に動作しません。

tsunodaissei commented 3 years ago

早速のご返答ありがとうございます。 Shift−JIS(CP932)にて再度試みてみます。 取り急ぎご返信まで。

tsunodaissei commented 3 years ago

kumo.txt(UTF-8で保存されている) を開いて、「ファイル」>「名前を付けて保存」>「文字コード:UTF-8」を「ANSI]に変えて保存し直しました。するとcollocate()がうまく動きました。文字コードの欄にShift-JISはなかったので最初わからなかったのですが、どうやらANSIを使えばいいとのことでした。R-studio側の文字コードはUTF-8のままでしたが、うまく動作しました。

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

IshidaMotohiro commented 3 years ago

WindowsでRStudioを使われるのであれば、文字コードはCP932に戻しておいたほうがいいかもしれません。 R/RStudio では、パソコンのデフォルト文字コード設定がなんであれ、UTF-8は普通に解釈され、表示等にも問題は生じません。

(逆にWindowsで操作しているにもかかわらず、いつの間にか文字コードがShift-JISからUTF-8に変換されてしまっていることがあります。)

tsunodaissei commented 3 years ago

R-studioの設定はもともとUTF-8でした。日本語を使用するのなら、RとR-studioの設定はCP932にしたほうが安全なのですね。 ご教示いただきありがとうございます。

IshidaMotohiro commented 3 years ago

度々のコメントですが、 Markdown (Rmdファイル)から HTMLファイルやPDFファイルを出力する場合、Windowsであってもファイルの文字コードをUTF-8にしておかないとエラーが生じる場合があります。

歯切れ悪くて恐縮ですが、ケースバイケースとご認識ください。

tsunodaissei commented 3 years ago

承知いたしました。 Windowsではtxtファイルは標準ではUTF-8で保存されていたので、RMeCabを使用する際には思わぬ落とし穴だなと思いました。 何はともあれ、うまく動いたので良かったです。