Re: 他言語の文字を含むデータの共起ネットワーク (HIGUCHI Koichi) KH Coder 旧掲示板
[ツリー表示] [留意事項] [ワード検索] [過去ログ]

  [No.2571] Re: 他言語の文字を含むデータの共起ネットワーク 投稿者:HIGUCHI Koichi  投稿日:2016/09/02(Fri) 16:05:09

須賀井先生・皆さま

こんにちは、樋口です。書き込みありがとうございます。

ご研究を着々とお進めになっているご様子、眩しい思いがいたします。また、
その中でKH Coderをお試しいただき感謝申し上げます。

■原因

さて、エラーを拝見したところWindows版のRの制限に引っかかっているのかな
という印象です。Windows版のRは、「今処理しているのは日本語」「今処理し
ているのは韓国語」といった設定に色濃く影響を受けます。この設定をロケー
ルと呼びます。

ロケールとして指定できるのはWindowsのcode pageのみで、UTF-8は指定でき
ません。そしてcode pageを指定すると、そのcode pageに含まれない文字は扱
えなくなってしまいます。

例えば日本語版WindowsにインストールしたRは、デフォルトのロケールが日本
語(cp931)になっています。したがって、そのまま現代韓国語データを入力
すると「unexptecte INCOMPLETE_STRING」エラーになるはずです。ですから、
KH Coderを使って現代韓国語データで作成した共起ネットワークを、R形式
(*.r)で保存し、Rで実行してみると、このエラーになるでしょう。

> source("C:\\khcoder3\\net.r", encoding="UTF-8")
> # 「INCOMPLETE_STRING」エラー

しかしロケールを韓国語(cp949)に切り替えれば、ハングル文字を含むデー
タを扱えるようになります。

> Sys.setlocale("LC_ALL", "Korean") # ロケールを韓国語に切り替え
> source("C:\\khcoder3\\net.r", encoding="UTF-8")
> # 共起ネットワーク作成に成功するはずです

つまり、Windows版のRは、実のところUTF-8に対応しているとは言えないよう
に思います。UTF-8のデータ読み込み時に、現在のロケール(Windows code
page)に含まれない文字があると、エラーになってしまうのです。

Windows版のKH Coderは、韓国語データ分析時にはRのロケールを韓国語
(cp949)に設定しますので、cp949に含まれない文字があるとエラーになって
いるものと思います。今回の例では「睺」
http://jigen.net/kanji/30586 がcp949に含まれていないのが原因のようです。


■解決策の模索

Mac版やLinux版のRにはこうした制限がないようでして、お書きいただいたよ
うにMacやLinuxではこのエラーは出ないはずです。


Windowsでは、Rのロケール設定を変えることで、もしかしたら対策可能かもし
れません。

というのは、韓国語の古語というのは、使われる文字はすべて漢字でしょうか?
使われている文字がすべて、現代中国語のコードページ(cp936)に含まれて
いるようでしたら、Rのロケールを中国語に設定すれば解決しそうに思います。

そこで、現在分析中の言語がなんであれ、Rのロケールを中国語に設定する
プラグインを作成してみました。
http://khcoder.info/psnl/tmp/force_chinese.zip

Zip内の「force_chinese.pm」を「plugin_jp」フォルダにコピーしてください。
そしてKH Coderを起動したら、メニューから「ツール」「プラグイン」「中国
語ロケールに設定」をクリックします。それから共起ネットワークを作成して
みていただくと、いかがでしょうか。


使われている文字がすべて、現代中国語のコードページ(cp936)に含まれて
いれば、おそらく共起ネットワークを作成できると思います。しかし、cp936
の範囲外の文字があるようだと、ちょっとWindowsではお手上げかもしれません。


p.s.
現在の3.Alpha.08eでは、上記プラグインをお使いいただかないと、前処理の
際に問題になる中国語文字は「?」に置換えられてしまうのではないかと思い
ます。前処理前に、上記プライグインで「中国語ロケールに設定」していただ
けば、中国語ロケール内の文字は「?」に変換されず、温存されるはずです。

なお、もし必要でしたら、cp936に含まれる文字のリストはこちらにございます。
ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit


- 関連一覧ツリー (■ をクリックするとツリー全体を一括表示します)