リンク: [ホーム] [自己紹介] [リンク集] [アルバム] [ソフトウェア] [発表文献] [その他]

まさおのChangeLogメモ / 2006-03

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2006-03-31 Fri

* Xming

http://xming.sf.net/
Cygwin/Xをcygwin.dllぬきでインストールできるようにしたもの。

これは使いやすい!!

が、以前から気になっていたクリップボードでのカット&ペーストが、中
国語の文字列になってしまう問題は解消していない。これはどうやらXWin
自体の問題くさい。

http://www.bookshelf.jp/2ch/unix/1055250582.html#410 の解説が大変
参考になる。

410 403sage 03/07/15 23:07
    何が問題なのは判明したので報告
    --------------------
    問題点:
    Win -> X の方向にコピーする際、Xutf8TextListToTextProperty(...,
    XCompoundTextStyle, ...) でUTF-8文字列から CompoundText を作成するが、
    GB 2312-80 と JIS X 0208-1983 に共通する文字 (ひらがな、カタカナ) や
    Unificate された漢字が中文の文字集合 (GB 2312-80) として変換されてしま
    う。
    また、X 側でクリップボードへコピーを行なうと、自動的に Win 側へもコピー
    し、これを X 側でペーストしようとすると Win -> X へ変換作業が入るため、
    見た目上 X -> X であっても同様の問題が発生する。
    X -> Win の方向では Win の MultiByteToWideChar(CP_UTF8, ...) が適切に
    処理するので問題は発生しない。

    例:
    コピーした文字: "あいう"
    UTF-8 : 0xe3 0x81 0x82 0xe3 0x81 0x84 0xe3 0x81 0x86
    CompoundText : 0x1b 0x24 0x28 0x41 0x24 0x22 0x24 0x24 0x24 0x26
    CompoundText の最初の 4byte は、"ESC $ ( A" であり、これは G0 に
    GB 2312-80 を指示するという意味。

411 403sage 03/07/15 23:08
    解決方法:
    1. GetClipboardData(CF_UNICODE) ではなく、CF_TEXT で sjis のままデータ
    を取得し、これを XmbTextListToTextProperty() で CompoundText にする。

    2. Xutf8TextListToTextProperty(..., XCompoundTextStyle, ...) で
    UTF-8 から CompoundText を作成する際、LC_CTYPE を参照し、Unificate
    されている文字は適切な文字集合を優先する。
    例えば、GB 2312-80 と JIS X 0208-1983 の両方に適合する場合、
    LC_CTYPE が ja_JP.eucJP の場合は JIS X 0208-1983 を、zh_CN.GB2312
    の場合は GB 2312-80 を文字集合として指示、というように変換する。

    3. X アプリがクリップボードを参照する際、XUTF8StringStyle のスタイルを
    request する。

→この後の解決策に載っている、LC_CTYPE環境変数に ja_JP.UTF-8 を指定
するやりかたでうまくいくようになった。。。

万歳!!

ちなみに、XorgのCVSリポジトリ内での、winclipboard関連のコードは以
下にある:

xc/programs/Xserver/hw/xwin

念のため、コードを追った際の情報を残しておくと、、、

_lcLoader にて、各言語設定に適したコード変換ルーチンなどを適切に変
換するらしい。。。

xc/lib/X11/lcUTF8.c

にUTF-8ロケールの場合の実際のコード変換ルーチンは、all_charsetsと
して定義されている。$LANGなどのロケール個別設定で優先するコードを
指定しない限り、これを順番に呼び出し、違反しなければその文字コード
に変換するみたい。その順番は:

 ...
  { "JISX0201.1976-0", NULLQUARK,
      jisx0201_mbtowc, jisx0201_wctomb
  },
  { "TIS620-0", NULLQUARK,
      tis620_mbtowc, tis620_wctomb
  },
  { "GB2312.1980-0", NULLQUARK,
      gb2312_mbtowc, gb2312_wctomb
  },
  { "JISX0208.1983-0", NULLQUARK,
      jisx0208_mbtowc, jisx0208_wctomb
  },
  { "JISX0208.1990-0", NULLQUARK,
      jisx0208_mbtowc, jisx0208_wctomb
  },
 ...

となっていて、jisx0208系よりも先にGB2312が来るために、デフォルト設
定ではGB2312系への変換が行われる模様。

ま、素直に$LC_ALL設定を行うのが正しい対応な気がする。(この順番を
入れ替えるのはちょっと面倒そうなので…)

* TREC 2005 Spam Track Overview

Overview論文。

・書誌事項:
Gordon Cormack; Thomas Lynam: TREC 2005 Spam Track Overview.
Proceedings of TREC 2005, 2005.

・概要:
TREC 2005 Spam Trackの説明。

評価指標は以下:
→誤分類率(hm%, sm%)
→誤分類率の対数オッズ平均(logit): lam%
→ROC(Receiver Operating Characteristics) カーブの上側の面積: ROCA

2006-03-30 Thu

* NII会計システム

10日締め、25日振込み。

2006-03-29 Wed

* 会津・待ち合わせ

新幹線・西乗り換え口で待ち合わせ。

こちらから大宮方面へ後ろ寄りに乗ればオーケー。

* 科研・研究実績報告・概要

本課題は、WWW上で提供されている多種多様なコンテンツを分かりやすく
提示するのに必要な「サイトマップ」の効率的な構築と提供が行える環境
の開発を目指すものである。

研究初年度にあたる平成17年度では、以下を中心に検討を進めた。

1)既存の用語体系に存在する構造の調査・分析

既存の用語体系として、書籍の分類体系であるNDC日本十進分類表、WWW上
の情報を網羅するWebディレクトリODP、日本語情報処理で蓄積されたNTT
語彙体系など、複数の用語体系に存在する構造を元に、それぞれの構造を
把握し、構造の共有と利用に必要な要素の洗い出しを進めた。類似用語体
系間の関連を分析するため、NDC9版とNDC8版との構造の調査や、日英対訳
辞書における用語体系の構造の調査、分析を行った。また、国立国会図書
館で提供されている件名標目NDLSHの調査、検討もあわせて行った。

2)サイトマップ構築・検出手法の開発

既存のサイトマップの分析の一環として、現在Web上で提供されているサ
イトマップを高精度で検出する手法の開発を進めた。

3)日本のウェブサイト空間に存在する構造の調査・分析

WWW空間に蓄積された情報の全体像を把握するため、情報検索評価プロジェ
クトNTCIR-5 WEBナビゲーション指向検索タスク用に収集された1TB・1億
ページにおよぶ文書群の構成を調査、分析した。既存のウェブサーチエン
ジンにおけるページ収集との比較検討のため、Web APIを利用した実態調
査により、その全体像の調査、分析を行った。

2006-03-28 Tue

2006-03-27 Mon

2006-03-26 Sun

2006-03-25 Sat

* MovableType on research

・BerkeleyDBインストール
% tar zxvf db-4.4.20.tar.gz
% cd db-4.4.20/build_unix
% env CC=gcc ../dist/configure --prefix=$HOME
% make
% make install

・DB_Filesインストール
% env DB_FILE_INCLUDE=$HOME/include DB_FILE_LIB=$HOME/lib perl Makefile.PL LIB=$HOME/lib/perl5 INSTALLMAN3DIR=$HOME/man/man3
% make CC=gcc LD=ld CCCDLFLAGS= OPTIMIZE=
% make install

・MT設定
% cd $MTDIR/extlib
% ln -s ~/lib/perl5/sun4-solaris .
% cd $MTDIR
% mkdir ./data/
% cp mt-config.cgi-original mt-config.cgi

CGIPath, DataSource をそれぞれ編集した。

research 環境のメールが sendmail ではうまく動いていないようなので、
Mail::Sendmail で直接 SMTP を叩く設定を追加。
cf. http://www.sixapart.com/movabletype/kb/notifications/using_smtp_inst.html
% cd $MTDIR/extlib
% tar zxvf /tmp/Mail-Sendmail-0.79.tar.gz
% mv Mail-Sendmail-0.79/ Mail

* MT

mixiで質問するかも…なこと:

日本語版MTをインストールしたのですが、その環境で日英両言語用の2
つのブログを提供することは可能でしょうか?
# 管理画面などは日本語でも構わないのですが。。。

2006-03-24 Fri

* 日本HPの営業から電話

断りの理由を聞かれた。

2006-03-22 Wed

2006-03-20 Mon

2006-03-18 Sat

2006-03-17 Fri

2006-03-15 Wed

2006-03-14 Tue

2006-03-13 Mon

2006-03-12 Sun

* URL memo

- 俺人生の勝ち組、モテモテ~ - 職場でのWikiとか課題管理システムとか: delicious users
- @nifty:デイリーポータルZ:だれでもまんがが描ける機: delicious users
- guesswork: delicious19 users
guesswork classicは、「ややこしいフレームワークは使いたくない」けど「なんでもありになりがちなPHPスクリプトをスッキリさせる指針が欲しい」と考えている人のための軽量なPHP4用フレーム

* Emacs21+format-time-string

cf. [2004-11-10]
Turbolinuxのロケールがおかしいのだとは思うが、一応確認する。

        (editfns.c) (strftime.c)
format-time-string -> emacs_memftimeu -> emacs_strftimeu

で、こいつは strftime を呼ぶわけ。

GLIBC内の strftime は mbrlen でマルチバイトを読み飛ばしている模様。
mbrlen の内容は以下だけ:

return __mbrtowc (NULL, s, n, ps ?: &internal);

というわけで __mbrtowc() を見る。

fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE));

/* Do a normal conversion. */
inbuf = (const unsigned char *) s;
endbuf = inbuf + n;
if (__builtin_expect (endbuf < inbuf, 0))
  endbuf = (const unsigned char *) ~(uintptr_t) 0;
status = DL_CALL_FCT (fcts->towc->__fct,
                      (fcts->towc, &data, &inbuf, endbuf,
                       NULL, &dummy, 0, 1));

こんな感じでロケール内の情報を見て、LC_CTYPE 内の towc を見ている
模様。

2006-03-11 Sat

* NTCIRへの提案アイデア

・OSSコミュニティとの連携

(背景説明)
Namazu Projectに1998〜2001あたりに参加していて、その動向を見てきた。
昔はNamazuくらいしかなかったが、Namazuの活動が停滞すると、ここ2・3
年でRast,Estraiyer,Senといった新しいツールも出てきた。しかし、日本
語向けのOpen Source Softwareによる検索エンジンでTF-IDFといった(超)
古典的モデル以外に積極的に取り組んでいるところは少ないように思える。
近代的なIRモデルや、文書長やリンク、アンカーテキストのランキングへ
の反映といった観点があまり見られないのは、NTCIRをはじめとする先端
的なIR手法の展開との乖離という点でとても残念(OSSを利用している一
般社会にとっても、情報研究者から見ても)。

また、TRECにおいては古くはSMART、近年ではLemur,TerrierなどのOSS検
索エンジンが学術の場で開発され、OSSとして社会にも広く提供されてき
たのが、IRコミュニティ全体の大きな前進につながっているのではないか。

一方で、学術とは近いものの、少し違った分野であるOSSの動向を見てみ
ると、基本的には企業・大学といった所属とは無関係に、個人がボランタ
リーに活動しているのがよく分かる。そもそも所属が情報学、ITとは無関
係の人も多い。

(提案)
こういった点をふまえた上で、NTCIR側でできることとして、参加資格に
ついての再検討はどうだろうか。
 
NTCIRでは従来暗黙のうちに、参加資格を所属のしっかりした(身元のはっ
きりした)人、という形で規定しているようだ(学生さんには研究代表者
として指導教官を設定するようお願いするなど)。

この流れだと、手持ちのOSSがあり、IR手法には個人的に興味を持ってい
るものの、所属組織とは無関係にボランタリーな活動をしている個人が参
加、利用しづらいという傾向を感じる。既存のテストコレクションで評価
をするという、研究目的利用の方だけでも、なにか個人の資格で気軽に
(というと大袈裟かもしれないが)利用できる方策を考えていった方がお
互いのコミュニティにとってうれしいだろう。

・教育実践への応用

(背景説明)

図書館情報学の学部教育に「情報検索演習」という授業がある。これは、
いわゆるサーチャーの基礎という感じで、サーチャーに必要とされる実践、
つまり検索システムの概念とその利用法を学ぶ。私大などの非常勤でこの
授業を教えている話を聞いてみると、意外なほどこの教育環境は整ってい
ない。教育用CD-ROMをベースにその範囲内 + Web上のリソースを対象に授
業をやっているようだ。

CD-ROMに関していえば、内容が小規模(数千件)にとどまっている点が不
便で、実践的なAND/ORといった課題を与えても、そもそも絞りこむほどの
情報量が無いので学生に演習させる課題に四苦八苦する。一方でWeb上の
グーグルなどは規模の点では文句が無いが、1)その動作原理には不明な点が
多く、2)常に動的に更新されているDBであるため、課題を設定してもそ
の適合文書が無くなる、発見順位が変更される、3)サービスの仕様が突然
変わってしまったり、サービスそのものが無くなったり、といった問題が
出てくる。

また、演習の際に使う検索課題は、適切なものを探すのが難しい。特に難
易度を考慮して、例題、課題、試験などを課そうとすると、対象とするDB
である程度の検索を実地におこない、総合的に判断する必要がある。

(提案)
例えば、NTCIRで提供している「適合判定済の課題集合」は量としてもあ
る程度あり、それだけで、授業を運営する立場でうれしいようだ。さらに、
課題だけでなく、課題毎の判定結果があれば、課題の難易度の参考になる。

さらに、「静的な文書セット」もあることで、先に挙げた弊害なく、実践
的な演習ができる可能性が広がるようだ。できれば、ベースラインの検索
システムの提供があれば、そのまま授業での活用ができる。

ちなみに、課題集合は単体だけなら、今でも入手可能(NTCIR-4,5では
Evaluation Results CD-ROMに入れ、それをWebで公開)。

一方で、文書セットやベースラインシステムの提供を考えた場合、これら
を授業等での課題・試験に応用することは可能だろうか。また、「教育目
的利用」という考え方はどれくらい現実的だろうか。

ポイントは、おそらく覚書契約の範囲の明確化と、IR教育の実践コミュニ
ティとの連携、という点にあるのではないか。

・利用者コミュニティとの交流・連携(利用者コンクール)

教育コミュニティとの連携とも関連するのだが、利用者から見たIRシステ
ムはブラックボックスとなっていて、どういったシステムをどう使い分け
るのか、といった問題は利用者コミュニティでの課題となっている。

藤井先生によるチュートリアルなどを活用した特許情報利用者コミュニティ
との連携は非常に示唆に富んでいて、実際の利用者がどうIRシステムをど
う捉えているのかを意見交換する場を作り、研究コミュニティと連携させ
ていくかは今後のNTCIR運営にとっても重要と考える。

まず第一歩として、利用者コミュニティとIR研究コミュニティの交流のた
めに、双方から代表的な方に講師をお願いしてセミナーを開いていくといっ
た方式はどうだろうか。

一つの手は、以前Gooが行っていた「検索の鉄人」のような、利用者の検
索行動を評価し、表彰するような場を作っていくことではないか。また、
コンクールの直接の運営は利用者コミュニティに任せることも可能。

連携を深めるという意味でいえば、利用者コミュニティが興味を持って、
その立場のまま参加できるようなタスクがあると良いのかもしれない(タ
スク設計はno idea)。

* mnews vs mutt

よく見たら、両者ともreaddirしているようだ…。

mutt:
main -> mx_open_mailbox -> mh_read_dir -> maildir_parse_dir (opendir, readdir) -> maildir_parse_entry

よぉくコードを追ってみたところ、悪いのはreaddirではなく、
maildir_parse_entryでフォルダ内のメールを全て読み込んでいる実装の
ようだ。

2006-03-10 Fri

2006-03-09 Thu

2006-03-08 Wed

* ntcir-MLアーカイブ

一通り終了。

[MHonARCでHTML化]
・majordomoのアーカイブからファイルを取得
・rubyスクリプトでアーカイブファイルからmboxフォーマットに置換
ruby ~/z.rb ~/Mail/ntcir-archive/[0-9]* > mbox.20060307
・スパムやウィルスなどは手で削除
・MHonARCリソースファイルを作成(example/{date,blog}.mrcを参考に)
・mhonarcコマンド実行
mhonarc -msgsep '^Received:' -rcfile ntcir.mrc mbox.20060307
・メッセージの一部に残っていたウィルスアラートなど不要メールを除去
mhonarc -rmm 110-113 116 117

[Procmailで新着メールを自動追加]
・~/.procmailrcに設定を追加
:0 c
*^Sender: owner-ntcir@nii.ac.jp
| tee -a $HOME/cvswork/ntcir-public_html/archive/ntcir/mbox.cur | $MHONARC -add -rcfile $HOME/cvswork/ntcir-public_html/archive/ntcir/ntcir.mrc -outdir $HOME/cvswork/ntcir-public_html/archive/ntcir

[ウェブサーバに自動転送設定(Rsync)]
・ntcadm@researchにssh自動ログインできるよう設定
~ntcadm/.ssh2/{authorization,id_dsa_openssh.pub}
・arnoのcronに以下を追加(毎時一回にまとめて転送)
14 * * * * cd ~/cvswork/ntcir-public_html/archive/ntcir/ && rsync -e "ssh -i $HOME/.ssh/id_dsa_forresearch" -a --delete-excluded --exclude=CVS . ntcadm@research:public_html/archive/ntcir/

2006-03-07 Tue

* MHonARC for ntcir@nii.ac.jp

とりあえず、以下のファイルがあることは分かった:

get ntcir ntcir.20001213
get ntcir ntcir.20001220
get ntcir ntcir.20010107
get ntcir ntcir.20010118
get ntcir ntcir.20010121
get ntcir ntcir.20010219
get ntcir ntcir.20010301
get ntcir ntcir.20010305
get ntcir ntcir.20010306
get ntcir ntcir.20010313
get ntcir ntcir.20010321
get ntcir ntcir.20010330
get ntcir ntcir.20010406
get ntcir ntcir.20010418
get ntcir ntcir.20010426
get ntcir ntcir.20010430
get ntcir ntcir.20010521
get ntcir ntcir.20010615
get ntcir ntcir.20010712
get ntcir ntcir.20010719
get ntcir ntcir.20010722
get ntcir ntcir.20010802
get ntcir ntcir.20010924
get ntcir ntcir.20010928
get ntcir ntcir.20011011
get ntcir ntcir.20011106
get ntcir ntcir.20020510
get ntcir ntcir.20020515
get ntcir ntcir.20020710
get ntcir ntcir.20020715
get ntcir ntcir.20020718
get ntcir ntcir.20020719
get ntcir ntcir.20020813
get ntcir ntcir.20020830
get ntcir ntcir.20021015
get ntcir ntcir.20021016
get ntcir ntcir.20021031
get ntcir ntcir.20021105
get ntcir ntcir.20021116
get ntcir ntcir.20021120
get ntcir ntcir.20021209
get ntcir ntcir.20021212
get ntcir ntcir.20021221
get ntcir ntcir.20021224
get ntcir ntcir.20021228
get ntcir ntcir.20030108
get ntcir ntcir.20030116
get ntcir ntcir.20030207
get ntcir ntcir.20030226
get ntcir ntcir.20030301
get ntcir ntcir.20030304
get ntcir ntcir.20030305
get ntcir ntcir.20030307
get ntcir ntcir.20030313
get ntcir ntcir.20030317
get ntcir ntcir.20030322
get ntcir ntcir.20030326
get ntcir ntcir.20030328
get ntcir ntcir.20030331
get ntcir ntcir.20030401
get ntcir ntcir.20030409
get ntcir ntcir.20030411
get ntcir ntcir.20030417
get ntcir ntcir.20030506
get ntcir ntcir.20030507
get ntcir ntcir.20030511
get ntcir ntcir.20030516
get ntcir ntcir.20030824
get ntcir ntcir.20040213
get ntcir ntcir.20040302
get ntcir ntcir.20040307
get ntcir ntcir.20040324
get ntcir ntcir.20040326
get ntcir ntcir.20040327
get ntcir ntcir.20040329
get ntcir ntcir.20040330
get ntcir ntcir.20040331
get ntcir ntcir.20040401
get ntcir ntcir.20040406
get ntcir ntcir.20040407
get ntcir ntcir.20040408
get ntcir ntcir.20040413
get ntcir ntcir.20040416
get ntcir ntcir.20040417
get ntcir ntcir.20040418
get ntcir ntcir.20040501
get ntcir ntcir.20040502
get ntcir ntcir.20040503
get ntcir ntcir.20040505
get ntcir ntcir.20040509
get ntcir ntcir.20040512
get ntcir ntcir.20040515
get ntcir ntcir.20040516
get ntcir ntcir.20040518
get ntcir ntcir.20040521
get ntcir ntcir.20040522
get ntcir ntcir.20040523
get ntcir ntcir.20040525
get ntcir ntcir.20040526
get ntcir ntcir.20040616
get ntcir ntcir.20040809
get ntcir ntcir.20040810
get ntcir ntcir.20040822
get ntcir ntcir.20040826
get ntcir ntcir.20040915
get ntcir ntcir.20040928
get ntcir ntcir.20041001
get ntcir ntcir.20041004
get ntcir ntcir.20041020
get ntcir ntcir.20041024
get ntcir ntcir.20041105
get ntcir ntcir.20041118
get ntcir ntcir.20050130
get ntcir ntcir.20050301
get ntcir ntcir.20050330
get ntcir ntcir.20050405
get ntcir ntcir.20050420
get ntcir ntcir.20050802
get ntcir ntcir.20050810
get ntcir ntcir.20050822
get ntcir ntcir.20050905
get ntcir ntcir.20050912
get ntcir ntcir.20050926
get ntcir ntcir.20050930
get ntcir ntcir.20051028
get ntcir ntcir.20051110
get ntcir ntcir.20051203
get ntcir ntcir.20051206
get ntcir ntcir.20051208
get ntcir ntcir.20060208
get ntcir ntcir.20060220
get ntcir ntcir.20060301
get ntcir ntcir.20060307

これらから、単純に以下のようなスクリプトでメール本文のみ抜き出し:

ARGV.each do |file|
   open(file) do |io|
      io.each do |line|
         #p line
         break if line =~ /^$/
      end
      body = io.read
      if body =~ /\A\s*--\n\n/
         puts body.sub(/\A\s*--\n\n/, "")
      end
   end
end

これの出力ファイルをmhonarcにかける。
(MHonARCの説明は以下のサイトが総合的で参考になる)
http://www.ki.nu/software/MHonArc/

% mhonarc --msgsep '^Received:' -spammode z

* 日本のWebサイトの網羅的収集、蓄積および保存に関する調査報告

http://www.ndl.go.jp/jp/aboutus/bulkresearch2005index.html
NW1000G-04に参考になりそうな、国立国会図書館ウェブアーカイブプロジェ
クトによる調査報告。

...平成17年3月の時点で日本におけるWebデータ総量は18.4TB、ファイ
ル総数は4億5000万ファイルであると推定...

2006-03-06 Mon

2006-03-05 Sun

2006-03-03 Fri

* URL memo

- Yggdrasillオープンソース -メディアフュージョン: delicious7 users
初めての純国産 XMLDB「Yggdrasill(イグドラシル)」が念願のオープンソース化!
サイクリング走行距離メーター
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12