ラベル Language Processing の投稿を表示しています。 すべての投稿を表示
ラベル Language Processing の投稿を表示しています。 すべての投稿を表示

2007/06/26

はてな × ジャストシステム

07/06/20 の CNET の話題。「読了、スレタイ…:日本語辞書ATOKに、はてなのキーワード5万語を採用」(その日にこの記事を書きはじめたんだけど、なんかバタバタしちゃって……)。

曰く、

ジャストシステムはてなは6月19日、ジャストシステムの日本語入力システム「ATOK 2007」で、はてなのブログサービス「はてなダイアリー」のユーザーが作成し共有するキーワード群「はてなダイアリーキーワード」のコンテンツを活用できるサービスで連携し、提供を開始した。(CNET の記事より引用)

……とのこと。

ジャストシステムの ATOK にアドオンで追加できる辞書ができましたよ……というプレスリリースなわけです。ジャストシステムの当該プロダクトの紹介ページ曰く、
はてなダイアリーキーワードのうち、アクセス数上位5万キーワード(2007年5月31日時点)を、ジャストシステムが辞書・省入力データ・電子辞典として登録したものです。ネットで生まれた流行語や日常語など、現在の世相を映し出すこれらキーワードをATOK 2007上において、スムーズに入力でき、そのキーワードの説明を参照することができます。(ジャストシステムのダウンロードページより引用)

……とのこと。過去をひもといてみると、「ATOK の機能を利用した「goo」の新検索サービス開始 〜ATOKがかしこくなると「goo」がかしこくなり、「goo」がたくさん利用されるとATOKがかしこくなる〜 」という 2005/10/27 のプレスリリースに行きついた。そういえばこの頃から、ジャストシステムは、こうしたいろんな試みに挑戦している。ジョルダンとの駅名変換辞書、東洋経済新報社との企業名変換辞書。そして、このはてなキーワードの採用。

この動きを進めていったところで、ATOK が爆発的に売れるようになるとか、一太郎が Microsoft Word のシェアを奪還する……なんてことはないだろうけど、顧客のニーズにあった製品開発をしていこうという姿勢がいい。駅名や企業名なんていうのは、よく「あ〜、なんでこんな簡単な変換ができないの?」って苛つくポイントになりやすい部分。まあ、これまでのかな漢字変換装置からしてみれば、コロケーション(語連接)とか語彙の区切りの精度なんての(ずいぶん前に TV CM で話題になった「入れた手のお茶」みたいなの)が注力ポイントだったんだろうけど(もちろん固有名詞の収集も手抜きはしてなかったと思うけど)。

ただ、こうした単一企業による努力には、限度がある。駅なんていうのはそんなに数が大規模に増減するようなものではないけれども、駅名の変更をジャストシステムが常にモニターしているわけにはいかない。企業名なんてのは駅名以上にダイナミックに変化が観測されるものだ。ダイナミズムで言えば、その頂点に立つのが、やはり検索サービスのクエリなんだろう。人が興味のある事象について検索する。その興味の範囲は、anonymous(匿名)なユーザの diversity(幅広さ)に直結する。さらに、ここに量による重要度の推定が可能になるというありがたい状況(そんなによく検索される言葉なんだったら、きっと意味がある言葉なんだろう……という推測)が成り立つ。このあたりが、はてなキーワードのアドオン辞書で言えば、「アクセス数上位5万キーワード」というあたりに反映されている。

伝統的な紙の辞書や百科事典の場合には、物理的な制限もあって、無限に収録語数を増やしていくことはできない。あっという間に使われなくなってしまう一過性の言葉を記録しておくだけのモティベーションも発生しにくい。しかし、こういうアドオンの辞書であれば、それをインストールすることによって占有されるディスクスペースのことなんか考えるまでもなく小さいわけだ。自分で入力しなければ、邪魔にもならない(とも言い切れないかもしれないけど……)わけだ。さらに、デフォルトでこれらの辞書が組み込まれるわけではなく、ユーザのニーズに応じて、必要な人だけがインストールすればいい。

ハードウェアよりソフトウェア、ソフトウェアよりデータ……という流れをこの業界にいると感じることが多々ある。いまや、そのデータすらも一元管理の純粋培養ではなく、「餅は餅屋」なフレッシュかつ専門的なものが望まれる、ないしは必要だと提供者側が考える……そんなトレンドを感じるできごと。いまちょうど『ウィキノミクス マスコラボレーションによる開発・生産の世紀へ』を読んでるんだけど、これにも通じるところがある。間接的なマスコラボレーションの成果の利用としてね。

2007/06/16

機械翻訳にやさしく

Google のオフィシャルブログをいつも読もう、読もうと思っているんだけど、英語が面倒で常に 3 桁の未読フィードがたまっている状態……。これではいかんなと思い直し、不本意ながら「Yahoo! 翻訳」のお世話になることにした(ホントは、原文で読みたいんだけど、残念ながら時間がない。翻訳結果を斜め読みするのが精一杯)。

いくつかの記事を翻訳していくうちにおもしろいことに気づいた。なかなか翻訳精度がよいようなのだ。そこそこ読めるというか、ある程度背景のわかる話題とかだと、ほぼ誤解することなく理解可能。しかし、ある記事を翻訳すると、極端に翻訳精度が落ちる。オリジナルの英文を見てみる。英語としては特に変な文章ではないけど、すこしくだけた表現が多く含まれているみたい。やはりそういう「こなれた」表現だとまだ機械翻訳には厳しいようだ。

「Yahoo! 翻訳」のガイドページに「Yahoo! 翻訳のコツ」というページが用意されている。これは主に日英翻訳(日本語の原文を英語に翻訳)のときの Tips を書いているわけだけど、読んで見ると機械翻訳の特性や日本語と英語の違いがあぶり出し的に見えてくる。以下、同ページ群より引用。

  • 日本語入力で気をつける点
    1. なるべく漢字を使う
    2. 漢字の間違いに注意する
    3. 長音記号はハイフンではなく、「ー」を使う
    4. 略語は略さずに書く
  • 文章を短くする
    1. 動詞の切れ目や「~が」(接続助詞)、「~だが」などで、文章を分割する
    2. 文章を分割した後に、必要に応じて適切な接続詞や主語を補う
    3. 不要な言い回し(「~ということ」「~ものである」「~したいと思う」など)を取り除く
    4. 重複する表現を避ける
  • あいまいな表現を避ける
    1. 適切な助詞を使う
    2. 省略を補う
    3. 修飾語がかかる範囲を明確にする
  • 訳文を編集する
    1. 単数・複数を確認する
    2. 時制の一致に気をつける
    3. 代名詞を確認する
    4. 前置詞を確認する
最後の「訳文を編集する」は翻訳結果が得られてからの作業(post-processing)だけど、それ以外は機械翻訳する前の準備作業(pre-processing)。英語が苦手な場合は、翻訳結果(英語)を編集するってのは難しいかもしれないけど、準備作業なら日本語を相手にするだけだから簡単。どれも言われてみれば、ごく当たり前のことばかり。

「日本語入力で気をつける点」で語られていることは、主に辞書の参照に関する問題。「なるべく漢字を使う」なんかは、ひらがなが多いと、翻訳作業の前処理の形態素解析(文章を単語単位で分解する作業)の障害になってしまう。ここでつまづくと、翻訳結果はめちゃくちゃになってしまう。よく言われる例は「ここではきものをぬいでください」が「ここでは着物を脱いでください」なのか、「ここで履物を脱いでください」なのか……というもの。確かに、これは文脈(店の入り口の貼り紙なのか、健康診断の会場での指示なのか)がなければ、人間でもその判断は厳しい。「漢字を間違いに注意する」なんてのも、辞書検索の障害になるので要注意。

「文章を短くする」は、主に構文に関するもの。形態素解析は、高速かつ精度高く処理できるのでいいのだが、構文解析っていうのは、単語の前後関係だけでなく、文章内のすこし離れた単語の関係を見なくてはいけなかったりするわけで、これは難易度がぐっと高くなる。日本語は簡単な接続詞で文章をゆるやかにつなげていくことができるけど、それが逆説関係なのか、順接関係なのかその関係性が曖昧だったりすることも、この構文解析の難易度を高める一因なんだろう。

「あいまいな表現を避ける」は、英語と日本語の語用の違いが主な話題。「具体的な動詞を使う」というのは、「英語は動詞が中心、日本語は名詞が中心」というよく言われる話にも通じるもの。「適切な助詞を使う」というのは、英語は厳格な語順によって主語や目的語が識別できるのに対して日本語では適切な助詞が付与されていれば語順にはさほどこだわらないということだったり、助詞に与えられている役目の多さ(機械翻訳の立場から見ると曖昧さ)に帰因するものだろう。

機械翻訳は、計算機による自然言語処理のかなりの要素を詰め込んだかなり高度な作業をこなしているわけだけど、どうも一般的には評価が低い。翻訳結果がこなれた日本語でなかったり、文章の解析に失敗したりして、ヘンな訳になってしまうことが多いからだろう。その結果だけを見て、笑うのは簡単なことなんだけど、その前に元の文章が翻訳ソフトにもわかりやすい文章になっているかどうか、もう一度確認するという作業をやってみてはどうだろう。それだけで、けっこう精度上がるものだ。

あ、あと、安い翻訳ソフトを買って、「なんだこんな単語も訳せないの?」っていうのも要注意。安い翻訳ソフトには基本語彙しか登録されていない。専門用語なんかはそれらよりも高価なソフトにしか登録されてなかったりするわけ。辞書作りというのは、なかなか時間のかかる作業で、このコストってのは馬鹿にならないらしいよ。

2007/05/23

コンテンツ連動型広告の仕掛けについて考える〜その弐

「コンテンツ連動型広告の仕掛けについて考える」の第二弾。前回は、ページに書かれた内容(ページコンテンツ)の取得まで。今回は、その解析部分から。(第一弾は、こちら

前回の処理のステップをまとめたもので言えば、

  1. クローラが取得したコンテンツは、解析サーバにより解析される
ここから。ページコンテンツを取得したら、そこからそのテキストが扱っているトピックを抽出しなくてはいけないわけだけれど、まずは、形態素解析という処理が必要になる。形態素解析というのは、簡単に言えば文章の構成要素を細切れにする作業。分かち書き。例えば、「うどんは讃岐に限る」という文章は、
  • うどん
  • 讃岐
  • 限る
と分解できる。この分解のときに、
  • うどん(名詞)
  • は(助詞)
  • 讃岐(名詞)
  • に(助詞)
  • 限る(動詞)
こんな感じで、品詞分類(上記の例はかなり雑に分類してるけど、ホントはもっと詳しい)もついてくる。名詞や動詞、形容詞なんかは、大分類では内容語とカテゴライズされて、助詞なんかは機能語とされる。重要なコンセプトの抽出に助詞などは、さほどの影響は及ぼさないだろうということで、捨てちゃう。そうなると、
  • うどん
  • 讃岐
  • 限る
が残る。これだけでも原文のコンセプトは十分判断できるよね。その中からさらにコンセプトを含む確率が高いものということで、名詞を取り出す。
  • うどん
  • 讃岐
ずいぶんとすっきりした。「讃岐うどんはまずい」という文章だってあるじゃないか……という意見もあるだろうけど(ネガティブイメージな文章に広告を出すのかという議論もちょっと脇に置いておいて)、
  • 讃岐
  • うどん
  • まずい
なので、テーマが「讃岐うどん」であることには変わりない。シンプルな文章を例に出したので、あっさりとしてしまったけど、本当はその文章の周囲には、
  • 先月の出張で、香川に行った。
  • 香川の取引先の山田部長はなかなかの人格者で、彼を慕う部下も多いと聞く。
  • 彼のチームメンバーからいろいろお話を聞くことができた。
  • 山田部長の若いころのエピソードで面白かったのは、食い道楽の話。
  • あんなスリムな人なのにありえないぐらい食べるらしい。
  • なんでも近くのうどん屋でうどん七玉食べた後、もう一軒別のところに行ってそこで三玉。
  • ありえない。。。
  • しかし、山田部長のオススメのうどん屋さん、マジうまいっす。
  • やっぱり、うどんは讃岐に限る。
……などという文脈があるとすると、もう大変。名詞の量がずいぶん多い。そうしたときに使える手法とオーソドックスなのは、特定のキーワードの出現頻度を利用するという手法。文章を通して、何回「山田部長」や「うどん」が登場したか……ということ。「うどん」、「うどん」と何回も言ってるぐらいだから、「うどん」は重要なキーワードなんだろう……という推測。ただ、これだけでは重要なテーマは、絞りきれない。

さっきの文章では「山田部長」だけがフィーチャーされていたけど、「山田部長はじめ、高橋部長、佐藤部長には大変お世話になりました。 m(_ _)m」という文章も入ってくると、重要なのは形態素解析の結果としての最小単位で最頻出語は「部長」になってしまう。「うどん」か「部長」かで考えると難しいのだが、少なくとも「部長」の中でいちばん重要なのは、「山田部長」だろう。「山田」+「部長」。このように単語と単語の組み合わせ(連接)に着目して開発されたのが、専門用語自動抽出サービス「言選Web」。ブラウザから簡単に使えるので、ちょっと試してみる(より重要だと判断されたキーワードが上になるように並んでいる。横の数値は、その評価値。何点満点とかいう尺度ではない)と……
  • 9.73 : 山田部長
  • 3.46 : うどん屋
  • 3.46 : うどん
  • 2.00 : 香川
  • 2.00 : m
  • 1.93 : 高橋部長
  • 1.93 : 佐藤部長
  • 1.41 : 人格者
  • 1.41 : 大変お世話
  • 1.41 : 取引先
お、「山田部長」がフィーチャーされてますね。「高橋部長」や「佐藤部長」に圧倒的なリード。こういう複合語に着目するってのもなかなかいい手法。

この「言選Web」については、『図書館の窓』東京大学付属図書館報に寄稿された「「言選Web」の世界」という記事でとてもわかりやすく説明されているので、興味のある人はどうぞ。

たつをの ChangeLog』の「形態素解析と検索APIとTF-IDFでキーワード抽出」という記事もおもしろい。数式とか、Perl のコードとか出てくるんで、ちょっととっつきにくいかもしれないけど、文章はいたって平易。いわく、Yahoo! のウェブ検索を利用して、
  • 文章(さっきの「うどん」の日記のようなもの)の中に特定のキーワード(例えば「うどん」)が出現する回数
  • Yahoo! のウェブ検索でキーワードにマッチした文書数
  • Yahoo! のウェブ検索の総文書数
これらの数値をぐにぐにっと計算すると、特徴となる語彙が抽出できる……というもの。ここにはデモインターフェイスが置いてないのが残念。。。前に動いているところを見たことあるけど、かなりおもしろい♪

他にもいろいろ手法はあるんだけど、基礎的なところとしては、こんなところだろうか。

こうして、文章の特徴となる言葉が抽出されて、じゃあ次は……ということになると、
  1. 商品引き当てサーバは、解析結果に基づき、妥当な商品を商品データベースから検索し、オススメ商品データを返す
……というのが大きな山になりそう。
  • 抽出されたキーワードで商品データベースを検索する
  • 検索結果が複数ある場合、その中でいちばん売れそうなものから順に表示候補にする
この「売れそうなもの」っていうのがクセモノ。
  • 文書との関連度が高いから「売れそう」
  • 文書との関連度は若干低いけど、けっこう売れてるから「売れそう」
  • 文書との関連度は全くないけど、むちゃくちゃ売れてるから「売れそう」
おおざっぱに言えば、こんな感じなんだろうか。

「おまかせリンク」は、まだβ版だからなのか、関連性の低い結果が出ちゃってるのかどうかが微妙なところ。ちょっと前に書いた「心地よいユーザインターフェイス」に出てくるのは、『女性の品格』とか『不思議の国のアリス』の洋書、英文法の教科書(洋書)、プロジェクトマネジメントの本(洋書)、『のだめカンタービレ(18)』……。Ajax の本とか、インターフェイスデザインの本とかいろいろあるだろうに……。少なくとも『女性の品格』、『のだめカンタービレ』は売れせん狙いのフィラー広告だな。『わかりやすい洋ランの育て方』……大泉洋の「洋」ってことかい? それだったらまだ大泉洋の本の方がいいな。……とはいえ、なんかこうやって文句を書いている間に、『Web API マッシュアップブック』も Pipes の記事あたりで表示されるようになってきた。

とはいえ、AMAZON のコンテンツ連動型広告の場合は、
  • 書籍に付随するメタ情報(著者名や出版社名、書籍の概要)
  • 関連づけの対象となる商材が有限であること(バリエーションが多いとはいえ限られている)
  • 商品ごとの売り上げ情報(売り上げランキング)
  • その商品といっしょに買われた商品
  • 検索から購買までのコンバージョン情報
  • カスタマーレビュー情報
  • リストマニア!(個人のオススメ作品リスト)
……などなどパラメータとして利用できそうな付帯情報がもりだくさん。今後の展開にかなり期待♪