テキストデータを活用しよう

PythonBeginner
オンラインで実践に進む

はじめに

Python は、データ分析や統計計算の分野で広く活用されている、強力かつ汎用性の高いプログラミング言語です。その豊かなエコシステムには、テキスト分析や自然言語処理(Natural Language Processing)に特化したライブラリが含まれており、テキストデータを扱うための優れた選択肢となっています。

このチャレンジでは、Python の機能を活用して、一連のテキストファイル群に対してテキストベースの統計分析を行います。Python を使って、テキストデータからどのように意味のある洞察を抽出できるかを探っていきましょう。

これは「チャレンジ」です。ガイド付きの実験(Guided Lab)とは異なり、指示に従って学習するのではなく、独立して課題を完了させる必要があります。チャレンジは通常、少し難易度が高く設定されています。もし難しいと感じた場合は、Labby に相談するか、ソリューション(解決策)を確認してください。

単語の総数カウント

home/labex/files フォルダ内にいくつかのテキストファイルがあります。

あなたのタスクは、これらのテキストファイルをすべて読み込み、全ファイルに含まれる単語の総数を計算する word_count.py という名前の Python スクリプトを作成することです。

注意点として、句読点は単語としてカウントしません。例えば、"java" というファイルには 111 個の単語が含まれています。

要件

  • スクリプトを実行した際、コンソールに単語の総数を出力すること。
✨ 解答を確認して練習

高頻度単語の抽出

単語の総数をカウントできたら、次のタスクはすべてのテキストファイルを通じて最も頻繁に登場する単語のトップ 3 を特定することです。これを実現するために、top_3_high_frequencies.py という Python スクリプトを作成してください。スクリプトは、これら上位 3 つの単語とその出現頻度を、頻度の降順でコンソールに出力する必要があります。

出力例は以下の通りです:

python top_3_high_frequencies.py

## print word and frequency in console
word1 20
word2 15
word3 13

要件

  • スクリプトを実行した際、上位 3 つの単語とそのカウント数をコンソールに出力すること。
  • 単語のカウントはケースセンシティブ(大文字と小文字を区別)です。つまり、"Word" と "word" は別の単語として扱われます。
  • 句読点は単語の一部とはみなされず、カウントから除外する必要があります。
✨ 解答を確認して練習

単語の順序整列

次に、各ファイル内の単語の順序について考えてみましょう。各ファイルから「1 番目の単語」をすべて集め、次に「2 番目の単語」をすべて集める、といった処理を行いたい場合はどうすればよいでしょうか。

あなたのタスクは、各入力ファイルから n 番目の単語を取り出し、それらを output/n という名前の新しいファイルに書き出す step3_code.py という Python スクリプトを作成することです。ここで 'n' は単語の位置(1 から始まる)を表します。出力ファイルは /home/labex/project/output/ ディレクトリに作成してください。

例えば、各ファイルの最初の単語を対象とする場合、output/1 の内容は以下のようになります:

## output/1, start count with 1.
CentOS Java A Python Ubuntu

同様に、100 番目の単語(存在する場合)については、output/100 の内容は以下のようになります:

## output/100, the 100-th file, only java, linux and program have 100-th word.
applications and the

要件

  • output フォルダは /home/labex/project/ に配置すること。
  • ファイルを読み込む順序は問いませんが、各ファイル内の単語の順序は重要です。
  • 句読点は単語の一部とはみなされず、除外する必要があります。
✨ 解答を確認して練習

まとめ

この Python チャレンジでは、基本的なテキストデータ分析に Python を使用する方法を学びました。単語の総数のカウント、高頻度単語の特定、そして複数のテキストファイルから位置に基づいて単語を抽出し、別の出力ファイルに書き出す練習を行いました。このチャレンジを完了することで、Python でテキストデータを扱うための貴重なスキルを習得し、テキストベースの統計分析を行う能力を高めることができました。これらのスキルは、将来より高度なテキスト処理タスクに取り組む際の基礎となります。