たつをの ChangeLog : 2008-01-20

「Introduction to Information Retrieval」[1]の第二章
(次回の輪講の範囲)の2.2.4に出てくるステミング (Stemming) の
話題をまとめました。

§

英語などの欧米系の言語では、
意味的には同じ単語が語形変化により表層文字列が異なることがある。
例えば、"retrieves", "retrieved", "retrieving", "retrieval"
などで[2]、実用上これらを同じ意味のものと見なし
インデックス作成時に同じ単語として扱いたいという要求がある。
ステミング (stemming) はこのような語形変化を取り除き
同一の単語表現に変換する処理である。

ステミングの手法として、
ポーターのアルゴリズム (Porter's algorithm) [3]がよく知られている。
ポーターのアルゴリズムは、経験則に基づく変換ルールを持ち、
それらを数段階で適用していくという方法でステミングを行う。
ルールの例と変換例を図に示す[1]。

RuleExample
SSES → SScaresses → caress
IES → Iponies → poni
SS → SScaress → caress
S → ""cats → cat

他のステミング手法として、
Lovins[4]、Lancaster (Paice/Husk)[5] などがある。

なお、ポーターのアルゴリズムを使った Perl Module が CPAN にある。
Perl な人はお試しあれ。
http://search.cpan.org/perldoc?Text::English
サンプルコード:
use Text::English;
@words = qw( cats went retrieval );
@stems = Text::English::stem( @words );
print "@stems\n";
# 実行結果: cat went retriev


参考文献:
[1] Christopher D. Manning, Prabhakar Raghavan and Hinrich Schu"tze:
  Introduction to Information Retrieval, Cambridge University Press, 2008.
  (http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html)
[2] 北研二, 津田和彦, 獅々堀正幹: 情報検索アルゴリズム,
  共立出版, 2002.
[3] Porter Stemming Algorithm
  http://tartarus.org/~martin/PorterStemmer/
[4] The (un)official Lovins stemmer page
  http://www.cs.waikato.ac.nz/~eibe/stemmers/
[5] The Lancaster Stemming Algorithm
  http://www.comp.lancs.ac.uk/computing/research/stemming/

(間違いや補足などありましたら下記フォームからご連絡頂けると幸いです)

「Introduction to Information Retrieval」[1]の第二章
(次回の輪講の範囲)の2.2.2に出てくるストップワード (stop word) の
話題をまとめました。

§

ストップワード (stop word) とは、
検索にほとんど役に立たないためインデックス作成時に除外する
単語のことである。

検索対象文書に出現するすべての単語をインデックスとするのは
無駄な面が多い。
例えば、「て」「に」「を」「は」などの助詞や
英語の冠詞・前置詞 (a, the, in, of) はほぼすべての文書に出現する。
そのため、
postings list が巨大になり格納スペースや処理時間に悪影響を与え、
その上、
検索結果も大量となり検索要求を満たす結果を得るのが困難となる。
そこで効率化のために、
これらの語(ストップワード)を検索インデックスから外すという
措置を取ることが多い。

ウェブ検索では、
ストップワードを含む表現を漏れなく検索できるように
一般にストップワードに対してもインデックスを行っている。
ただし、ユーザ入力インタフェース部分で
デフォルトでストップワードをはじく処理を行っていることがある[1]。

なお、ストップワードのリストをストップリスト (stop list) を呼ぶ。
ネットで入手できるストップリストとして SMART [2]のものがある[3]。


参考文献:
[1] Christopher D. Manning, Prabhakar Raghavan and Hinrich Schu"tze:
  Introduction to Information Retrieval, Cambridge University Press, 2008.
  (http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html)
[2] G. Salton: The SMART retrieval system. Prentice-Hall, 1971.
  (未チェック)
[3] SMART stop list
  http://jmlr.csail.mit.edu/papers/volume5/lewis04a/
  a11-smart-stop-list/english.stop


その他のストップリストの例:
- DBIx::FullTextSearch::StopList
  http://bulknews.net/lib/doc-ja/StopList.pm
- Stop List
  http://www.thebananatree.org/stoplist.html
- Marvin Humphrey / Lingua-StopWords - search.cpan.org
  http://search.cpan.org/~creamyg/Lingua-StopWords/
  ↑追記。情報感謝!

(間違いや補足などありましたら下記フォームからご連絡頂けると幸いです)
この記事に言及しているこのブログ内の記事

定期購読している TOP POINT の1月号の簡単な紹介です。
昨年のうちに届いていたのですが、
いろいろあって目を通すのが遅くなってしましました。

いつものように、
紹介されている本のリストをこちらにまとめました。
- トップポイントで紹介された本 - 2008.1
  http://astore.amazon.co.jp/toppoint-books-22?%5Fencoding=UTF8&node=4

波乱の時代(上)
波乱の時代(下)
BCG流 成長へのイノベーション戦略
イタリア式ブランドビジネスの育て方
100 Inc.
マクドナルドは不動産開発業者なのだ!などなど。
フェデックスの創業者フレリック・スミスの言葉:
「私にとってリーダーシップとは、一言で言えば、部下の人たちから
仕事に対する自主的な姿勢を引き出すことだ」。
その1人が30万人を動かす!
インフルエンサー・マーケティング。
事例:P&G による赤ちゃんの夜更かしが多い実態を明らかによる調査
→マスコミなど各所で話題に
→連動して赤ちゃんの眠りを助けるパンパース!
汗出せ、知恵出せ、もっと働け!
本質を見抜く「考え方」
ユダヤの訓え「大物」になる勉強法
タルムードは重要![2003-08-10-4]
上司の「考えておく」は、考える気がない。
『十八史略』に学ぶ人生の法則

3月17日から、東京大学駒場キャンパスで
言語処理学会第14回年次大会が開催されます。

- 第14回年次大会ホームページ
  http://nlp2008.anlp.jp/
-- チュートリアル: 2008年3月17日(月)
-- 本会議開催日: 2008年3月18日(火)〜3月20日(木)
-- ワークショップ: 2008年3月21日(金)
-- 場所 http://www.u-tokyo.ac.jp/campusmap/map02_02_j.html

プログラムも発表されています。
私は3月20日に共著者の発表が2件あるので、
休日出勤で参加しますよ!
他の日も可能な限り参加して聴講する予定。
この記事に言及しているこのブログ内の記事

chalow 用の ChangeLog パーザを perl module 化して、
Text::Chalow::Parser とし、CodeRepos[2007-12-29-3]にアップしました。

- /lang/perl/Text-Chalow-Parser/ - CodeRepos::Share - Trac
http://coderepos.org/share/browser/lang/perl/Text-Chalow-Parser/

ベースは chalow のパッケージ付属の ChangeLogReader.pm です。
今後、chalow では Text::Chalow::Parser を使っていきます。

とりあえずな SYNOPSIS を張っておきます。適当すぎ。
use Text::Chalow::Parser;

my $rcp1 = new Text::Chalow::Parser();
open(F, "ChangeLog");
$rcp1->read_file(\*F);

my $rcp2 = new Text::Chalow::Parser(stop_date => "2008-01-01");
$rcp2->parse_string(\$changelog_string);

How to access items in ChangeLog:
see debug_print() in Parser.pm

恵比寿ガーデンプレイスの東京都写真美術館(http://www.syabi.com/)へ。
とりあえず今やっている展覧会を全部みてきました。

- 東京都写真美術館 > 日本の新進作家 vol.6 スティル/アライヴ
  http://www.syabi.com/details/sakka_vol6.html
  写美
  新進作家4人による展覧会。屋代敏博のくるくるまわる「回転回」
  (http://www.kaitenkai.com/) が楽しかった。
  メイキングビデオがあったのでじっくり観てました。

- 東京都写真美術館 > 土田ヒロミのニッポン
  http://www.syabi.com/details/tuchida.html
  写美
  昭和な写真がいろいろ。群集の写真がインパクトあるよな。
  「ウォーリーを探せ」じゃないけど見入ってしまいます。
  (友の会会員なので無料)

- 東京都写真美術館 > 文学の触覚
  http://www.syabi.com/details/bungaku.html
  写美
  文字とかテキストとかをテーマにしたメディアアートの展覧会です。
  ちょうど出品アーティストによるギャラリートークをやっていて
  にぎわっていました。
  (友の会会員なので無料)

たつをの ChangeLog
Powered by chalow