メールからの自動スケジュール登録(まだ途中)

メールでミーティングの打ち合わせをして、予定が決まる。しかし、その予定はせっかくメールの中に書かれているにもかかわらず、いちいち手打ちでスケジューラに登録しなくてはならない。

なんという非効率的な作業だろうか。

いや、Entourageならスケジュールの登録依頼機能があるし、iCalを使っていればiCalのイベントをメールに添付し、Mail.appで受信したときにスケジュールが追加される。

だが、相手がMail.appを使っていて、こちらがEntourageを使っている場合……当然こっちはiCalなんか使うわけがないし、iCalのイベント書類を添付されても手作業になってしまう。まあ、添付されたiCalの書類を開けばiCalにスケジュールが登録されて、それをEntourageに複製するスクリプトでも走らせれば、とりあえず登録はできよう。

しかしである。だいたい予定なんてメールの本文に書いておくだけの場合がほとんどだ。スケジューラから何かアクションを起こさないといけないというのは、明らかに無理がある。ユーザーは明らかにメールを見てスケジュールに登録してもらいたい、と思っている。

コンピュータなんだから、そのぐらい分ってほしいのである。

では、メール本文の内容から判断して勝手にスケジュール登録するAppleScriptでも作っておけばよい。こういう高度なことをやらせるためにこそAppleScriptはあるのだ(本当か?)。

何も考えずに(構文解析せずに)ばっさばっさと切り取ることで、有為なデータが取り出せないだろうかと試してみる。かなり乱暴な方法なので、普遍性があるかどうかは神のみぞ知るところだ。

とりあえず、スケジュールが明らかに書かれたメールが存在していることを前提とする。それは、メーラーの最前面でオープンされているはずだ。

引用記号で始まる行を削り、シグネチャのたぐいに含まれる記号で始まる行も削る。文字が2文字以下の行も削る。

ずいぶんすっきりした。

ここで、数字を含む文章をピックアップする。日本語形態素解析を行って、「数詞」を含む行だけ残してみる。複数行に分かれる可能性もあるわけだが……とりあえず1行に書かれることが前提。

数詞を含む行が複数行の場合にはユーザーに「連結するか」「どちらかを選ぶか」選択させてもよいだろう。

これで、対象となる文章が1つになった。

この対象行から、接続詞、助詞、句点、読点、語幹、n行連体形、n行連用形、副詞、接頭語の単語を削除。

めちゃくちゃすっきりした。動詞を含む固有名詞(例:いきます石油)などというものがあったら困るが、とりあえずこれでよしとする。

あとは、数字列接尾語や数字列接頭語をポイントに、前後に数詞や普通名詞(なぜか「2日」といった言葉は普通名詞として評価される>Mac OS Xの言語解析エンジン)を検索すると、日付と時間はピックアップできそうだ。場所はちょっと怪しい。

足りない部分はダイアログを表示して、空欄にしておけばよいだろう。逆に、前回のミーティングを検索して場所をピックアップしてもよい。

とりあえず、何かできそうな気はしてきた。時間のあるときにまた作ろう。スケジュールの予約メールを抽出して、ガンガンこのScriptに食わせて様子を見てもよい。

今日はここまで:
(*hinsi:数詞, check:false, original:7, morpheme:7, hinsicode:41472, hinsi:数字列接尾語, check:false, original:月, morpheme:がつ, hinsicode:37888, hinsi:普通名詞, check:false, original:2日, morpheme:ふつか, hinsicode:0, hinsi:記号類, check:false, original:(, morpheme:(, hinsicode:41216, hinsi:普通名詞, check:false, original:金, morpheme:かね, hinsicode:0, hinsi:記号類, check:false, original:), morpheme:), hinsicode:41216, hinsi:普通名詞, check:false, original:午前, morpheme:ごぜん, hinsicode:0, hinsi:数詞, check:false, original:11, morpheme:11, hinsicode:41472, hinsi:数字列接尾語, check:true, original:時, morpheme:じ, hinsicode:37888, hinsi:記号類, check:false, original:A, morpheme:A, hinsicode:41216, hinsi:普通名詞, check:false, original:オフィス, morpheme:おふぃす, hinsicode:0, hinsi:数詞, check:false, original:5, morpheme:5, hinsicode:41472, hinsi:数字列接尾語, check:false, original:階, morpheme:かい, hinsicode:37888, hinsi:普通名詞, check:true, original:こと, morpheme:こと, hinsicode:0*)


ものはためしに、ChaSenで形態素解析を行ってみると……

では    デハ    では    接続詞
、      、      、      記号-読点
7       7       7       未知語
月      ツキ    月      名詞-一般
2       2       2       未知語
日      ビ      日      名詞-接尾-一般
(      (      (      記号-括弧開
金      キン    金      名詞-一般
)      )      )      記号-括弧閉
午前    ゴゼン  午前    名詞-副詞可能
1       1       1       未知語
1       1       1       未知語
時      ジ      時      名詞-接尾-副詞可能
に      ニ      に      助詞-格助詞-一般
A       A       A       未知語
社      シャ    社      名詞-接尾-一般
オフィス        オフィス        オフィス        名詞-一般
5       5       5       未知語
階      カイ    階      名詞-接尾-一般
という  トイウ  という  助詞-格助詞-連語
こと    コト    こと    名詞-非自立-一般
で      デ      だ      助動詞  特殊・ダ        連用形
よろしく        ヨロシク        よろしい        形容詞-自立     形容詞・イ段    連用テ接続
お願い  オネガイ        お願い  名詞-サ変接続
いたし  イタシ  いたす  動詞-非自立     五段・サ行      連用形
ます    マス    ます    助動詞  特殊・マス      基本形
。      。      。      記号-句点
EOS

未知語と名詞だけピックアップしていけば、なんとかなりそうな気もする(それも頭の悪そうな方法だが)。試しにピックアップすると……

7       7       7       未知語
月      ツキ    月      名詞-一般
2       2       2       未知語
日      ビ      日      名詞-接尾-一般
金      キン    金      名詞-一般
午前    ゴゼン  午前    名詞-副詞可能
1       1       1       未知語
1       1       1       未知語
時      ジ      時      名詞-接尾-副詞可能
A       A       A       未知語
社      シャ    社      名詞-接尾-一般
オフィス        オフィス        オフィス        名詞-一般
5       5       5       未知語
階      カイ    階      名詞-接尾-一般

こっちの方が目的に適しているような気がする(ーー; Mac OS X内蔵の日本語形態素解析エンジンは、かな漢字変換(と、再変換)が主な用途なので、こういう用途に使うには「こまかすぎる」気がする(ーー;

まあ、これは単なるツールとして使うだけのものなので、ChaSenをAppleScriptから呼び出すようにしてもぜんぜんOKだ。US Appleの木田さんにはいろいろと意見は言っているのだが、もっとざっくりと単語分けするモードがあってもよさそうなものだ。

ヘタをすると、Microsoft Word内蔵のSupruseが、コマンド解析用の日本語形態素解析エンジンとしては「ざっくり度合いがちょうどいい」、ということになりかねない(SupruseはAppleScriptから1行で呼べる)。

Copyright By Piyomaru Software. All Rights Reserved