Suche senden
Hochladen
サイト/ブログから本文抽出する方法
•
25 gefällt mir
•
20,809 views
Takuro Sasaki
Folgen
ルールベースとヒューリスティック、二つの方法でサイト/ブログから本文抽出する方法
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 31
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
Hironori Washizaki
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
聡 大久保
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
Takahiro Miyaura
UniRx完全に理解した
UniRx完全に理解した
torisoup
CI/CDツール比較してみた
CI/CDツール比較してみた
Shoya Kai
Empfohlen
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
Hironori Washizaki
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
聡 大久保
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
Takahiro Miyaura
UniRx完全に理解した
UniRx完全に理解した
torisoup
CI/CDツール比較してみた
CI/CDツール比較してみた
Shoya Kai
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
Kuninobu SaSaki
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
Tomohiro Nakashima
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
Google Cloud Platform - Japan
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
Athenz + SPIFFE によるアクセス制御
Athenz + SPIFFE によるアクセス制御
Yahoo!デベロッパーネットワーク
昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴
Takuya Utsunomiya
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
shigeki_ohtsu
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
Takayoshi Tanaka
UniRxHandsOnVol1
UniRxHandsOnVol1
Shoji Oshima
深層強化学習と実装例
深層強化学習と実装例
Deep Learning Lab(ディープラーニング・ラボ)
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
Google Cloud Platform - Japan
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方
Takuro Sasaki
Crawler for Non engineer
Crawler for Non engineer
Takuro Sasaki
Weitere ähnliche Inhalte
Was ist angesagt?
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
Kuninobu SaSaki
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
Tomohiro Nakashima
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
Google Cloud Platform - Japan
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
Athenz + SPIFFE によるアクセス制御
Athenz + SPIFFE によるアクセス制御
Yahoo!デベロッパーネットワーク
昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴
Takuya Utsunomiya
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
shigeki_ohtsu
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
Takayoshi Tanaka
UniRxHandsOnVol1
UniRxHandsOnVol1
Shoji Oshima
深層強化学習と実装例
深層強化学習と実装例
Deep Learning Lab(ディープラーニング・ラボ)
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
Google Cloud Platform - Japan
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
Was ist angesagt?
(20)
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Athenz + SPIFFE によるアクセス制御
Athenz + SPIFFE によるアクセス制御
昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
TLS, HTTP/2演習
TLS, HTTP/2演習
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
UniRxHandsOnVol1
UniRxHandsOnVol1
深層強化学習と実装例
深層強化学習と実装例
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
Mehr von Takuro Sasaki
JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方
Takuro Sasaki
Crawler for Non engineer
Crawler for Non engineer
Takuro Sasaki
JAWSUG architecture-crowler
JAWSUG architecture-crowler
Takuro Sasaki
Innovation eggcloudnative
Innovation eggcloudnative
Takuro Sasaki
Lambda認証認可パターン
Lambda認証認可パターン
Takuro Sasaki
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
Jawsug chiba API Gateway
Jawsug chiba API Gateway
Takuro Sasaki
DevLove Kansai AWS
DevLove Kansai AWS
Takuro Sasaki
Rubyで操るAWS 第67回Ruby関西 勉強会
Rubyで操るAWS 第67回Ruby関西 勉強会
Takuro Sasaki
JAWS-UG初心者支部 AWS書籍活用術
JAWS-UG初心者支部 AWS書籍活用術
Takuro Sasaki
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)
Takuro Sasaki
JAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearch
Takuro Sasaki
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
Takuro Sasaki
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Takuro Sasaki
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
Takuro Sasaki
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Takuro Sasaki
Jawsug osaka10 service®ions
Jawsug osaka10 service®ions
Takuro Sasaki
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
Takuro Sasaki
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
Takuro Sasaki
Mehr von Takuro Sasaki
(20)
JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方
Crawler for Non engineer
Crawler for Non engineer
JAWSUG architecture-crowler
JAWSUG architecture-crowler
Innovation eggcloudnative
Innovation eggcloudnative
Lambda認証認可パターン
Lambda認証認可パターン
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Jawsug chiba API Gateway
Jawsug chiba API Gateway
DevLove Kansai AWS
DevLove Kansai AWS
Rubyで操るAWS 第67回Ruby関西 勉強会
Rubyで操るAWS 第67回Ruby関西 勉強会
JAWS-UG初心者支部 AWS書籍活用術
JAWS-UG初心者支部 AWS書籍活用術
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearch
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Jawsug osaka10 service®ions
Jawsug osaka10 service®ions
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
サイト/ブログから本文抽出する方法
1.
第2回Webスクレイピング勉強会@東京 ! サイト/ブログから 本文抽出する方法 2014年8月17日 @dkfj 佐々木拓郎
2.
✦ プロフィール ‣ Webシステムを得意とするSIerで勤務 ‣
最近の仕事はAWS事業の推進 ‣ Webスクレイピングして、データマイニングするのが趣味 ★ ソーシャル・ネットワーク ‣ blog: http://blog.takuros.net/ ‣ twitter: @dkfj ‣ Facebook: takuro.sasaki ‣ SlideShare: http://www.slideshare.net/takurosasaki/ ‣ http://www.justyo.co/TAKUROS/ @dkfj 自己紹介: 佐々木拓郎
3.
主にJAWSUG大阪で活動しています (AWS勉強会)
4.
「Rubyによるクローラー開発技法」 Rubyのクローラー/スクレイピング本を 書きました。8月24日に発売予定です。
5.
本日のテーマ ! サイト/ブログから 本文抽出する方法
6.
本日のテーマ ! サイト/ブログから 本文抽出する方法 何故、必要なのか?
7.
一般的なブログの構造
8.
9.
ブログ タイトル サイド メニュー
10.
ブログ タイトル サイド メニュー 本文 記事 タイトル
11.
ブログ タイトル サイド メニュー 本文 記事 タイトル 欲しいのは、本文
12.
サイト/ブログの本文抽出の目的 • 書かれている記事を読みたい • コーパス/解析の元データとして利用したい
13.
コーパスとは? コーパス(corpus)とは、言語学において、自然言語処理の 研究に用いるため、自然言語の文章を構造化し大規模に集積した もの。構造化では言語的な情報(品詞、統語構造など)が付与さ れる。コンピュータ利用が進み、電子化データとなった。 ! ウィキペディアより
14.
自然文としてのブログの特徴 • 新聞に較べて、口語に近い単語/フレーズが出現する • タグやカテゴリーなどのメタデータがあり、分類しやすい •
投稿者の属性を、ある程度推定できる ex) 男性/女性、社会人/学生、10代、20代、30代
15.
自然文としてのブログの特徴 • 新聞に較べて、口語に近い単語/フレーズが出現する • タグやカテゴリーなどのメタデータがあり、分類しやすい •
投稿者の属性を、ある程度推定できる ex) 男性/女性、社会人/学生、10代、20代、30代 わりと貴重なデータ
16.
本文抽出の方法 • パーサーを利用して、HTML構造を分析しての抽出 • 自然言語処理を利用して、本文らしさを分析しての抽出
17.
HTMLの構文解析 ! • 取得対象のHTMLの構文を分析して、本文を抽出 • いわゆるルール・ベース ex)
HTMLのタグのidが、contentのものを取得
18.
はてなブログの場合 entry-contentの中が ブログ本文
19.
HTMLの構文解析 メリット • 正確に本文を抽出できる • 比較的、(コンピュータリソースの)負荷が低い デメリット •
ブログ種別ごとに、開発が必要 • 取得元のHTML構造の変更に弱い
20.
nokogoriを使って取得 require 'open-uri' require 'nokogiri' ! html
= open('http://blog.takuros.net/entry/ 20140104/1388788175').read ! doc = Nokogiri::HTML(html) puts doc.xpath("//div[@class='entry-content']").text
21.
• HTML/XMLの構文解析器(パーサー) • ほぼデファクトスタンダード •
XPath or CSSセレクタで、HTML中の要素を選択 • UTF-8以外の文字コードを扱う場合は注意 require 'nokogiri' require 'open-uri' ! doc = Nokogiri.HTML(open("http://nokogiri.org/")) doc.css('a').each do ¦element¦ puts element[:href] end 参照:Ruby製の構文解析ツール、Nokogiriの使い方 with Xpath http://blog.takuros.net/entry/2014/04/15/070434
22.
自然言語処理を利用した本文抽出 • 文章内から本文らしい部分を抜き出す • ヒューリスティック(経験則) •
自分で一から実装するのは、割と大変
23.
本文抽出モジュール • ExtractContnt (Ruby) •
HTML::Extract (Perl) • HTML-Feature (Perl) • ExtractContnt/webextract.py (Python)
24.
ExtractContentの実装 • html をブロックに分離、スコアの低いブロックを除外 •
評価の高い連続ブロックをクラスタ化し、クラスタ間でさ らに比較を行う • スコアは配置、テキスト長、アフィリエイトリンク、フッ タ等に特有のキーワードが含まれているかによって決定 • Google AdSense Section Target ブロックには本文が記 述されているとし、特に抽出
25.
自然言語処理を利用した本文抽出 メリット • ブログ種別に依存しない • 取得元のHTML変更に強い デメリット •
構文解析に比べると、精度が落ちる • 比較的、(コンピュータリソースの)負荷が高い
26.
nokogoriを使って取得 require 'extractcontent' require open-uri' ! html
= open( 'http://blog.takuros.net/entry/ 20140104/1388788175').read ! content, title = ExtractContent.analyse(html) puts title puts content
27.
まとめ • 本文抽出の方法は、主に2種類 • どちらも一長一短あるので、用途に応じて使う •
正確さを期すならば、HTMLの構文解析 書かれている内容、そのものが必要な場合 • 厳密さがいならいのであれば、本文抽出モジュール コーパスや解析用の元データとして利用
28.
今日の話は、 この辺に書いています
29.
おまけ キーワード抽出 • 辞書方式 • Mecabを利用した未知語抽出
30.
おまけ その2 特徴語抽出 • TD/IDFが一般的 • Yahooのキーフレーズ抽出APIなどもあり http://developer.yahoo.co.jp/webapi/jlp/keyphrase/ v1/extract.html
31.
ご清聴ありがとうございました 後日の質問は、@dkfjまで
Jetzt herunterladen