見出し画像

7.noteタイトル100分析続き:ChatGPTで不正確だったのでPythonのコードを書いてもらう作戦


前回のおさらい:単語の頻度を見ようとしたらChatGPTでうまくできなかった話

ChatGPTに関する人気Top100の記事タイトルを分析しようと、PythonでnoteAPIにアクセスしたまでは良かったのですが、ChatGPTのなんとなーくの傾向の分析に満足できず定量分析をしようとしたら行き詰りました。

ChatGPTでは、テキストマイニングができる、とChatGPT自身も言い張っているのですが、単語の分解がきちんとできていないようです。
というのが前回の話でした。

この記事は、前回の記事の続きとなりますので、未読の方は宜しければこちらからご覧ください。


単語が上手く分解できない原因を究明せよ

結論:ChatGPTは日本語が苦手でした

では、早速調査してみます。
といっても、何処から見ればいいのか… と悩んで目に付いたのが、 ChatGPTの回答で出ている analyzingの文字です。

よく見たら、クリックできます。

クリックしたところ、Pythonでコード書いていました。
そうです。ChatGPTに単語の頻度分析を頼んだら、結局のところ、ChatGPTの中でPythonを動かし、分析していた。という話だったのです。

どんどんChatGPTから話が離れてPythonの話になっていますが、とりあえず問題が解決すればOKなので、ツールに拘らずに、やってみることにしましょう。

<プロンプト>
”ChatGPTの” という、固有名詞と助詞の分解がきちんとできていない結果なのですが、どうしたら改善しますか?


「ChatGPTの」のように固有名詞と助詞が結合した形を正しく分解するためには、日本語テキストに特化した形態素解析器の使用が必要です。形態素解析器は、日本語のテキストを形態素(言語の最小単位)に分割し、各形態素の品詞情報も提供します。これにより、固有名詞、助詞、動詞などを正確に識別し、分離することが可能です。

代表的な形態素解析器には、MeCabやKuromojiなどがあります。これらは日本語テキストを処理する際に広く使用されています。

コードを改善するには以下の手順を踏みます:

  1. 形態素解析器のインストール: PythonでMeCabなどの形態素解析器をインストールします。

  2. テキストの解析: `extract_words`関数を修正して、形態素解析器を使用し、テキストから単語を抽出します。

  3. 頻度のカウント: 抽出された単語をCounterオブジェクトに渡して、頻度をカウントします。

  4. 結果の出力: 最後に、得られた頻度データをCSV形式で出力します。

ただし、現在の環境では外部ライブラリのインストールができないため、MeCabの使用例を直接示すことはできません。代わりに、MeCabを使用した形態素解析の一般的なプロセスを示す擬似コードを提供できます。実際のコーディングには、お使いの環境にMeCabをインストールし、適切な辞書を設定する必要があります。




ChatGPTにも、 現在の環境では外部ライブラリのインストールができない。と言われてしまったので、 日本語を分析するなら、作戦を ChatGPTでコードを書いて、Pythonを自力で回す。に変更するのが良さそうです。


そもそも、日本語で分析する? を考えました

作戦を ChatGPTでコードを書いて、Pythonを自力で回す。に変更するのが良さそうです。 と書きましたが、実は思いつく作戦は2つあります。

1)日本語を日本語のまま分析する

  • ChatGPTでPythonのコードを書く

  • 自力でPythonwを動かし、その際に日本語テキストに特化した形態素解析器(MeCab)をインストールする

  • そのまま、出てきた結果を考察する

2)日本語を英語に直して分析して、また英語から日本語に直して考察する

  • 分析対象となる日本語を、まとめて日→英の機械翻訳に突っ込む

  • ChatGPT上で、英語のデータを分析させる

  • ChatGPTから出力した結果を、英→日の機械翻訳に突っ込む

それぞれ、メリットデメリットがあるので、その脳内議論をChatGPTにまとめてもらいました。


1)日本語をそのまま分析するアプローチ

メリット

  • 言語のニュアンス保持: 日本語の文脈やニュアンスが保持され、言語固有の表現や意味合いが失われるリスクを最小限に抑えます。

  • 文化的・言語的特性の理解: 日本語固有の表現や文化的背景に基づく意味を正確に捉えることができます。

デメリット

  • 分析ツールの限定: 日本語テキストに特化した形態素解析器(例:MeCab)の利用が難しい場合、精度の高い言語解析が困難になることがあります。

  • プログラミングスキル要件: Pythonなどのプログラミング言語でのスクリプト作成能力が必要になります。

2)日本語を英語に翻訳して分析するアプローチ

メリット

  • 分析ツールのアクセシビリティ: 英語に翻訳することで、幅広い分析ツールやライブラリが利用可能になり、分析の選択肢が広がります。

  • 国際的な共有・発表の容易さ: 研究成果や分析結果を英語で出力することにより、国際的な共有や発表が容易になります。

デメリット

  • 翻訳誤差のリスク: 日英翻訳により、元のテキストのニュアンスや意味合いが変化する可能性があります。

  • 二重翻訳による意味の歪み: 日本語を英語に翻訳し、さらにその結果を日本語に戻す過程で、意味の歪みや誤解が生じるリスクがあります。

適用される文書の性質

  • 1)のアプローチが適している文書: カジュアルな文章や主語述語の関係が曖昧な短文など、言語のニュアンスが重要な役割を果たすテキスト。これらの文書では、言語固有の表現や微妙な意味合いが重要であり、直接的な分析が望ましい場合が多いです。

  • 2)のアプローチが適している文書: 論文やフォーマルなレポートなど、言語の正確性や論理的な構造が重視される文書。これらの文書では、内容が明確で、翻訳による意味の歪みが比較的少なく、英語の分析ツールでの処理が適しています。



noteのタイトルは、日本語のままの分析でやってみることに

noteの記事タイトルは、その記事の内容を簡潔に表現するため、比喩的な言い回しや主語・述語の省略があります。また、記号が使われることもあります。これを英訳するのは、かなりの難題でしょう。

ChatGPTにも、 日本語のままが良さげというフォローのコメントをもらいました。 ※noteではなくブログと表現されています


  • 言語のニュアンス: ブログのタイトルには、読者の注意を引きつけるための創造的な表現や、特定の感情を喚起するニュアンスが含まれていることが多く、これらの要素は直接の日本語分析で適切に捉えることができます。

  • 文化的背景: ブログのタイトルは、特定の文化的背景や言葉遊びを含む場合があり、これらは日本語のままでないとその意図や美しさを完全には伝えられない可能性があります。

  • 即時性とアクセシビリティ: ブログは時にトレンドや時事ネタを取り入れることがあり、これらの要素は翻訳を介さずに素早く反映させる必要がある場合があります。

ただし、ブログの記事タイトルが非常にシンプルで直接的な情報を伝えるものである場合や、国際的な視聴者をターゲットにしている場合は、翻訳を介した分析(2)のアプローチが適している場合もあります。例えば、科学研究や技術的な内容を扱うブログで、そのタイトルが具体的な事実や結果を述べている場合、精度の高い翻訳により幅広い視聴者に情報を提供することが可能です。




というわけで、MeCab を使ってPythonで分析を進めたいと思います。


単語の頻度分析実践編

Pythonのコードの準備

実は、素晴らしい既存の記事が存在し、ド素人でもコピペすればできると気付いてしまいました。先人の記事に感謝です。


なお、以前の記事でご紹介したGoogle Colabで実施する場合は、コピペの際に一番初めの部分だけ、!の追記が必要になります。


Pythonのコードの改造

単語ごとにカウントして、出現数順に並び変えるという実装まで、先人の記事から拝借することができます。
私はその後、print以下の部分をChatGPTで書き換えてcsv出力にしました。

さらに、csv読み込みのコードブロックを追加し、input_file.csv というファイルをphythonで読み込むことで、 100タイトルをphythonで処理するように変更します。

この辺りはすべて、ChatGPTにお願いしてコードを書いてもらっています。

あとは、実行するだけです!



2/4時点のたぶん人気記事Top100の分析結果


単語出現頻度 top15

きちんと分析できたのが嬉しかったので、まずは表を載せてみました。
上位に英語が来るということは、ChatGPTで英語を扱う方法については、一定の需要があるということ。画像も同様です。
また、3,4,5 と言った数字は、タイトルにChatGPTのバージョンを載せる方が多いということかと思います。

抽出できた単語は、332語。
その出現頻度ですが、16位以下について書くと、

  • 4回出てきた単語:6単語

  • 3回出てきた単語:16単語

  • 2回出てきた単語:47単語

  • 1回出てきた単語:248単語

結構ばらついています。傾向が掴みづらいです。

こういう時こそ、ChatGPTに単語頻度の結果の解説も頼んでみます。
<プロンプト>
ChatGPTに関する100件の記事を 単語の頻度分析したら 以下のようになりました。
データからわかることを解説してください。


このデータから、ChatGPTに関する記事の内容や関心の焦点をいくつかの側面から読み解くことができます。

  1. 主要なキーワードの出現頻度:

    • 「ChatGPT」が90回と最も多く出現していることから、これらの記事がChatGPT自体やその使用例に重点を置いていることが明らかです。

    • 「AI」が11回、「生成」が9回出現していることは、AI技術とその生成能力が重要な話題であることを示しています。

    • 「プロンプト」、「質問」、「方法」がそれぞれ7回、6回という頻度で出現しており、ChatGPTを使う際の具体的な方法やプロンプトの使用、質問応答の機能が注目されていることがわかります。

  2. バージョンと技術の進化:

    • 数字の「4」「3」「5」がそれぞれ15回、7回、5回として出現しており、これはChatGPTや関連するGPTモデルのバージョンに関する言及かもしれません。これは技術の進化や異なるバージョン間の比較が話題になっていることを示しています。

  3. 関連技術との組み合わせ:

    • 「画像」が5回、「DALL・E」が4回出現しており、ChatGPTやその他のAI技術と組み合わせて画像生成についても議論されていることが示唆されます。

  4. 使用例と応用分野:

    • 「検証」、「攻略」、「挑戦」、「ブログ」、「入門」などの用語が出現しており、ChatGPTを使用したさまざまな活動やコンテンツ作成、学習ガイドなどが話題になっていることがわかります。

    • 「ライター」、「クリエイター」、「イラスト」、「絵本」などの言葉も見られ、クリエイティブな分野でのChatGPTの利用が注目されています。

  5. 話題の多様性:

    • 「論文」、「違い」、「ガイド」、「悲劇」、「絵」などの多岐にわたるキーワードが出現しており、ChatGPTに関する議論が技術的な側面だけでなく、文化的、教育的な観点からも行われていることが伺えます。

この分析から、ChatGPTと関連AI技術に対する高い関心とその応用範囲の広さ、技術の進化に対する追跡、さらにはクリエイティブな使用例への注目が明らかになります。また、記事の内容は技術的な詳細から具体的な使用方法、教育やクリエイティブな分野での応用に至るまで非常に多岐にわたっています。




いかがでしょうか?
目で見てわかりにくいと思った傾向を、しっかり文章でまとめてくれました。
この辺りにChatGPTの活路がありそうということで次に進みます。


ChatGPTで原文を読ませたときの差分

前回の記事で、記事の100タイトルを原文で読み込ませて、その傾向をChatGPTに回答してもらいました。

前回の回答と、今回の分析=原文と単語頻度分析で、わかることにどんな違いがあるかを見てみます。
<プロンプト>
以下の文章は、 あなたが、 単語頻度分析前の原文を読んで出力した 記事タイトルの傾向に関するコメントです。一つ前の出力と比較して、 単語頻度分析によって、どのような点がよりクリアになり、どのような点は単語頻度分析によって捨象されてしまったかを解説しなさい。
(前回の文章は省略)


単語頻度分析によって得られたデータは、記事のタイトルに含まれるキーワードの頻度に基づいており、ChatGPTに関する話題の広がりや注目ポイントを数値的に明らかにします。この分析をもとにした解説と、原文を読んで出力した記事タイトルの傾向に関するコメントを比較すると、以下の点がクリアになり、また捨象されてしまった点を識別できます。

よりクリアになった点:

  1. 主要な関心事:

    • 単語頻度分析からは、「ChatGPT」、「AI」、「生成」などのキーワードが多く出現していることが確認でき、これらの技術やその生成能力が中心的な関心事であることがより具体的に明らかになります。

  2. 具体的な応用と活用方法:

    • 「プロンプト」、「質問」、「方法」などの用語の頻出により、実用的な応用例やChatGPTの活用方法に関する記事が多いことが数値的に示され、特定のタスク解決や分野での活用法に関する関心が高いことが強調されます。

  3. 技術的な進化と比較:

    • 数字(例えば、「4」「3」「5」)の出現頻度からは、ChatGPTや関連するGPTモデルのバージョン、および技術的な進化や比較に関する記事が存在することが示唆されます。

捨象されてしまった点:

  1. 深い考察や社会的、倫理的側面:

    • 単語頻度分析では、社会的影響や倫理的考察に関する具体的な内容や、これらのトピックに対する深い洞察が捨象されがちです。頻度だけでは、これらの側面が記事内でどのように扱われているかの質や深さを把握することは難しいです。

  2. 創造性と芸術への応用:

    • 単語頻度分析では「絵本」「イラスト」などのキーワードが出現しているものの、創造性や芸術への応用がどのような形で行われているか、その具体性やクリエイティブなプロジェクトの内容まで詳細には分かりません。

  3. プラグインと統合の詳細:

    • プラグイン機能や他のサービス・ツールとの統合に関する記事も、キーワードの頻出からある程度推察できますが、どのようなプラグインやサービスが話題になっているか、その具体的な使用方法や統合の詳細は分析からは読み取れません。

単語頻度分析によって、記事のタイトルにおけるキーワードの傾向や重点が数値的に明らかになる一方で、記事の内容の質や深さ、具体的な事例やプロジェクトの詳細など、より複雑な側面は捉えにくくなります。これは、単語の出現頻度だけでは、テキストの意味や文脈を完全には表現できないためです。




捨象されている点がもっともらしく書かれていますが、「本当に、創造性や芸術への応用がどのような形で行われているか、その具体性やクリエイティブなプロジェクトの内容まで詳細が含まれていますか?」と再ツッコミを入れたところ「創造性や芸術への応用の具体性やクリエイティブなプロジェクトの詳細には直接触れられていません」とChatGPTに前言を翻されました。

なので、情報が一部削れてしまうことを恐れず、単語頻度分析を噛ませることで、ChatGPTからより具体的な考察を得るチャンスが増えると考えられます。

  • 「検証」、「攻略」、「挑戦」、「ブログ」、「入門」などの用語が出現しており、ChatGPTを使用したさまざまな活動やコンテンツ作成、学習ガイドなどが話題になっていることがわかります。

の部分はまさに新しく出てきた考察で、たとえば 学習ガイドが話題になっている というのは、前の記事では読み取れなかった情報です。
原文はもともとあるので、両方見ればOKです。

今後の市場調査について

さて、試しにTop100で見てみましたが、もう少し数を増やして傾向を見ることをやってみたいと思っています。
また、今回はなおりんの興味に合わせてChatGPTで記事を絞り込みましたが、有料note市場を見るなら、”有料note”で絞り込んで調査を行うべきですね。

どれぐらいの数、どのテーマで有料記事とするかわかりませんが、せっかくデータが扱えることが分かったので面白い記事が書けたらと思っています。

それでは、長くなったので今日はここで終わりにします。


いただいたサポートはChatGPT有料版の費用に使わせていただきます!