[前途多難]テキスト抜き出し

WEBページからテキストを抽出して形態素解析にかけるには
テキスト抜き出しをしなければなりません。

タグを削除する

単純にタグを消すだけでも良いのですが、
↑に説明があるように、HTML::TokeParserを使ってみます。

モジュール HTML::TokeParser の get_text メソッド,または get_trimmed_text メソッドや, striphtml を使っても同じようなことができます

こんな簡単なperlスクリプトを試します。

#!/usr/bin/perl
use strict;
use HTML::TokeParser;
use LWP::Simple;

my $url = shift @ARGV or die "usage $0 url\n";
my $content = get $url;
my $parser = HTML::TokeParser->new( \$content );
die "Error constructor of HTML::TokeParser\n" unless defined $parser;
while ( my $text = $parser->get_text("") ) {
    print $text;
}

ところが以下のような簡単なhtmlであればうまくいきますが、

<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>テストページ</title>
</head>
<body>
これはテストコンテンツです。
<br>
テストとは、英語のtestのカタカナ表記です。<br>
試験、試す、という意味です。
<br>
<img src="002.png" alt="画像ファイルです">
<br>
画像を表示できます。
</body>
</html>

多くのWebサイトではjavascriptが本文として抽出されてしまいます。
Scriptタグを除去した後に、テキストを抽出する必要がありそうです。