プロが教えるわが家の防犯対策術!

Mecab http://mecab.googlecode.com/svn/trunk/mecab/doc/ …

---perl script[UTF-8]--------
# my $cmd = `"C:/Program Files (x86)/MeCab/bin/mecab.exe" "C:/Program Files (x86)/MeCab/bin/test.txt"`;
my $cmd = `"C:/Program Files (x86)/MeCab/bin/mecab.exe" "今日は晴れだ。"`;

open(F,">test_out.txt");
print F $cmd;
close F;
-------------------
1行目の方法で行うと成功しますが、2行目の方法で行うとファイルの読み込みを行っているようで失敗します。
直接文字を入れることで動作させたいのですが方法はありますでしょうか?

また、様々なプログラムの知識をネットで拾い読みする感じで付けてきて、あまり体系的に勉強していません。こういった、事の分かる書籍などあれば教えて頂ければ幸いです。

宜しくお願い致します。

A 回答 (3件)

mecabには詳しくはないのですが



そこのマニュアル見る限り、
> "C:/Program Files (x86)/MeCab/bin/mecab.exe" "今日は晴れだ。"
のように、「引数に指定した文字列を解析する」という機能は無く、指定したものはファイル名と解釈されるようです。

標準入力には対応しているようなので
`echo "今日は晴れだ。" | mecab`
とか open2を使う必要がありそうです。
# パスとか文字コードとは適宜変更する
    • good
    • 0
    • good
    • 0

「ファイルの読み込みを行っているようで失敗します」ってどういうことだろう.



あと, UTF-8 な文字列をそのままファイル名に使えるんだっけ?
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
その通りです。読み込み失敗したとでます。
今のままですと一度中間ファイルを作らないと動作させられないため、改良したく思っています。この実行ファイルには文字を直接変換する機能がないのでしょうか?
また、ファイル名については、半角英数字しか使っていないので気にしたことがなかったです。言われてみるとそうですね。

お礼日時:2012/09/15 09:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!