質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

3485閲覧

スクレイピングで除外すべきタグについて

uramot

総合スコア20

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2017/01/27 01:21

編集2017/01/27 04:17

現在テキスト分類器を作成しており、その際に疑問に思ったことについて質問したいと思います。
取得した文書を単語ごとにパースする際に、「var」「function」などのワードが多数含まれていることに気が付きました。この原因は、scriptタグの中身もパースためでした。
ほかにも、「ffffcc」などのstyleタグの中身も含まれていました。

このことから、scriptタグとstyleタグを除去してスクレイピングしたのですが、まだ「var」や「function」が多く含まれていました。単に文書中に出現しているだけなのかもしれませんが、他にもこのタグは除去したほうが良いというものはありますでしょうか?
スクレイピングする際には、bodyの中身だけを見ています。

補足:

ruby + nokogiriでスクレイピングしています。
用途としては、ナイーブベイズを使ったテキスト分類で使用するために、文書に出現する単語を取得しています。

doc.inner_text でタグ内のテキストのみを取得して処理をしています。

ruby

1require 'nokogiri' 2require 'open-uri' 3 4html <<-EOS 5<html> 6<body> 7 <div class='title'> 8 <p><h1>Hello</h1> World</p> 9 </div> 10</body> 11</html> 12EOS 13doc = Nokogiri::HTML(open(url).read) 14doc.css('body').search('script').remove 15doc.search('style').remove 16body = doc.inner_text 17puts body # Hello World 18...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サイトのつくり方は人それぞれであり、
Webスクレイピングするのであれば、
マークアップ言語の知識がないとスムーズに開発できないと思います。

スクレイピング対象やアルゴリズムが不明なので、なんともいえませんが、
取得したDOMのdivタグに
<input type="button" onClick="var hoge=1; alert(hoge)">
みたいに書く人もいると思います。
その場合、
onClick内の文字列を取得しているのであれば、
varfunctionを拾うのではないでしょうか。

追記

Ruby

1require 'open-uri' 2require 'nokogiri' 3 4 5def scrape url 6 doc = Nokogiri::HTML.parse(open(url, &:read)) 7 8 doc.css('body').search('script, style').remove 9 doc.css('body').text 10end 11 12p scrape('http://www.yahoo.co.jp/')

投稿2017/01/27 01:39

編集2017/01/27 07:26
mukkun

総合スコア882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uramot

2017/01/27 07:32 編集

ご回答ありがとうございます。ご指摘頂きまして、補足を追加いたしました。 マークアップ言語の知識が必要となってくるのですね。ちなみに、このようなテキスト分類の場合は、一般的にこのタグは除去すべきというものはあるのでしょうか?
mukkun

2017/01/27 07:29

ぱっと思いつくのはimgとかcodeとかですかね。 一応勧告ですが、動的に生成される要素はnokogiriだけでは取得できません。 PhantomJSだったりcapybaraだったりを使用する必要があります。
mukkun

2017/01/27 07:34

すみません。追記内容ですが、 styleの削除が行えていないこと。 bodyではなくhtmlからtextを取得していること。 を改善しています。
uramot

2017/01/27 07:36 編集

追記ありがとうございます。 とりあえず、imgとcodeも除去して試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問