Search

応用に挑戦!メールアンケートの回答をPythonで自動収集・分析 - ITpro

全11414文字

Pythonにはメールを制御するためのライブラリが標準で用意されている。これを使ってメールの受信から分析までの一連の作業を自動化する方法を解説する。

第3部
メールアンケート 自動収集・自動分析

 Gmailでメールを受信し、差出人や件名や本文を取得する方法が理解できたと思います。いよいよ、メールアンケート回答の自動収集・自動分析をPythonで行いましょう。

プログラムの仕様

 本稿で作成する自動化プログラムの仕様は、下記および図14の通りです。

図14●本稿の自動化プログラムの仕様。メールアドレスはダミー

図14●本稿の自動化プログラムの仕様。メールアドレスはダミー

[画像のクリックで拡大表示]

■機能概要

  • ある架空の企業が複数の顧客に向けてメールでアンケートを依頼。顧客からの回答を返信メールで受け取り、回答の内容をメール本文から抽出。
  • 抽出した回答はCSVファイルで保存。
  • 簡単なデータ分析も実施。

■アンケート依頼メール

  • アンケートを依頼する顧客は3名。
  • 件名は「アンケートのお願い<ENQID0001>」。「<ENQID0001>」がアンケート回答メールを検索するためのキーワード。
  • アンケートの設問数は3問。
  • アンケートの内容は図15(顧客がWeb版Gmailで受信した画面例)のとおり。各設問に対して1〜5の選択肢を選ぶ形式。
図15●顧客が受け取ったアンケート依頼メール。設問は3問で、選択肢1〜5を選び、返信メールに入力する

図15●顧客が受け取ったアンケート依頼メール。設問は3問で、選択肢1〜5を選び、返信メールに入力する

[画像のクリックで拡大表示]

■アンケート回答メール

  • 依頼メールに返信で回答。
  • 回答欄の接頭語「A~:」の直後に、選択肢を半角数値で入力。
  • 企業が顧客から受け取った回答の返信メールの画面例は図16
  • 回答メールの本文から、回答である選択肢の数値を抽出して収集。
  • 回答メールの差出人の形式は「ユーザー名<メールアドレス>」のみを対象とする。Yahoo!メールなど、他の形式のメールサービスは対象外。
図16●企業が受け取ったアンケート回答メールの例。「A~:」の直後に回答が半角数値で入力されている

図16●企業が受け取ったアンケート回答メールの例。「A~:」の直後に回答が半角数値で入力されている

[画像のクリックで拡大表示]

■回答のCSVファイル保存

  • CSVファイル名は「アンケート回答ENQID0001.csv」。
  • 置き場所はホームディレクトリ。
  • 文字コードはUTF-8。BOM付き。
  • 列はA列「メールアドレス」、B列「A1」、C列「A2」、D列「A3」の4列(図17)。1行目が列見出し。
  • A列「メールアドレス」には、回答メールから顧客のメールアドレスを抽出して入力。B~C列は回答をそのまま入力。
図17●CSVファイル「アンケート回答ENQID0001.csv」をExcelで開いた画面

図17●CSVファイル「アンケート回答ENQID0001.csv」をExcelで開いた画面

[画像のクリックで拡大表示]

■分析

  • pandasを使い、平均値や標準偏差などの基本統計量と各選択肢の相関係数をJupyter Notebookのセルに出力

 上記の仕様について補足します。

 アンケート依頼メールの件名の前半部分は「アンケートのお願い」という日本語です。そのあとに続く半角英数字の「<ENQID0001>」が検索対象です。顧客が依頼メールに返信すると、この件名が「Re:アンケートのお願い<ENQID0001>」といったかたちになります。Pythonのプログラム側では、検索値「<ENQID0001>」が含まれる件名なら、アンケートの回答メールと判別します。

 なお、「<>」で囲っているのは単に筆者が決めただけであり、日本語を含む文字列からの部分一致検索に必要な書式というわけではありません。

 そして、第2部のリスト1では、件名を検索する処理では、IMAP4オブジェクトのsearchメソッドの検索値に日本語を指定するとエラーになる、と解説しました。日本語でエラーになるのはあくまでも検索値です。検索値「<ENQID0001>」は英数字のみであり、部分一致で検索されることから、検索対象の件名に日本語が含まれていても問題ありません。

Adblock test (Why?)



from "応用" - Google ニュース https://ift.tt/EGNZWTs
via IFTTT

Bagikan Berita Ini

0 Response to "応用に挑戦!メールアンケートの回答をPythonで自動収集・分析 - ITpro"

Post a Comment

Powered by Blogger.