KB Extractor
複数フォーマットの文書からテキスト・キーワードを抽出し、Elasticsearch 用 JSONL を生成するツール。
概要
- 言語: Python 3.12+
- 入力: PDF, DOCX, DOC, Markdown, Google OCR JSON, CodiMD
- 出力: Elasticsearch Bulk API 形式の JSONL
- キーワード抽出: 正規表現パターン (工事名) + 辞書マッチ (工種)
ドキュメントタイプ
--type |
対象 |
|---|---|
default |
一般文書 (PDF/DOCX/DOC) |
specdoc |
仕様書 PDF |
lawtext |
法令文書 |
sgskjson |
NEXCO 構造化 JSON |
unstructuredjson |
flattendoc 出力 |
codimd |
CodiMD Markdown |
使い方
# 一般文書 (PDF/DOCX) の処理
kbx --type default --output bulk.jsonl --es_index kk-kb ./input_dir
# 法令文書
kbx --type lawtext --output law.jsonl --es_index law-kb ./input_dir
# 並列処理 (スレッド数指定)
kbx --num_threads 16 --output bulk.jsonl ./input_dir
Elasticsearch 投入
# JSONL → ES バルクインサート + OpenAI embedding パイプラインで再インデックス
tools/bulk_insert.sh bulk.jsonl
インデックスマッピングは tools/mapping_src.json (テキスト) と tools/mapping_vec.json (ベクトル 1536次元) を使用。
リポジトリ
kb-extractor/