コマンド引数

Perlでは、コマンド引数が@ARGVという変数に入ります。

#!/usr/bin/perl

# 引数の配列
print "\@ARGV:";
print @ARGV;

# 配列の最大インデックス数値(配列数-1)
print "\n$#ARGV:";
print $#ARGV;

# 最初の引数
print "\n$ARGV[0]:";
print $ARGV[0];

# 最後の引数
print "\n$ARGV[$#ARGV]:";
print $ARGV[$#ARGV];
print "\n";

実行結果は次のようになります。引数を指定しなかった場合と、引数に「hello perl program」を指定した場合を例に挙げています。

$ ./argv.pl 
@ARGV:
-1:-1
:
:

$ ./argv.pl hello perl program
@ARGV:helloperlprogram
2:2
hello:hello
program:program

DSで英語

DSで英語版のゲームをやってみた。簡単な英語だからスラスラ(読めなくてもできる、ともいう)。毎日やりたいところだけど、時間がとれるかなぁ。

Sen

いきおいで、SenもMacOSへインストールしてみた。大体まとめあげたものの、若干疑問が残っているので、週末にでも確認してから記事をアップしようかと思います。

ChaSenとRubyをMac OS へインストール

いきおいで、ChaSenとRubyをMac OS へインストール。RubyからChaSenが使えるようになりました。いまどきだと、ChaSenより、MeCabの方を使う人が多いような気もしますが、その場合は、JRuby + Sen という選択肢があるはず(普通は Ruby + MeCab を選ぶでしょうが)。書籍では、Windows + Ruby + ChaSen の組み合わせの方がよく紹介されているような気がするのですが、気のせいでしょうか。

面倒なので下記の環境へ全部インストール
・アプリケーション: /Users/sssg/application/
・ソースコード:/Users/sssg/workspace/src/

http://www.chasen.org/~taku/software/darts/ からDartsの最新版をダウンロードして、インストール。

cd darts-0.32/
./configure --prefix=/Users/sssg/application/darts
make
make install

http://chasen-legacy.sourceforge.jp/ から、ソースコードをダウンロードしてコンパイル。参考にしたページでは、どこでも iconvとdartsを入れておくと楽、と書いてあったので、きっとそうなのだろう。

cd chasen-2.4.4
./configure --prefix=/Users/sssg/application/chasen \
  --with-darts=/Users/sssg/application/darts/include
chmod +x tests/*.sh
make && make check
make install

あとで使うので、先にtoUtf8.shというスクリプトを紹介しておきます。EUC-JPのファイルをUTF-8へ変換するスクリプトです。Mac OS へは iconv を入れてあったので、それを使うようにしています。dicファイルやchaファイルを変換する必要があるので、そのときに使います。

#!/bin/sh
for suffix in cha dic
do
  for f in `ls *.$suffix`
  do
    if [ -f $f ]; then
      echo $f
      iconv -f euc-jp -t utf-8 $f > tmpfile
      mv tmpfile $f
    fi
  done
done
exit

http://sourceforge.jp/projects/ipadic/ からIPA辞書をダウンロード。さきほどのtoUtf8.shを作成して、辞書ファイルなどをUTF-8へ変換しています。

mv ipadic-2.7.0 ipadic-2.7.0-utf8
cd ipadic-2.7.0-utf8/
./configure --prefix=/Users/sssg/application/ipadic
vi toUtf8.sh
chmod 755 toUtf8.sh 
./toUtf8.sh 
`/Users/sssg/application/chasen/bin/chasen-config --mkchadic`/makemat -i w
`/Users/sssg/application/chasen/bin/chasen-config --mkchadic`/makeda -i w chadic *.dic
mkdir /Users/sssg/application/chasen/etc
make install
iconv -f euc-jp -t utf-8 /Users/sssg/application/chasen/etc/chasenrc > \
  /Users/sssg/application/chasen/etc/chasenrc.utf8
mv  /Users/sssg/application/chasen/etc/chasenrc.utf8  \
  /Users/sssg/application/chasen/etc/chasenrc
echo "文字コード変更のテスト。" | /Users/sssg/application/chasen/bin/chasen -i w 

実行結果は次の通り。

文字 モジ 文字 名詞-一般
コード コード コード 名詞-一般
変更 ヘンコウ 変更 名詞-サ変接続
の ノ の 助詞-連体化
テスト テスト テスト 名詞-サ変接続
。 。 。 記号-句点
EOS

http://www.ruby-lang.org/ja/downloads/ からRubyをダウンロードしてインストール。当初は付属のものを使うつもりだったが、Ruby/ChaSenとかが、変なふうにインストールされたら面倒なので、とにかく簡単に戻せるように別途インストールした。

cd ruby-1.8.7-p249
./configure --prefix=/Users/sssg/application/ruby-1.8.7
make
make install
/Users/sssg/application/ruby-1.8.7/bin/ruby  -version

http://raa.ruby-lang.org/project/ruby-chasen から、Ruby/ChaSenをダウンロード。ChaSenと間違えないように、展開したディレクトリ名は変更。

mv chasen1.7 ruby-chasen-1.7
cd ruby-chasen-1.7/
/Users/sssg/application/ruby-1.8.7/bin/ruby extconf.rb \
   --with-chasen-dir=/Users/sssg/application/chasen
make
make install

テストプログラムの作成と実行

cd ~/Desktop
vi test.rb
chmod 755 test.rb 
./test.rb 

テストプログラム test.rb の内容は次の通り

#!/Users/sssg/application/ruby-1.8.7/bin/ruby
# -*- coding: utf-8 -*-

require "chasen.o"
#Chasen.getopt("-F", ‘(%BB %m %M)\n’, "-j")
Chasen.getopt("-F", ‘(%BB %m %M)\n’, "-i", "w")
puts Chasen.sparse("こんにちは。")
puts Chasen.sparse("今日はいい天気です。こんにちは。")

実行結果は次の通り。

(感動詞 こんにちは こんにちは)
(句点 。 。)
EOS
(副詞可能 今日 今日)
(係助詞 は は)
(自立 いい いい)
(一般 天気 天気)
(助動詞 です です)
(句点 。 。)
(感動詞 こんにちは こんにちは)
(句点 。 。)
EOS

関連書籍


関連リンク

JDKアップデート後のNetBeans設定変更

JDKアップデート後はNetBeansの設定を変更する必要があります。NetBeans のインストールディレクトリを%NETBEANS_HOME%とすると、%NETBEANS_HOME%\etc フォルダにあるnetbeans.confを修正します。このファイルに指定されているnetbeans_jdkhome の値を変更します。

netbeans_jdkhome=”C:\Progr~1\Java\jdk1.6.0_19″

ダーツ

久しぶりにやった。手を伸ばす、狙いをつける、ぱっと手を離す、といったあたり気をつけてできるようになりたい。