形態素解析、単語分析、ワードクラウド

環境設定

Google colaboratoryで実行できます

本プログラムに必要なライブラリをインストールします

  1. !pip install janome

  2. !pip install wikipedia

  3. !pip install japanize-matplotlib

  4. !apt-get -y install fonts-ipafont-gothic

(1)いろいろな文章の分かち書きを確認してください

bunsyouに代入した文章を分かち書きします。なお、下記のコマンドはGoogle colaboratoryで実行できます

    • bunsyou=""#@param{type:"string"}

  1. #文章の分かち書き


  2. from janome.tokenizer import Tokenizer

  3. t = Tokenizer()

  4. bunsyou=""#@param{type:"string"}

  5. for token in t.tokenize(bunsyou):

  6. print(token)

(2)Wikipediaから指定したキーワードに関するページの文章を読み込みます。

keywordで指定した単語に関するページをWikipediaで検索して、その中から、keyword_indexで指定したページを読み込みます。

  1. #Wikipediaからのテキスト読み込み


  2. import wikipedia


  3. keyword = ""#@param{type:"string"}


  4. wikipedia.set_lang("ja")

  5. search_response = wikipedia.search(keyword)

  6. for sr in search_response:

  7. print(search_response.index(sr),sr)

  8. keyword_index=#@param{type:"number"}

  9. print('読み込みページ:',search_response[keyword_index])

  10. page_data = wikipedia.page(search_response[keyword_index])

  11. docs=page_data.content

  12. docs

(3)品詞(名詞、動詞、形容詞、副詞など)を変えながら、指定した品詞の単語の出現回数を可視化してください。可視化する単語の個数も指定します。

keywordで指定した単語に関するページをWikipediaで検索して、その中から、keyword_indexで指定したページを読み込みます。

  1. #単語の出現頻度の計算


  2. from collections import Counter

  3. import collections

  4. import re

  5. import matplotlib.pyplot as plt

  6. import japanize_matplotlib


  7. word=[]

  8. for token in t.tokenize(docs):

  9. hinshi='\u540D\u8A5E'#@param{type:"string"}

  10. if re.match(hinshi, token.part_of_speech):

  11. word.append(token.surface)


  12. c_kosuu=30#@param{type:"integer"}

  13. c=collections.Counter(word).most_common(c_kosuu)

  14. values, counts = zip(*c)


  15. print(values)

  16. print(counts)

  17. plt.bar(values,counts)

  18. plt.show()

(4)ワードクラウド(単語の雲)で、指定した品詞の単語の出現頻度を可視化します。

  1. #単語の出現頻度の可視化(ワードクラウド)


  2. from wordcloud import WordCloud

  3. text=" ".join(word)

  4. fpath = '/usr/share/fonts/truetype/fonts-japanese-gothic.ttf'

  5. wordcloud = WordCloud(font_path=fpath,width=800, height=400).generate(text)

  6. plt.figure(figsize=(40,30))

  7. plt.imshow(wordcloud)

  8. plt.axis("off")

  9. plt.show()

北海道医療大学・情報センター