テキストマイニングを使用することによって、SNSやアンケートなど大量のデータの中から、マーケティングに活用できるデータや商品開発に活かせる声などの貴重な情報を抽出することができます。そこで、この記事では、テキストマイニングとは何か、またテキストマイニングの活用方法や無料ツールまでわかりやすく解説します。
公開日: 2021年3月15日
テキストマイニングとは?活用するべき?
『テキストマイニング』とは、文章を対象としたデータマイニングのことです。
データマイニングは、統計学や人工知能といったデータ解析の技術を利用して大量のデータを分析し、規則性のある情報を取り出す技術のことです。詳しくは「5分でわかる!データマイニングの意味と手法」を参照してください。
具体的には、「私は横浜市に住んでいます。」という文章を、自然言語処理によって「私/は/横浜市/に/住んで/います。」というように単語に区切ります。
そして、テキストマイニングでは、分解した単語から、出現頻度や出現傾向、タイミングなどを分析し、有用な情報を取り出します。
この文章だけではわかりませんが、例えば、テキストマイニングにより、「夕方つぶやいている人は、神奈川県に住んでいる人が多い」などの情報が得られるのです。
テキストマイニングの流れは、はじめに形態素解析を行います。形態素解析では、自然言語処理によってテキストデータを単語ごとに分割しますが、このとき、過去形の単語は元の言葉に戻します。その後、そのテキストデータの中で同じ言葉がどのぐらい使われているのか、共通して用いられている単語は何かなどのルールをもとに単語の重要度や関連度を調べるのです。そして、人間が見やすいようにグラフを作り可視化します。これがテキストマイニングの一連の流れになります。
自然言語処理についてもっと詳しく知りたい方は、「自然言語処理とは?スマートスピーカーにも使われている技術をわかりやすく解説!」を参照してください。
テキストマイニングは、大量の文章の中から内容を大まかに把握したり、特徴を抽出したりすることが得意です。一方、文脈を正確に把握することや、さまざまな意味にとれる単語の分析は苦手なので注意しましょう。
テキストマイニングを導入・活用するメリット
テキストマイニングを導入することで下記のようなメリットを獲得できます。
- 幅広い意見や潜在的なニーズの獲得
- 設問にとらわれない自由な感想を獲得
- 消費者からのリアルタイムな意見の獲得
- データ分析の自動化によるコスト削減
- 分析精度の向上
それぞれのメリットについて詳しく見ていきましょう。
◎幅広い意見や潜在的なニーズの獲得
テキストマイニングを活用することで、顧客が本当に求めているニーズを知ることができます。また、Webサイトへのお問い合わせやアンケートなど、多くの意見を集約して分析できるため、ユーザーからの意見や要望、感想などを漏らすことなく拾うことも可能です。
◎設問にとらわれない自由な感想を獲得
アンケートは一般的に設問や選択肢が設けられているため、消費者からの声が一定方向に偏ってしまう傾向があります。テキストマイニングを利用すれば、消費者へ選択肢を設けず、自由な感想を書いてもらい、その内容を分析できます。そのため、時間をかけずに、消費者の生の声を拾うことができます。
◎消費者からのリアルタイムな意見の獲得
テキストマイニングは、SNSなどに投稿された意見をリアルタイムで分析することができます。これにより、消費者からの意見を素早く取り入れ、商品やサービスの向上に役立ちます。
◎データ分析の自動化によるコスト削減
テキストマイニングを活用することで、大幅なコストの削減が可能です。大量のデータを人間が手作業で分析する場合、人件費や時間がかかります。しかし、テキストマイニングで分析を自動化することで、大幅なコストダウンが見込めます。
◎分析精度の向上
今後も世界中で情報が大量に蓄積されていくことが予想されます。それに伴い、テキストマイニングの利用機会も増えるため、テキストマイニングの技術ならびに分析精度の向上が期待できます。
大量に蓄積されていく情報、ビッグデータについては、「ビッグデータの活用事例を業種別に解説!必要となるスキルは?」の記事も参考にしてみてください。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >テキストマイニングの活用方法をご紹介
テキストマイニングの一般的な活用方法は、消費者ニーズの分析、社内業務改善、未来予測です。それぞれの活用方法について詳しく解説します。
テキストマイニングの活用方法1 消費者のニーズを分析
先述の通り、データマイニングを利用すれば、インターネット上にある膨大な情報から分析ができます。これにより、年齢や性別にわけて需要のある商品を把握することが可能です。このデータは商品開発などに役立てることができるでしょう。
また、SNSなどからデータを取得し、分析することで、自社商品・サービスを利用しているユーザーの声を拾うことができます。そこから改善点や問題点、新たな商品・サービスの開発の発見につながる可能性があります。
さらに、Twitterなどのつぶやきを分析することで、商品の宣伝に適したインフルエンサーを見つけ出すこともできるでしょう。
テキストマイニングの活用方法2 社内の業務改善
社員同士のメールやチャットをテキストマイニングを活用して解析すれば、働き方でどのようなことに悩んでいるのかを把握し、業務環境の改善につなげることができます。また、業務報告書やレポートを分析して、社員の傾向を知ることができたり、問題点を発見したりすることもできます。
テキストマイニングの活用方法3 未来予測
3つ目の活用方法は、未来予測です。テキストマイニングを活用して未来予測をすることができます。例えば、インターネットやSNS上のつぶやきから経済・株価の変動を予測したり、需要の伸びる分野を特定したりすることが可能です。
また、SNSから人の動向を把握して、コロナウイルスなどの感染症にかかった感染者の推移を予測することもできます。
Pythonを使ってテキストマイニングをしてみよう
次に、Pythonを使ってテキストマイニングをしてみましょう。Pythonは、データ分析が得意なプログラミング言語で、機械学習やディープラーニングを行う際にも頻繁に使用されています。Pythonについて基礎的な内容から詳しく知りたいという方は、「Pythonでできることは?機械学習から業務効率化まで初心者向けに解説」をご参照ください。
Pythonを使ったテキストマイニングの流れ
早速、Pythonを使ったテキストマイニングの流れを見ていきましょう。具体的には、Pythonを使用して、文章中にある単語の出現頻度を可視化します。最後にテキストマイニングができるツールをご紹介しますので、プログラミングの経験がない方も、ぜひ最後まで読んでみてください。
今回、使用する環境はMacOS Catalina バージョン10.15.5です。
1.WordCloudライブラリのインストール
ターミナルを起動して下記のコマンドでWordCloudライブラリをインストールします。
1 |
pip3 install wordcloud |
2.WordCloudライブラリのインポート
インストールできたら、コーディングしていきましょう。下記のコードを使用すれば、WordCloudのインポートできます。
1 |
from wordcloud import WordCloud |
3.元のテキストファイルの読み込み
次にテキストファイルを読み込みます。テキストファイルは事前に準備し、Pythonファイルを同じ場所に移動させてください。今回のチュートリアルではdata.txtとします。
1 2 3 4 5 |
text_file = open("data.txt") readingdata = text_file.read() txt = readingdata |
また、テキストファイルではなく、Twitterからテキストファイルを取得する場合、下記のコードが必要です。今回は、タイムラインのつぶやきを取得しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import json import config from requests_oauthlib import OAuth1Session from time import sleep import emoji # 絵文字を削除しています。 def remove_emoji(src_str): return ''.join(c for c in src_str if c not in emoji.UNICODE_EMOJI) # TwitterのAPIキー設定です。 CK = config.CONSUMER_KEY CS = config.CONSUMER_SECRET AT = config.ACCESS_TOKEN ATS = config.ACCESS_TOKEN_SECRET # Twitterの認証処理 twitter = OAuth1Session(CK, CS, AT, ATS) url = "https://api.twitter.com/1.1/statuses/user_timeline.json" params = {'screen_name': '@以降のアカウント名を記載', 'exclude_replies': True, 'include_rts': False, 'count': 200} # 任意の出力先ファイルを設定してください。 f_out = open('./output/tweet_data', 'w') for j in range(100): res = twitter.get(url, params=params) if res.status_code == 200: # API残り回数 limit = res.headers['x-rate-limit-remaining'] print("API remain: " + limit) if limit == 1: sleep(60*15) n = 0 timeline = json.loads(res.text) # 各ツイートの本文を表示 for i in range(len(timeline)): if i != len(timeline)-1: f_out.write(remove_emoji(timeline[i]['text']) + '\n') else: f_out.write(remove_emoji(timeline[i]['text']) + '\n') params['max_id'] = timeline[i]['id']-1 f_out.close() # 出力したファイルを読み込む with open('./output/tweet_data', 'r') as f: reader = csv.reader(f, delimiter='\t') texts = [] for row in reader: if(len(row) > 0): text = row[0].split('http') texts.append(text[0]) words_count, words = counter(texts) # テキストファイル同様、txtにデータを代入する txt = ' '.join(words) |
3.WordCloudオブジェクトの生成
下記のコードを追加してWordCloudオブジェクトを生成します。
1 2 3 4 |
#フォントパスは任意のものを選択してください。 wordcloud = WordCloud(background_color="white", font_path="System/Library/Fonts/HelveticaNeue.ttc", width=800,height=600).generate(txt) |
4.画像ファイルの生成
下記のコードでファイルを生成します。
1 |
wordcloud.to_file("./wordcloud_data.png") |
テキストマイニングを試せる無料ツール3選
最後にプログラムを書かなくてもテキストマイニングができるおすすめの無料ツールを3種類ご紹介します。
無料ツール1AIテキストマイニング by ユーザーローカル
無料ツールとして有名なのが、ユーザーローカルです。ブラウザー上で利用することができるため、アプリケーションをインストールする必要がありません。そのため、手軽に利用できる点はメリットです。
また、テキスト分析の可視化や未来予測、自動要約はもちろんのこと、ユーザーローカルが提供するSocial Insightを利用すればSNS分析もできます。プログラミングの知識がなくてもテキストを入力するだけでテキストマイニングを行うことができるので便利なツールです。
無料ツール2EXCEL
ExcelはWindowsが提供する表計算ソフトウェアです。本来は有料のツールですが、パソコンに付属していたり、会社のパソコンにインストールされていたりするケースが多いので、中には無料で利用できる方もいるでしょう。
ExcelにはCOUNTIF関数があります。COUNTIF関数はセル内にある単語の出現頻度を調べることが可能です。また、SUM関数を利用すれば、単語の個数を集計できたり、INDEX関数を使えば、指定範囲の単語の合計数を計算できたりします。これらの関数を利用すれば、分析を行うことができるため、Excelを使い慣れている方はおすすめです。
しかし、Excelには文章を単語でわける機能はありません、そのため、文章を単語でわけたい方は、ほかのサービスと併用する必要があります。
無料ツール3KHCoder
KHCoderはパソコンにインストールして文章を分割したり、独自ルールを定めてテキストマイニングができたりするアプリケーションです。有償サポートを利用する、もしくはターミナル上で操作することで分析処理することができます。無料で使う場合、ターミナルを操作しなければなりません。また、インストールする手間がかかるため、手軽さを求める場合、ユーザーローカルがおすすめです。
今回は、テキストマイニングの基本的な説明とPythonを利用したテキストマイニング、分析ができる無料ツールをご紹介しました。テキストマイニング膨大な情報から顧客のニーズや経済の予測などができるため、ぜひ覚えておきたい知識です。また、プログラミングの知識がなくても無料ツールを利用すれば分析することができるため、プログラミングが苦手な方は無料ツールの利用をおすすめします。
Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup・Selenium・Requests)
Python3のスクレイピング用ライブラリ BeautifulSoup・Selenium を用いて、世界中のWebサイトからデータを取得します。効率的にデータを収集・活用することで、業務の効率化・生産性向上に貢献する技術を身に付けましょう!
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
私はpython初心者の中年です。その私から見ても落ち着いた話し方に知性を感じ、セリフもあらかじめ作られているので、無駄がなく、優良かつ有料なのも納得です。
評価:★★★★★
Webスクレイピングを体系立てて勉強できました。短期間で広範囲をカバーしているので、大変有意義なコースでした。
最新情報・キャンペーン情報発信中