2024年07月26日

Trafilatura:テキスト検出と抽出のためのPythonスクレイピングツール

このエントリーをはてなブックマークに追加
follow us in feedly


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.

.................
.................
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のトレードオフです。

.................
.................


        と言う訳で、どういう方法で抽出したのか、手法はあんまり具体的には書いてありません。




tak_tak0 at 06:37コメント(0)研究  | サーバ この記事をクリップ!

コメントする

名前:
URL:
  情報を記憶: 評価:  顔   星
 
 
 
サイト内検索
にほんブログ村 科学ブログへ
にほんブログ村
adsense
Archives
amazon
blogchart
QRコード
QRコード
Recent Comments