ブログ記事をAIで自動化できるか?そもそもの定義について解説

AIを使えばブログ自動化が一段と捗ると思ったので、AI(自然言語処理)が出来ることについてまとめます。

自然言語処理がブログ記事作成の自動化に役立つであろう技術は以下の通りです。

・ある記事が何について書いているのかがわかる
・ある記事の日本語らしさを計算できる
・投稿されたコメントがポジティブかネガティブかものか自動判定出来る

上記技術の詳細について説明し、それがブログ記事作成の自動化にどう貢献出来るかのアイデアについて記載します。

この記事の内容は次の通りです。

  • 自然言語処理の話の前に、そもそもAIの定義について解説
  • AIの中の自然言語処理の位置付け
  • 自然言語処理を記事作成に適用すると出来ること

自然言語処理の話の前に、そもそもAIの定義について解説

まず、AI(人工知能)の広義としては「人が操作せずとも勝手に動いてくれるもの」という意味らしいのですが、一般的にはAIとは以下図の中の「ディープラーニング」のことを指します。

「ディープラーニング」とは、その上の「機械学習(マシンラーニング)」の一部ではありますが、機械学習の発展系と捉えるといいでしょう。

「機械学習」は何かというと、開発者がどこに注目すれば良いのかをAIに指示した上で大量のデータを読み込ませることにより特定のタスクを実行できるようになるAIのことです。

例えば画像認識の例だと「色に着目して区別しなさい」という指示を与えた上で、画像1枚1枚に「赤いりんご」「青いりんご」というタグをつけた、大量のりんごの画像をAIに読み込ませます。

そうすると、まだ解析していないりんごの画像が出てきても、AIはりんごの色に着目し、「赤いりんご」なのか「青いりんご」なのかを区別出来るようになります。
機械学習とディープラーニングは何が違うかというと、ディープラーニングの場合は「色に着目して区別する」という区別方法すらもAIが自分で学習する点にあります。

つまり、ディープラーニングは沢山のデータを見ることによって、どこに着目すればよいかを自分で学習し、人間からの指示を待たずに自動でどんどん賢くなっていくということです。

AIの中の自然言語処理の位置付け

AIは自然言語処理、音声認識、画像認識という大きく3つの分野で進んでおり、その中の自然言語処理とは、「曖昧である日本語の文章をうまく解析して形式化すること」を指しています。

その凄さを一言でいうと、「この技術を活用すれば人間がいちいち文章を読まなくても機械が勝手に文章を解釈して次の処理に進めることが出来る」という点です。

ちなみに、自然言語の対比である人工的に設計された言語というとプログラミング言語となりますが、プログラミング言語の場合はルールが明確に決まっており、一文字でもルールを破るとプログラム全体が動かなくなります。

対して自然言語は、曖昧さがあるためプログラミング言語のようにルールをベースに処理してもイレギュラーが発生するため、うまく処理できません。

それをディープラーニングや機械学習といった統計的手法に基づいてなんとかうまく解析してやろうというのが自然言語処理なわけです。

なお、ディープラーニングについては、画像認識や音声認識で大きな成功を受けて注目を集めましたが、自然言語処理についてはディープラーニングの活用は遅れているようです。

その理由はデータの性質が自然言語は他と異なり、画像の場合はRGB形式は連続値で近い値は近い色を表すのに対して、言語の場合は、「あ」「い」・・といった文字で構成され、文字間の近さは定義されていないことに起因するためだそうです。
なので、自然言語処理というと、使っている技術の多くは「ディープラーニング」ではなく、「機械学習」となります。

自然言語処理を記事作成に適用すると出来ること

では、自然言語処理をブログに適用すると何が嬉しいのかについて具体的に説明します。
*なお、ここで説明するのは筆者が考えたごく一例のユースケースであるため、これが全てという訳ではありません。もっといい例があるという方はコメントいただけると嬉しいです。

ある記事が何について書いているのかがわかる

ある記事に出現する各単語について、重要度を定義し、重要な単語をリストアップすることで何が書かれているのかをざっくり判断することが出来ます。

では、単語が重要か重要じゃないかどうやって定義するのかというと「世の中一般ではあまり使われていない単語が、ある記事ではよく出現している」場合その単語は重要だと定義することが出来ます。(この評価手法をTF-IDF:Term Frequency-Inverse Document Frequendyという)

なお、世の中一般の単語を定義するための大量のデータはどうやって入手するのかというと、Pythonの外部モジュール”scikit-learn”に付随しているサンプルデータセットを使うという手もありますが、あまり役に立たなそう。(一般的に使われるテキスト集合のことをコーパスという)

「日本語 データセット」とかで検索すれば、無償提供しているデータセットをダウンロードすることが出来るので、そちらを使うとよいでしょう。

なので、自身でデータを大量に集めて学習させるという作業が必要になります。

この技術は、各口コミのシェア数の大小やTF-IDFとかの評価手法を使って、その口コミの信頼度であったり、口コミに含まれる単語の重要度を定義してその口コミが何について書かれているのかを定義タグ付けして、タグ情報をもとにキーワードに該当する店をピックアップしているのではないかと私が勝手に想像してます。。想像ですみません。

作成記事数は1年間で2万ページ以上とのことで、「渋谷 カフェ 電源」とかで検索すると本サイトが1位表示されてました。

この事例はまさに、データの潜在的価値を引き出し、ブログ記事作成自動化し、手作業に勝利した事例と言えそうです。

なお、本ソリューションは、アパレル、旅行、化粧品、人材系にも展開されているようなので、口コミが多く投稿されるような業界分野に参入しているアフィリエイターは本ソリューションとの競合になるので、戦略変更が必要になるかもしれません。

*ツイッターでは「AIライターが登場したからブロガー&アフィリエイターはもう終わりだ!」といったコメントが多くありました。しかし、AIが0から記事を生み出すことはありません。誤解を恐れずに極端に言えば本事例は「口コミをまとめただけ」とも言えてしまうので、必要以上に恐れる必要はないと思います。あくまで戦略変更が必要になる方もいるでしょう、というだけです。

<この技術がブログ記事作成の自動化にどう貢献出来るか(例)>
・タグやカテゴリを自動で設定する。
・記事の内容に合ったアイキャッチ画像を自動適用する。
・大量の口コミをタグ付けして、まとめ記事を生成する。

ある記事の日本語らしさを計算できる

日本語らしさを計算できることで、最も恩恵を受けているアプリは翻訳アプリではないでしょうか。

数年前に比べ、機械翻訳が格段に向上したことはGoogle翻訳使ってる人は誰もが知ってると思います。

より自然な日本を導くために単語の並びに対して発生確率を返す「言語モデル」というものが使われます。

「言語モデル」の具体例を出すために、言語モデルの一種である「N-gramモデル」というものを例に説明します。

「N-gramモデル」とは、単語の出現確率がその前のN-1個の単語にのみ依存すると仮定したモデルのことです。

例えば「明日は公園にピクニックに行く」という文章がある場合、「明日 は 公園 に ピクニック に 行く」と形態素(それ以上分解したら意味をなさなくなる最小単位)に分解します。(これはPythonのライブラリで可能です。)

その後は、N=3だとすると、3-1 =2で前の2語に依存するため、「明日 は」の後に「公園」が出現する確率を導くということです。

導く方法は以下の通り、大量のテキストの集合(コーパス)があれば単語の組み合わせの出現頻度を数えて、全体数で割り算することで計算することが出来ます。

コーパスの中で単語の「明日 は」が、この順で現れたあとに「人」が現れる回数  / コーパスの中で「明日 は」が、この順で現れる回数

こうして確率値が大きい方がより自然な文と言えるということです。

このような「N-gramモデル」以外でも日本語らしさや誤字がないかを計算する方法はありますが、大量のテキスト集合から確率値を導くというのはどれも共通します。

<この技術がブログ記事作成の自動化にどう貢献出来るか(例)>
・ブログ記事を添削する
・あるトピックに関する記事を機械的に生成する
・英文を機械翻訳して、その内容を更に日本語らしくする

あるコメントがポジティブかネガティブか判定出来る

こちらも大量のテキスト集合との比較により判定します。

以下のような用語編の辞書を事前に大量に用意しておきます。
ネガティブ=悪い、悪がしこい、悪達者・・・
ポジティブ=良い、良識的だ、良心的だ・・・

辞書内の語句と、調べたいコメントの語句をマッチさせてそのコメントがポジティブかネガティブかを判定するということです。

<この技術がブログ記事作成の自動化にどう貢献出来るか(例)>
・投稿されたコメントがネガティブなものだったら自動削除する
・批判的なコメントを集めてサイトの課題抽出と原因分析をする

以上となります。

近年、「この企業がAI使ってこんな素晴らしいサービスを展開した」というAI関連のニュースは多く出回ってますが、AIの知識ゼロの状態で記事を見ても雲の上の話で感心するか、職を奪われないかと心配するかしか出来ません。

本記事のように、AIに精通はしなくともAIで出来ることをなんとなく押さえておくことが重要だと思います。

そうするとAI関連ニュースがより身近になり、AIのどの技術を使ってサービスを開発したのかを想像することが出来ますし、その技術を真似して自分のサービスに組み込んでやろうといったように自身にプラスに働かすことも出来ますね。

他にもよいユースケースが見つかったら記事を更新したいと思います。