Home
>
Product
>
Template Top
>
詳細ページ

GASライブラリ活用:AI(Gemini/OpenAI)でブログ記事のNGワードを自動チェックするシステム

このライブラリは、Googleスプレッドシートをインターフェースとして、AI(GoogleのGeminiまたはOpenAIのGPT)を活用し、ウェブサイトやブログ記事のコンテンツチェックを自動化する「AI NGワードチェッカー」システムです。

このページでは、ライブラリの目的、ユースケース、セットアップの手順を解説します。

Demo Video

Detail

主なユースケース

このライブラリは、以下のような場面で絶大な効果を発揮します。

  • コンプライアンス・薬機法チェック景品表示法や薬機法に抵触する可能性のある「絶対」「必ず治る」といった断定的な表現を「ベースNGワード」に登録し、AIに記事をスキャンさせ、リスクのある記事を公開前に検出します。
  • ブランド毀損・炎上防止差別用語、不快な表現、ネガティブすぎる言葉などをリスト化し、AIにチェックさせることで、企業のブランドイメージを損なうコンテンツの公開を防ぎます。
  • 競合情報・機密情報の管理「競合他社名」や「(うっかり言及してはいけない)特定の製品名」をNGワードに登録し、自社メディアのコンテンツに意図せず競合情報が含まれていないかをチェックします。

セットアップ手順

セットアップの手順は以下の通りです。

サンプルシート

ステップ1:GASライブラリの追加

  1. Googleスプレッドシートを開き、「拡張機能」>「Apps Script」でGASエディタを開きます。
  2. エディタの左側メニューにある「ライブラリ」の横の「+」アイコンをクリックします。
  3. 「スクリプトID」の入力欄に、以下のIDを貼り付けます。1POuOUh3ixdpoB66kwOs6ftCOcHJOBmUAx0j8sh74oIqIYAMI6GY-akIM
  4. 「検索」を押し、最新のバージョンを選択します。
  5. 「識別子」を AINGWordChecker (推奨)に変更し、「追加」ボタンを押します。

ステップ2:サンプルコードの貼り付け

GASエディタの Code.gs ファイルに、記事の末尾にある「Code.gs用 サンプルコード」をコピー&ペーストします。これがスプレッドシート上のカスタムメニューの元になります。

ステップ3:「settings」シートの準備

このライブラリは、getLibraryConfig 関数(サンプルコード内)を通じて、スプレッドシートの「settings」という名前のシートから設定を読み込みます。

  1. スプレッドシートに戻り、「settings」という名前のシートを作成します。
  2. B1セル: GeminiのAPIキーを入力します。
  3. B2セル: OpenAIのAPIキーを入力します。(どちらか片方だけでも動作可能)
  4. B3セル: 使用したいAIモデル名(例: gemini-1.5-flashgpt-4o)を入力します。 gemini model,open ai model
  5. B4セル: URLチェック用のシート名(例: URLcheck)を入力します。
  6. B5セル: ベースNGワード設定用のシート名(例: NGwordsetting)を入力します。
  7. B6セル: 最終NGワードリスト出力用のシート名(例: Final_NG_Word_List)を入力します。

ステップ4:「NGワードリスト更新」の実行

  1. ステップ3のB5セルで指定した名前のシート(例:NGwordsetting)を作成します。
  2. A列に、AIに拡張させたい「ベースNGワード」を入力します。
  3. スプレッドシートのページをリロードすると、「AI Checker」というカスタムメニューが表示されます。
  4. 「AI Checker」>「Update Final NG Word List」を実行します。
  5. AIが関連語をC列に生成し、B6セルで指定したシート(例:Final_NG_Word_List)に関連語を含む最終リストが自動で作成されます。

ステップ5:「NGワードチェック」の実行

  1. ステップ3のB4セルで指定した名前のシート(例:URLcheck)を作成します。
  2. A列に、AIにチェックさせたい記事のURLを入力します。
  3. カスタムメニューから「AI Checker」>「Run NG Word Check」を実行します。
  4. スクリプトが各URLを巡回し、AIがNGワードをチェックします。B列に結果(例:「検出: 無料」)、C列にステータス(done)が書き込まれます。

Code.gs用 サンプルコード

/**
* スプレッドシートを開いた時にカスタムメニューを追加します。
*/
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('AI Checker')
    .addItem('Run NG Word Check', 'runNGWordCheck')
    .addItem('Update Final NG Word List', 'runRelatedWordGeneration')
    .addToUi();
}

/**
* 'settings'シートから設定を読み込むヘルパー関数です。
*/
function getLibraryConfig() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('settings');
  if (!sheet) {
    throw new Error('Cannot find the Settings sheet.');
  }
  // B1からB6までの値を読み込む
  const values = sheet.getRange('B1:B6').getValues();
  return {
    geminiApiKey: values[0][0],
    openaiApiKey: values[1][0],
    model: values[2][0],
    urlSheetName: values[3][0],
    ngSheetName: values[4][0],
    finalNgWordSheetName: values[5][0]
  };
}

/**
* ライブラリの「NGワードチェック」機能を実行します。
*/
function runNGWordCheck() {
  try {
    const config = getLibraryConfig();
    
    // ライブラリの識別子(AINGWordChecker)を使って関数を呼び出す
    AINGWordChecker.checkArticlesForNGWords(config);
    
    SpreadsheetApp.getUi().alert('NG Word Check complete.');
    
  } catch (e) {
    Logger.log(`Error: ${e.message}`);
    SpreadsheetApp.getUi().alert(`Error: ${e.message}`);
  }
}

/**
* ライブラリの「関連語生成・リスト更新」機能を実行します。
*/
function runRelatedWordGeneration() {
  try {
    const config = getLibraryConfig();
    
    // ライブラリの識別子(AINGWordChecker)を使って関数を呼び出す
    AINGWordChecker.generateRelatedNGWords(config);
    
    SpreadsheetApp.getUi().alert('Final NG Word List update complete.');
    
  } catch (e) {
    Logger.log(`Error: ${e.message}`);
    SpreadsheetApp.getUi().alert(`Error: ${e.message}`);
  }
}

Source Code

HTML
CSS
Javascript

FAQ

この「AINGWordChecker」は、Googleスプレッドシートの標準機能ですか? また、無料で使えますか?

いいえ、標準機能ではありません。これはサードパーティ製のGAS(Google Apps Script)ライブラリです。 また、無料では使えません。ステップ3で説明されている通り、AI(GeminiまたはOpenAI)のAPIキーをご自身で「settings」シートに設定する必要があり、AIの利用量に応じたコスト(API利用料)が別途発生します。

このライブラリは、記事のURLをチェックする際、単純なテキスト検索(Ctrl+F)を自動で行うものですか?

いいえ、違います。記事の説明によると、このライブラリは記事本文を抽出し、その内容と「最終NGワードリスト」をAI(GeminiやChatGPT)に送信します。そして、「この記事にNGワードが含まれているか」をAIに判断させる仕組みです。単純な文字列一致以上の、文脈を考慮したチェックが実行されます。

URLをチェック(ステップ5)する前に、必ず「NGワードリスト更新」(ステップ4)を実行する必要がありますか?

はい、その通りです。URLチェック(ステップ5)は、ステップ4でAIが自動生成した**「最終NGワードリスト」**(Final_NG_Word_Listシート)を参照して実行されます。 そのため、最低でも一度は「NGワードリスト更新」を実行して最終リストを作成する必要があります。また、元となる「ベースNGワード」(NGwordsettingシート)を変更・追加した場合も、スキャンに反映させるために再度「NGワードリスト更新」を実行する必要があります。