この例では、国家運輸安全委員会による、2001年に米国で発生した航空機のインシデントレポートを使用します。まず、事故原因の調査結果に関する記述を分析します。次に、トピックごとに分類してみて、各トピックの内容を探ります。
1. [ヘルプ]>[サンプルデータフォルダ]を選択し、「Aircraft Incidents.jmp」を開きます。
2. [行]>[列の値による色/マーカー分け]を選択します。
3. 列のリストで「死亡者」を選択し、[OK]をクリックします。
致命的な事故の行が、赤で示されます。
4. [分析]>[テキストエクスプローラ]を選択します。
5. 「列の選択」リストで「事故原因」を選択し、[テキスト列]をクリックします。
6. 「言語」から[英語]を選択します。
7. 「言語」として[英語]を選択した後、「語幹抽出」リストから[すべての単語]を選択します。
8. 「トークン化」リストから[基本ワード]を選択します。
9. [OK]をクリックします。
図12.14 「事故原因」のテキストエクスプローラ
レポートによると、約51,000個のトークンと、約1,900個の異なる単語が含まれていることがわかります。
10. 「単語」リストの「pilot」を右クリックし、[行の選択]を選択します。
データテーブルで選択されている行数を見ると、インシデントレポートに「pilot」を含む単語が1,300回以上出現していることがわかります。
11. 「pilot」を右クリックして、[ストップワードの追加]を選択します。
「pilot」を含む単語は、他の単語より頻繁に出現しているため、文書間の違いを読み取るためには役立ちません。「pilot」を語幹とするすべての単語が、ストップワードに追加されます。
この後の手順は、JMP Proでのみ実行できます。
12. 「「事故原因」のテキストエクスプローラ」の赤い三角ボタンをクリックし、[潜在意味分析, 特異値分解]を選択します。
これは、特異値分解の結果を回転するトピック分析を行う前の、最初のステップです。
13. 「設定」ウィンドウで、「単語の最小度数」に「50」と入力します。
約51,000個の全トークン中、少なくとも0.1%の割合を占める単語を抽出します。
14. [OK]をクリックします。
図12.15 事故原因の特異値分解プロット
文書の特異値分解プロットでは、「fatal」と「non-fatal」の違いはあまり見られません。
15. 「特異値分解(中心化・尺度化, TF IDF)」の赤い三角ボタンをクリックし、[トピック分析, 特異値分解を回転]を選択します。
単語のグループから形成されるトピックを表示します。
16. 「トピックの個数」に「5」と入力します。
17. [OK]をクリックします。
図12.16 「事故原因」のトピック別上位負荷量
各トピック中の負荷量が高い単語は、インシデントレポートの主題を見極める手がかりとなります。
たとえばトピック1では、「power」、「loss」、「engine」という単語が高い負荷量を記録しており、エンジンの出力低下に起因する事故を示唆しています。これは、「loss of engine power」という句が、インシデントレポート全体に273回出現しているのに対応しています。
トピック2では、「low」、「dark」といった単語が高い負荷量を記録しており、暗さや低空と関連する事故を示唆しています。
18. 「トピックスコアのプロット」のグレーの開閉ボタンをクリックします。
図12.17 事故原因のトピックスコアのプロット
トピックスコアのプロットでは、コーパスに含まれる文書がそれぞれ1つの点で表されます。プロットで点を選択して、特定の文書のテキストを詳しく調べることができます。
トピック2について調べたいとしましょう。
19. トピック2のプロット上で一番右に位置する3つの点を選択し、グラフの左上にある[テキストの表示]ボタンをクリックします。
新しいウィンドウが開き、トピック2の中で最もスコアが高い3つの文書のテキストが表示されます。それを見ると、やはりトピック2と低空に関連があることがわかります。
この後にも、様々な分析が考えられます。テキスト分析は、反復的なプロセスです。トピック情報を参考に、ストップワードを追加したり、特定の句を単語に指定したりするなどして、単語リストを整理してもよいでしょう。また、文書単語行列・主成分スコア(左特異ベクトル)・回転した主成分スコアをデータテーブルに保存して、JMPの他のプラットフォームで分析を進めてもよいでしょう。そのとき、テキスト分析で得られた情報と、データにある他の情報との関係を調べてみてもよいでしょう。