ウェブサイトからのテキスト抽出を可能にするアルゴリズムを探しています。私は「striphtml」、またはこれを可能にする何百ものライブラリのいずれかを意味するのではありません。
たとえば、ニュース記事の場合、見出しとすべてのテキストを識別したいのですが、コメントセクションなどは識別しません。
そのためのアルゴリズムはありますか?ありがとうございました!
ウェブサイトからのテキスト抽出を可能にするアルゴリズムを探しています。私は「striphtml」、またはこれを可能にする何百ものライブラリのいずれかを意味するのではありません。
たとえば、ニュース記事の場合、見出しとすべてのテキストを識別したいのですが、コメントセクションなどは識別しません。
そのためのアルゴリズムはありますか?ありがとうございました!
コンピュータサイエンスの文献では、この問題は通常、ページセグメンテーションまたはボイラープレート検出の問題と呼ばれています。浅いテキスト機能を使用したボイラープレート検出のレポートとそれに関連するブログ投稿を参照してください。また、問題に対処するためにブックマークされたいくつかのレポートとソフトウェアサイトがあります。また、このスタックオーバーフローの質問を参照してください。
あなたがやろうとしていることは「コンテンツ抽出」と呼ばれています。うまく解決するのは驚くほど難しい問題であることが判明し、多くの素朴な解決策は非常にうまくいきません。
InstapaperとReadabilityはどちらもこれを解決する必要があり、それらの解決策を見ることで何かを学ぶことができます。また、どちらも利用できる可能性のあるサービスを提供します。おそらく、問題を外部委託して、APIに処理させることができます。:)
それができない場合、「htmlコンテンツ抽出」を検索すると、その主題に関する多数の論文を含む、非常に有用な結果が返されます。
同様の記事抽出タスクを実行する利用可能なオープンソースツールがいくつかあります。 Gravity.comによってオープンソースであったhttps://github.com/jiminoc/goose
ウィキに関する情報と、表示できるソースがあります。さまざまな記事から抽出されたテキストを表示する単体テストは数十あります。
「コンテンツの抽出」は非常に難しいトピックです。「メイン記事」のコンテンツを識別するための一般的な標準はありません( schema.orgなどのクローラーがHTMLを読みやすくするためのいくつかのアプローチがありますが、これらはどれもあまり一般的に使用されていません)。
したがって、良い結果が必要な場合は、スクレイプする(ニュース)Webサイトごとに独自のXPathセレクターを定義するのがおそらく最善であることがわかります。HTMLコンテンツ抽出用のAPIがいくつかありますが、私が言ったように、すべてのサイトで機能するアルゴリズムを開発するのは非常に困難です。
使用できるいくつかのAPI:
alchemyapi.comdiffbot.com
ボイラーパイプ
-web.appspot.comaylien.comtextracto.com _
あなたの最善の策は、メタデータからどのような情報を取得できるかを研究し、優れたhtmlパーサーを作成することだと思います。oEmbedは優れた標準になる可能性があります=)