2024年07月26日
Trafilatura:テキスト検出と抽出のためのPythonスクレイピングツール
Tweet |
今時のWebテキスト本文抽出はtrafilaturaを使えば良いのか。https://t.co/mmrrl7oYb1
— MITsuo Yoshida | 広告, PR (@ceekz) July 10, 2024
pip install trafilatura
...これだけでインストール出来たので依存するパッケージは分かりませんでした。
import trafilatura
downloaded = trafilatura.fetch_url('http://blog.livedoor.jp/tak_tak0/archives/52451999.html')
trafilatura.extract(downloaded)
これだけで実行出来ます。
...しかし、結果を見ると、本文抽出出来ています。
このwebページに固有の文章だけが得られます。
これはどうやってるのでしょうか?
Trafilatura: A Web Scraping Library and Command-Line Tool for Text Discovery and Extraction
Adrien Barbaresi Center for Digital Lexicography of German , Berlin-Brandenburg Academy of Sciences
Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations. 2021.
.................
.................
...このツールは、テキスト書式やページ康応の一部を保持しながら、メタデータ、本文、コメントに焦点を当てます。
テキストを見落としたり、有効な文書を破棄したりしないよう、十分な精度を目指しており、ロバストでありながら、適度に高速でなければなりません。
この目的を見据えて、Trafilaturaは何百万のwebページで実運用出来るよう設計されています。
.................
抽出は、 readability-lxml と jusText を組み合わせ、 safety nets と fallbacksとして使用しています。
Trafilaturaの抽出アルゴリズムは、ルールベースのフィルタとコンテンツヒューリスティックの組み合わせに基づいています。
コンテンツ抽出は、HTML要素、属性、を対象としたXPath処理によって実行されます。
最初はHTMLコードの不要な部分 ( < div class=”nav” > ) を除外し
次に望ましいコンテンツ( < section id=”entry-content” > )を見ます。
抽出に問題がある可能性がある場合、フォールバックが選択され、他のアルゴリズムがバックアップとして実行されます。
それらは異なる方法で処理されるため、そのアプローチは補完的です。
特に、行の長さ、テキストとマークアップの比率、HTML ツリー内の要素の位置/深さに基づいてヒューリスティックを適用します。
該当する場合、これらの汎用アルゴリズムの出力は「自家製」抽出と比較され、ヒューリスティックが適用されて、主に抽出の長さと「不純物」(メディア要素がないなど)の観点から、最も効率的な抽出が決定されます。
つまり、有用なテキストを含む要素を探します。
抽出は、ほとんどの設定でprecisionと recallのトレードオフです。
.................
.................
と言う訳で、どういう方法で抽出したのか、手法はあんまり具体的には書いてありません。
Adrien Barbaresi Center for Digital Lexicography of German , Berlin-Brandenburg Academy of Sciences
Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations. 2021.
.................
.................
3 Introducing the Trafilatura tool
3.1 Features
...このツールは、テキスト書式やページ康応の一部を保持しながら、メタデータ、本文、コメントに焦点を当てます。
テキストを見落としたり、有効な文書を破棄したりしないよう、十分な精度を目指しており、ロバストでありながら、適度に高速でなければなりません。
この目的を見据えて、Trafilaturaは何百万のwebページで実運用出来るよう設計されています。
.................
3.2 Extraction process
抽出は、 readability-lxml と jusText を組み合わせ、 safety nets と fallbacksとして使用しています。
Trafilaturaの抽出アルゴリズムは、ルールベースのフィルタとコンテンツヒューリスティックの組み合わせに基づいています。
コンテンツ抽出は、HTML要素、属性、を対象としたXPath処理によって実行されます。
最初はHTMLコードの不要な部分 ( < div class=”nav” > ) を除外し
次に望ましいコンテンツ( < section id=”entry-content” > )を見ます。
抽出に問題がある可能性がある場合、フォールバックが選択され、他のアルゴリズムがバックアップとして実行されます。
それらは異なる方法で処理されるため、そのアプローチは補完的です。
特に、行の長さ、テキストとマークアップの比率、HTML ツリー内の要素の位置/深さに基づいてヒューリスティックを適用します。
該当する場合、これらの汎用アルゴリズムの出力は「自家製」抽出と比較され、ヒューリスティックが適用されて、主に抽出の長さと「不純物」(メディア要素がないなど)の観点から、最も効率的な抽出が決定されます。
つまり、有用なテキストを含む要素を探します。
抽出は、ほとんどの設定でprecisionと recallのトレードオフです。
.................
.................
と言う訳で、どういう方法で抽出したのか、手法はあんまり具体的には書いてありません。