更新MacPortsメモ

MacPortsのportで更新した内容に関わるメモです。

音声関連 (audio)

音声対話エージェントのMMDAgentは、32ビットのCarbonアプリとしてLionでも動作します。ただし、USBのヘッドセットを使った場合は普通でしたが、MacBook Airの内蔵スピーカでしゃべらせると、ビルド方法を公開した方が指摘していたように変な音声になってしまいました。音声合成システムOpen JTalk単体のport (open_jtalk) では問題ないのですが、惜しいですね。
MMDAgent-1.1をOS X Lionで動かすMacPorts - 自然言語処理 on Mac
http://keny.b.sourceforge.jp/2011/08/17/mmdagent-macosx/
Open JTalkの合成音声をJuliusで音声認識 - 自然言語処理 on Mac
日本語音声合成システムOpen JTalkと音声認識エンジンJuliusのMacPorts - 自然言語処理 on Mac

音声認識エンジンのJuliusのport (julius) が対象としているバージョン4.2は、語彙数の設定に関して不具合があるようです。いずれ修正されることでしょう。
Julius-4.2のMacPortsで日本語音声認識 - 自然言語処理 on Mac

Aquaアプリ (aqua)

Cocoa Emacsのport (emacs-app) に、日本語入力の際に便利なインラインパッチと、表示が波打つ問題に対応したフォントパッチを適用するオプションが追加してあります。なお、この波打ち現象に、MacEmacs JPのメーリングリストでは、ピコピコ問題という名前がついています。
Emacs-23.3+IMEパッチ+フォント設定 - 自然言語処理 on Mac
http://sourceforge.jp/projects/macemacsjp/svn/view/inline_patch/trunk/
Cocoa Emacs のピコピコ問題 (Macemacsjp-users 1678) - MacEmacs JP - OSDN
portのオプションは次のように確認できます:

$ port variants emacs-app
emacs-app has the variants:
   fullscreen: Add fullscreen patch from http://gist.github.com/291150 as mentioned in http://www.sanityinc.com/full-screen-support-for-cocoa-emacs-on-osx
   inline: Add inline patch from MacEmacsJP
   jpfont: Add Japanese font patch from MacEmacsJP
   patches: Add all patches: fullscreen, inline and jpfont
     * conflicts with fullscreen inline jpfont
   universal: Build for multiple architectures

上の説明にあるように、+patchesオプションを指定すると、フルスクリーン、インライン、フォントのすべてのパッチがあてられます。フルスクリーンは、M-x ns-toggle-fullscreenで切り替わるので、適当なキー操作に割り当てておくと便利です。なお、このフルスクリーンは、Mac OS X Lionでいうところのフルスクリーンではありません。

Javaアプリ (java)

Apacheから提供されているLuceneベースのSolrは非常に多機能な検索システムです:
Solr+Velocityの多機能検索デモ - 自然言語処理 on Mac
Solr+lucene-gosenで日本語検索 - 自然言語処理 on Mac
Solritas(Solr+Velocityデモ)の日本語化 - 自然言語処理 on Mac
port (apache-solr) は、現時点の最新版3.4.0に対応し、日本語対応のオプション+jaが追加されています。+jaが指定されると、Java版日本語形態素解析エンジンlucene-gosenのportがインストールされ、次にあるように'solr-ja'コマンドを利用して日本語文書を扱うことができます:

$ port notes apache-solr +ja
apache-solr has the following notes:
  To try apache-solr, run 'sudo solr' and open http://localhost:8983/solr/browse.
  To store sample documents, run 'cd /opt/local/share/java/apache-solr-3.4.0/example/exampledocs && ./post.sh *.xml'.
  
  For Japanese texts, please run 'sudo solr-ja' instead of 'sudo solr'.
  See /opt/local/share/java/apache-solr-3.4.0/example/solr-ja.

なお、lucene-gosenのportは、デフォルトでIPAdicをインストールしますが、NAIST CahSen辞書に変更するオプション(+naist)もあります。

Hadoopのport (hadoop) をインストールすると、hadoopユーザが登録されますが、Lionではログイン画面にユーザとして表示されてしまいます。これを非表示にするにはどうしたらよいのでしょうか…?
Hadoop安定版0.20.203.0 - 自然言語処理 on Mac
MacPortsでHadoopを動かす - 自然言語処理 on Mac

機械学習ツール (math)

自然言語処理に欠かすことの出来ない機械学習ツールですが、実に様々な手法と実装が提案され公開されています。
自然言語処理・機械学習ツールのMacPortsを登録 - 自然言語処理 on Mac
日本語の単語分割 - 自然言語処理 on Mac
この中で、高速線形分類器peccoのデフォルトのデータ構造がdartsではなく、よりコンパクトなdarts-cloneを利用するように変更されています。
pecco - C++ library for efficient classification with conjunctive features
Google Code Archive - Long-term storage for Google Code Project Hosting.

また、オンライン学習ライブラリOLL (oll) とsofia-ml (Suite Of Fast Incremental Algorithms for Machine Learning) のportが加わりました。
Google Code Archive - Long-term storage for Google Code Project Hosting.
Google Code Archive - Long-term storage for Google Code Project Hosting.

テキスト処理 (textproc)

SVMに基づく日本語係り受け解析器CaboChaのport (cabocha) は、UTF-8MeCabの利用を前提としたバージョン0.60に対応しました。
Google Code Archive - Long-term storage for Google Code Project Hosting.

NICTが公開している意見(評価表現)抽出ツールのport (extractopinion) は、モデル作成ツールを含むVersion 1.1に対応しました。PerlのText::CSV_XSモジュール (p5-text-csv_xs) が必要となります。
NICT公開の意見(評価表現)抽出ツールをMacで動かす - 自然言語処理 on Mac
意見(評価表現)抽出ツール
Text-CSV_XS-0.85 - Comma-Separated Values manipulation routines - metacpan.org
モデルデータ作成スクリプトmakemdl.shにパッチをあてる形で作成されたextractopinion-makemdl.shが利用できます:

#!/bin/sh


export LANG=C

dir=/opt/local/share/extractopinion-1.1

. $dir/conf.sh

export EXOPLIB=$dir/lib

cmd=`basename $0`

usage() {
  echo "Usage: $cmd [options] [csvfiles]"
  echo "Options: -h|--help            Show this message"
  echo "         -d|--dictionary dir  Specify the dictionary directory"
  echo "         -m|--model base_path Specify the base path of model files"
  echo "         -t|--tmpdir dir      Specify the temporary directory"
  exit -1
}

csvfiles=*.csv
model=./model

while test -n "$1"; do
    case "$1" in
        -h|--help)       usage ;;
        -d|--dictionary) dictionary="$2"; shift 2 ;;
        -m|--model)      model="$2";      shift 2 ;;
        -t|--tmpdir)     TMPDIR="$2";     shift 2 ;;
        *)               csvfiles="$@";   break ;;
    esac
done

workdir=${TMPDIR}/extractopinion-$$
mkdir -p $workdir/tsv

for file in $csvfiles
do
  f=`basename $file .csv`
  perl -I $dir/lib $dir/makemodel/csv/csv2tsv.pl $file > $workdir/tsv/$f.tsv
done

cat $workdir/tsv/*.tsv > $workdir/data.tsv
cat $workdir/data.tsv  > $workdir/data_pol.tsv

$dir/_train.sh $model $workdir/data.tsv $workdir/data.tsv $workdir/data.tsv $workdir/data_pol.tsv $workdir/data.tsv
rm $workdir/data.tsv $workdir/data_pol.tsv
rm -rf $workdir

その他

universalビルドに対応してためにautoreconfを利用していた hts_engine_API, juman, open_jtalk, yamcha の各portは、通常ビルドの際にautoreconfを利用せずビルドの負荷を下げるように変更してあります。
重いMacPortsを軽くする - 自然言語処理 on Mac
JumanのMacPortsを登録しました - 自然言語処理 on Mac