ファクトチェック機能で記事の信頼性向上

AI生成記事の最大の課題

AIで記事を書くと、もっともらしいけど間違った情報が混じることがある。いわゆる「ハルシネーション」(幻覚)だ。

特にSEO記事では、以下のような問題が起きやすい:
– 古い法令を引用している
– 統計データの出典が不明
– 専門用語の定義が微妙にズレている

そこで、AIが生成した記事を自動でファクトチェックする機能を実装した。

実装の仕組み

1. クレーム抽出

記事内の「事実を主張している文」を抽出。

def extract_claims(article_text):
    # 数値・パーセンテージ・引用を含む文を抽出
    claims = []
    for sentence in split_sentences(article_text):
        if contains_factual_claim(sentence):
            claims.append(sentence)
    return claims

ファクトチェック対象の例:
– 「厚生労働省の調査によると、保育士の離職率は39.7%」
– 「2024年の改正労働基準法では〜」
– 「経理職の有効求人倍率は0.5倍」

2. 出典の検証

クレームごとに、信頼できる情報源と照合。

def verify_claim(claim):
    # 1. 官公庁サイト(e-Gov、厚労省、総務省など)
    # 2. 学術論文(Google Scholar)
    # 3. 統計データ(e-Stat)
    sources = search_reliable_sources(claim)

    if sources:
        return {
            'claim': claim,
            'verified': True,
            'sources': sources
        }
    else:
        return {
            'claim': claim,
            'verified': False,
            'warning': '出典が見つかりません'
        }

3. データの鮮度チェック

古いデータを引用していないか確認。

def check_freshness(claim, source):
    publication_date = extract_date(source)
    age_in_days = (datetime.now() - publication_date).days

    if age_in_days > 365:
        return {
            'warning': f'データが{age_in_days}日前のものです',
            'recommendation': '最新データへの更新を推奨'
        }

4. レポート生成

📋 ファクトチェックレポート

✅ 検証済み: 8件
⚠️ 要確認: 2件
❌ 出典不明: 1件

---

【要確認】
- 「保育士の離職率は39.7%」
  → 令和4年調査で確認済み。ただし2024年の最新データあり(41.2%)。更新推奨。

【出典不明】
- 「経理職の有効求人倍率は0.5倍」
  → 出典が見つかりません。ハローワークの最新データを確認してください。

実際の使用例

ケース1: 古いデータの検出

生成された記事:

「厚生労働省の2017年調査によると、派遣労働者への教育訓練実施率は28.3%」

ファクトチェック結果:

⚠️ データが2017年(7年前)のものです。令和4年調査では39.7%に上昇しています。

→ 最新データに差し替え。

ケース2: 法令の確認

生成された記事:

「労働基準法第36条により、残業は月45時間まで」

ファクトチェック結果:

✅ 検証済み。e-Govで条文を確認しました。
参考: https://elaws.e-gov.go.jp/document?lawid=322AC0000000049

ケース3: ハルシネーションの検出

生成された記事:

「2024年の改正職業安定法では、求人広告に年齢制限を記載することが完全に禁止されました」

ファクトチェック結果:

❌ 2024年の改正職業安定法にそのような記載はありません。年齢制限の禁止は2007年の雇用対策法改正です。

実装の工夫

信頼できる情報源の定義

TRUSTED_SOURCES = [
    'e-gov.go.jp',      # 法令データ
    'mhlw.go.jp',       # 厚生労働省
    'meti.go.jp',       # 経済産業省
    'e-stat.go.jp',     # 統計データ
    'jil.go.jp',        # 労働政策研究所
]

キャッシュ機能

同じ統計データを何度も検索しないよう、検証結果をキャッシュ。

fact_check_cache = {}

def verify_with_cache(claim):
    if claim in fact_check_cache:
        return fact_check_cache[claim]

    result = verify_claim(claim)
    fact_check_cache[claim] = result
    return result

結果

  • 検証精度: 92%(手動確認と比較)
  • 検証時間: 1記事あたり3-5分
  • 誤情報検出: 10記事中2件でハルシネーションを検出

SEO記事の信頼性が大幅に向上。クライアントからの信頼も高まった。

今後の改良

  1. リアルタイム検証: 記事生成中にその場で検証
  2. 自動修正: 誤情報を検出したら正しい情報に自動置換
  3. 引用フォーマット: 参考文献を自動で整形(APA/MLA形式)

関連記事:
– SEO記事を自動生成するワークフローを構築した
– 一次情報を自動で引用する仕組み


この記事は「中野のAI開発部屋」で公開中のSEO記事生成シリーズです。