😽
【LangChain】Webページの読み込み(AsyncChromiumLoader,Html2TextTransformer)
早い話が以下のドキュメントの説明です。
以前WebBaseLoaderを使ってwebドキュメントを扱っていましたが、どう使い分けたらいいんでしょうかね
手順
ライブラリのインストール
playwrightはライブラリをインストールしただけでは使えません。
playwright install
を実行してヘッドレスブラウザが動作するようにしておきましょう
!pip install -Uqq langchain-openai langchain playwright beautifulsoup4
!playwright install
ページの読み込み
from langchain_community.document_loaders import AsyncChromiumLoader
from langchain_community.document_transformers import BeautifulSoupTransformer
# Load HTML
urls = ['https://www.env.go.jp/press/index.html']
loader = AsyncChromiumLoader(urls)
google colabを使っている場合、このままloader.load()
を実行するとasyncio.run()でエラーが出ます。
対処法として、nest_asyncioを読み込みます
# !pip install -Uqq nest_asyncio
import nest_asyncio
nest_asyncio.apply()
docs = loader.load()
len(docs)
#-> 1
len(docs[0].page_content)
#-> 173264
ちなみにpage_contentの中身は以下のようにHTMLがそのまま入っています。
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head>\n <meta http-equiv="X-UA-Compatible" content="IE=edge">\n <meta charset="UTF-8">\n <meta name="viewport" content="width=device-width, initial-scale=1">\n <meta name="format-detection" content="telephone=no">\n <!-- title, description, keywords -->\n <title>報道発表一覧 | 環境省</title>\n <meta name="description" conten
自然言語処理をするにあたってはマークアップは邪魔ですので、マークアップを削除したプレーンなテキストにしてやりましょう
プレーンなテキストへの変換
html2textを使用します。(ちなみにこれはlangchainのライブラリではないです)
# !pip install -Uqq html2text
from langchain_community.document_transformers import Html2TextTransformer
html2text = Html2TextTransformer()
docs_transformed = html2text.transform_documents(docs)
docs_transformed[0].page_content[0:500]
これでマークアップが削除されました。
* 本文へ\n * English\n * 検索 \n\nヘルプ\n\nナビゲーションを開閉する\n\n * ホーム\n * 環境省について\n\n * 環境省について \n * 環境省の組織案内 \n * 大臣・副大臣・環境大臣政務官 \n * 幹部職員名簿 \n * 環境省の率先実行 \n * 採用・キャリア形成支援情報 \n * パンフレット一覧 \n * 所管法人 \n * 環境省五十年史 \n\n * 政策\n\n * 政策 \n * お知らせ一覧 \n * 審議会・委員会等 \n * 重点施策・予算情報 \n * 税制改正関係情報 \n * 行政事業レビュー \n * 政策評価 \n * 国会提出法律案 \n * 公文書管理 \n * 府省共通公開資料等 \n\n * 法令\n\n * 法令 \n * 環境基準 \n * 法令・告示・通達 \n\n * 報道・広報 \n\n * 報道・広報 \n * 大臣記者会見・談話等 \n * 行事予定 \n * 環境省広報誌 エコジン \n * メ
Discussion