August 16, 2004
blogの記事から本文を抽出するコードが書けた
ぜんぜん完璧ではないのだが、とりあえずこんなもんだろ。あとはヒューリスティックなルールを積み重ねていったり、ceekz氏に倣ってN-gramを使ったりすることでさらに削って行けると思うが、そこまでやるかは分からない。
処理例:
処理前1(17,132byte) 処理後1(2,267byte)
処理前2(8,938byte) 処理後2(2,447byte)
処理前3(52,965byte) 処理後3(7,526byte)
気付いたら7時半になってたので、ぼくはもう寝ます。おやすみなさい。
追記
ありゃ。テキストファイルをそのままアップロードするとHTMLとして解釈されちゃうのか。まあいいや。HTMLのソースコードそのものを見たい方は、右クリックから「ソースの表示」を選んでくださいませ。
Trackback
You can ping this entry by using http://windy.ac/MT/mt-tb.cgi/500 .
Comments
IEはcontent-typeヘッダよりも、
自動認識でそのファイルタイプを判断する
ようです。
(タグが入ってる→問答無用でHTMLとしてレンダリング)
なので、IE以外のブラウザなら正常に見れるかと。
>gorouさん
なるほど。勉強になります。
なんというか、いかにもIEらしい挙動ですな。
こんにちは。
ネットを検索してたらこちらに漂着いたしました。
私は最近ケータイ用のサイトを立ち上げようとしております。そのコンテンツにRSSを取り入れるべく、magpie RSSの導入を試みてるのですが、そのリンク先で、HTMLが開いてしまうと、携帯ではdown roadできません。んで、HTMLをテキストに変換するCGIをPHPで作ろーといろいろ試してみたのですが、なかなかうまくいきません。
その様なCGIは普通に公開されているだろうと思い、ネットであちこち探してみましたが、これがなかなか見つかりません。
こちらのコンテンツでHTMLをtextに変換しているのを発見し、ソースを覗かせてもらおうとしましたが、文字化けしてダメでした。
なんとかそのコードを御教授願えませんでしょうか。
ダメならヒントなりとも。
よろしくお願いいたします。
データをHTMLとして送信するか、テキストとして
送信するかはWebサーバの設定で決まる部分です。
プログラムで変換する、というようなものではありません。
なので、探しても見付からないのは当然です:-)
apacheなら、たしか設定ファイルのAddHandlerという
項目でそのあたりの設定をしていたはず。
かなりうろ覚えですが。
早速の御返答、ありがとうございます。
当方、プログラミングは初心者(だいたい半月位)でして、apacheも名前ぐらいしか知らない程度です。
テキストっていうのも“本文”って意味で使ったのですが、素人丸出しで失礼しました。
実は何通りかコードを作ってみたのですが、(IMGやhrefなんかを含むタグを削除して、文書のみを残すなど)どれも思いどうりに行きませんでした。
もう少し格闘してみることにします。
お騒がせいたしました。
あ、ごめんなさい。
そっちの意味でしたか。
HTMLからの本文抽出だと、ぼくも先ずはじめに、
公開されたライブラリがないかどうか調べました。
ですが、使えそうなものは無かったです。
また、HTMLという形式がかなりいい加減というか、
柔軟な書き方ができるものであるためか、
どうも「こうすれば完璧」というような
確立されたやり方もないようです。
たぶん、もっとも簡単なのは、タグをすべて除去するという
方法でしょう。ただ、これでは取りきれないゴミ(本文以外の
テキスト)が大量に残ってしまいます。
そこから先をどうするかが、難しいところです。
本文抽出のコード、よろしければ差し上げますよ。
C#で書かれているので、C#をご存じなければ
ちょっと読むのが大変かも知れませんが。
ご返答ありがとうございます。
じつはあれから色々苦闘しまして、なんとか本文+ゴミまでこぎつけ、本文とゴミをsizeで区別(100バイト以下はゴミ扱い)したところ、本文のみ残すことができました。(んがしかし、本文が短すぎるとゴミ扱い)
これでヤマは越えたと思ったんですが、今はmagpie RSSからうまくリンクできないため、再度苦闘しております。
また行きずまることがありましたら、御指導お願いするかもしれません。
ありがとうございました。
