議事録テンプレートに固有名が残る状態を、見本で試して止める

会議メモをAIで整えると、箇条書きと見出しはすぐに揃います。でも、そのままテンプレートとして配る前には、元の会議だけに通じる名前を外す必要があります。会社名、担当者名、メールアドレスが1つ残るだけで、見本としては使えません。
今回は、架空の会議メモから作ったテンプレートを題材にします。実在の会社、人物、連絡先、販売実績は使いません。既知の3語が残った状態を作り、配布前に止める小さな検査を試します。
便利な下書きほど、元の会議を引きずります
AIが要約した文には、話題の順序や決定事項だけでなく、会議で使われた固有名も自然に残ります。見出しを「課題」「次の作業」と汎用的に直しても、本文に会社名があれば、元の案件を連想できます。
ここでは自動判定を頼りすぎません。人名らしい文字列をすべて見つける仕組みではありません。販売用の見本に残してはいけない既知の語を一覧へ置き、探すだけです。
私は、置換だけで終える案と、置換後に検査する案で少し迷いました。前者は早いのですが、別の段落へ同じ語が残ったときに気づけません。そこで、直す操作とは別に、残りを知らせる役を置きます。
架空の会議メモをわざと失敗させます
この見本には、架空の会社名「北斗商事」、架空の担当者名「山田太郎」、予約済みのテスト用ドメインを使った連絡先を入れます。検査対象の語は、販売用テンプレートの内容に合わせて自分で決めるものです。
check_terms.pyは、受け取ったMarkdownで各語を数えます。1件でも見つけたらHOLDを出し、終了コード2で止まります。検査は削除をしません。どこを読み直すかを人へ戻すだけです。
work="${TMPDIR:-/tmp}/meeting-note-proper-noun-sample"
mkdir -p "$work"
cd "$work"
cat > check_terms.py <<'EOF'
from pathlib import Path
import sys
blocked = (
"北斗商事",
"山田太郎",
"[email protected]",
)
text = Path(sys.argv[1]).read_text(encoding="utf-8")
hits = [(term, text.count(term)) for term in blocked if term in text]
if hits:
for term, count in hits:
print(f"HOLD term={term} count={count}")
raise SystemExit(2)
print(f"OK blocked_terms={len(blocked)}")
EOF
同じディレクトリへ架空のメモを作り、3語を残したまま実行しました。
printf '%s\n' '# 次回の打ち合わせ' '北斗商事の山田太郎さんへ、資料を送る' '連絡先: [email protected]' > meeting-note.md
python3 check_terms.py meeting-note.md
status=$?
printf 'exit=%s\n' "$status"
実行結果です。
HOLD term=北斗商事 count=1
HOLD term=山田太郎 count=1
HOLD [email protected] count=1
exit=2
3語を別々に出すので、単に「失敗した」だけでは終わりません。検査を通す前に、元の言い回しを保つ必要があるのか、一般名詞へ置き換えればよいのかを判断できます。
置換したあとにも、もう一度通します
次に、会社名は「取引先」、担当者名は「担当者」、連絡先は「連絡先は別途確認」としました。意味を保つよりも具体性が消えすぎる場面では、内容そのものを見本から外すほうが安全です。
printf '%s\n' '# 次回の打ち合わせ' '取引先の担当者へ、資料を送る' '連絡先は別途確認' > meeting-note.md
python3 check_terms.py meeting-note.md
status=$?
printf 'exit=%s\n' "$status"
実行結果です。
OK blocked_terms=3
exit=0
ここで通ったのは、3語が消えたという意味だけです。議事録に含まれる顧客の事情、金額、契約条件まで安全だと証明するものではありません。公開前には、事情に接していない第三者が本文から特定できないかを確かめます。
語の一覧は、案件ごとに小さく持ちます
一覧を大きくしすぎると、一般語まで止まって毎回の確認が重くなります。まずは次の3種類から始めると、目的がぼやけません。
- 取引先やプロジェクトの固有名
- 会議に出た担当者の氏名と連絡先
- 商品の見本に残す理由がない社内略称
正規表現は文字列の条件を表すための道具です。複雑なパターンへ急ぐ前に、今回のような既知の語をそのまま並べるほうが、検査の意味を後から確認しやすくなります。
AIで下書きを作る速度は、個人でデジタル商品を試すときの助けになります。ただし、速く作れたことと、外へ渡せることは別です。削除を自動化する前に、残ってはいけない語を止めて、人が見直す順番を作ります。


