Skip to content

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/