日付の抽出ってどうやるのかな〜?
ここんところ、いろいろなことはぼうきゃくのはてにおいておいて、そのぺーじからひづけをちゅうしゅつするってことをやってるんだけど、いまいち・・・う〜む。なじょうたい。
なんとなくcpanモジュールとかにありそうなんだけど・・・ある?ない?わからん!
日付表記の種類(おおまか
こんな感じの表記を想定。
- 2009/06/26
- 2009-06-26
- 2009.06.26
- 2009年06月26日
- 二〇〇六年六月二六日
- 平成21年06月26日
- 平成二一年六月二六日
- 来年2月10日
- 今月27日
んで、
-
- 西暦表記は、下二桁表記も認める。
- 漢数字表記は、十の位に続いて'十'が表記されることを認める(10〜19において'一'が省略されることも認める)。
- 西暦表記を二千九(2009)年や千九百九十九(1999)年と表記することは通常ないので、これは認めない。
- 和暦年、及び、月や日の表記においてひと桁のみの場合に0を補う表記を認める。
- 年、月の省略を認める。(省略された場合、そのページの作成・更新年月とする)
- 相対表現(来年・今年・昨年、来月・今月・昨月、明日・今日・昨日、など)を認める。(相対表現の基準は、そのページの作成・更新年月とする)
といったところかな。
ここまでは相対表現の部分が面倒(なのでこれはひとまず置いとく)なくらいで、あとは正規表現を並べておけばいいのでまあいいかな(それぞれの表記パターンの使用傾向もカウントしとく)。
「そのページの作成・更新年月」の取得は・・・RSS経由?(ってか、これが確実に取得できたら下で書いてる条件もクリアできるんだけど)
それと期間表記(複数日付表記)も欲しいんですよね。
期間表記の種類(おおまか
これは・・・こんな感じですかね・・・。
- <日付> <日付>
- <日付>・<日付>
- <日付>、<日付>
- <日付>,<日付>
- <日付>.<日付>
- <日付>から<日付>
- <日付>〜<日付>
- <日付>ー<日付>
- <日付>−<日付>
でもって、読点類(上記の'から'よりも上の項目)はさらに連続して表記されることを認める、2つ目以降の日付は'月日'または'日'表記のみも認める(ただし、同年または同年同月として扱える表記)。
それとそれぞれの表記には曜日表記が加わることがある(ことを認める)。
っつー感じなんですが、日付って結構強調する為に【 】とかの括弧類で囲まれてたりするので、個々の日付を取得出来ても'連続している'日付として取得するのは面倒だなあ、というかいまいち上手く取得できない。曜日表現の類型についてもそうなんだけど・・・。
あ。
今書いてて思ったけど、個々のパターンはともかく、期間を記述する際に途中で文を終わりにする可能性は少ないから、日付表記が現れてから文末表現(句点やPタグ閉じなど)までの間に日付が現れたら連続しているまたは区間表現の可能性がある、と判断してそれから日付表記の間に含まれている語句を調べればいいのかなぁ・・・。
なんかメンドイぞ・・・。
それと、もうひとつ。
その日付表現の価値というか重要性をどのように取得するか。strongタグとか括られてたらとっても楽なんだけど、たかが日付をそんなことしないよなー。ちなみにこの場合の重要性ってのは例えば、イベント告知なんかの日付表記は重要性が高く(過去でも未来でも)、その記事が作成・更新された日付ってのは重要性は低い、という感じですね。
ブログ本文やコメントの投稿された日付、そのページが作成された日付、といったものは除きたいんですよねー。(RSSとか吐くシステムだったらそれも調べて、更新と同じ日付を省く、とかしたらいいのかな)
もうすでに世の中にあるもん組み合わせたらできるよー、ってことはないんかね♪w
いっぺんにやろうとするからこんがらがってるだけかな。
ちょっと冗長でもひとつひとつ潰していきますか・・・。
でも、もし、このページに迷い込んだ方で「お前アホか。こうすりゃー一瞬じゃねーのwww」っつー方がいらっさいましたら、是非ともご教授いただきたいですよ!ほんと!(管理面倒なんでコメント欄閉じているのでTBしてください・・・)
でわでわ。。。