ng_word テーブル
概要
| 項目 | 内容 |
|---|---|
| テーブル名 | ng_word |
| 説明 | 生成テキストの検査に使用するNGワードを管理するテーブル。記事生成・ブログ生成・リライトの各 Lambda が起動時に全件を読み込み、Aho-Corasick オートマトンを構築して生成結果を検査する |
| 主な用途 | NGワードの登録・更新・削除、生成結果の検査 |
カラム定義
| カラム名 | データ型 | PK | FK | Unique | Nullable | デフォルト | 備考 |
|---|---|---|---|---|---|---|---|
| _id | ObjectId | ◯ | ◯ | DocumentDB自動採番 | |||
| name | string | NGワード | |||||
| created_at | number | ||||||
| updated_at | number | ||||||
| deleted_at | number | ◯ |
検査の挙動
- 検査は
packages/ng_word_filterが担当する。誤検出を避けるため、一部の語は検査対象から除外される(詳細は同パッケージのfilter.pyを参照) - NGワードが検出された場合は検出語を差し戻して作り直す(最大2回)。それでも解消しない場合は生成を失敗させ、NGワードを含む記事・ブログは公開しない
- リライト(blog_rewriter)では、元の過去ブログに既に含まれていた語は検査から除外する。リライトは内容を変えない前提のため、元記事由来の語(例: 騎手名に含まれる語)は作り直しても除去できないため