#第3回コード例 #################################################### #p13 #MeCabのインストール !pip install mecab-python3 #UniDic辞書のインストールとダウンロード !pip install unidic !python -m unidic download #################################################### #p14 #MeCabとunidicを使用するためのインポート文 import MeCab import unidic #文書を形態素に分けてタグ付けする機能を持つオブジェクト(タガー)を取得する tagger = MeCab.Tagger() #parseメソッドで形態素解析を実行する print(tagger.parse("静岡県立大学でpythonの講座を受講しています。")) #################################################### #p16 node = tagger.parseToNode("今日はとても寒いです。") while node: print(node.surface, " ", node.feature) node = node.next #################################################### #p19 #pandasのインポート import pandas as pd file = pd.ExcelFile("comment.xlsx") data = file.parse("回答") data.head() #################################################### #p20 comments = data["自由回答"].tolist() #自由回答の列をtolist()でリスト型に変換 words = [] #単語リスト(最初は空) for c in comments: #コメントを1つずつcに取り出して繰り返し node = tagger.parseToNode(c) #形態素解析を実行(最初の形態素がnodeに入る) #################################################### #p21 while node: #形態素がなくなるまで繰り返し hinshi = node.feature.split(",")[0] #品詞を抽出 if hinshi in ["名詞"]: #品詞が名詞ならば words.append(node.surface) #wordsリストに表層形を追加 node = node.next #次のnodeを新たなnodeとする print(len(words)) #単語の件数 print(words[:20]) #最初の20件の単語を表示 #################################################### #p22 from collections import Counter #Counter関数のインポート hindo = Counter(words) #単語の出現頻度の集計 print(hindo) #################################################### #p25 import matplotlib.pyplot as plt from wordcloud import WordCloud #WordCloudクラスのインポート #フォントファイルの指定(どちらか2種類切り替え) #fpath = "ipaexg.ttf" fpath = "ZenAntique-Regular.ttf" #WordCouldオブジェクトの生成 wordcloud = WordCloud(background_color="white", #背景色 width=600, #横幅 height=500, #高さ max_font_size=150, #フォントの最大サイズ font_path=fpath, #フォントファイル colormap="plasma") #色合い wordcloud.generate_from_frequencies(hindo) #hindoを元にワードクラウドを生成 plt.figure(figsize=(15,12)) #wordcloud画像の出力サイズ指定(幅と高さの実寸をインチ指定) plt.imshow(wordcloud) #wordcloud画像を出力 plt.axis("off") #縦軸と横軸は非表示 plt.show() #出力の確定 #################################################### #p29 swords = [] #ストップワードの一覧リスト(最初は空) f = open("stopword.txt") #ストップワードの一覧ファイルを開く txt = f.readlines() #ストップワードの一覧ファイルを行毎に読みtxtリストに格納 f.close() #ストップワードの一覧ファイルを閉じる print(txt) #確認用 swords = [line.strip() for line in txt] #ストップワードの行末の改行文字「¥n」をstripメソッドで取る print(swords) #確認用 comments = data["自由回答"].tolist() #自由回答の列をtolist()でリスト型に変換 words = [] #単語リスト(最初は空) for c in comments: #コメントを1つずつcに取り出して繰り返し node = tagger.parseToNode(c) #形態素解析を実行(最初の形態素がnodeに入る) while node: #形態素がなくなるまで繰り返し hinshi = node.feature.split(",")[0] #品詞を抽出 #品詞が名詞かつスットプワードで無いならば if hinshi in ["名詞"] and not node.surface in swords: words.append(node.surface) #wordsリストに表層形を追加 node = node.next #次のnodeを新たなnodeとする print(len(words)) #単語の件数 print(words[:20]) #最初の20件の単語を表示 print(words) #################################################### #p32 swords = [] #ストップワードの一覧リスト(最初は空) f = open("stopword.txt") #ストップワードの一覧ファイルを開く txt = f.readlines() #ストップワードの一覧ファイルを行毎に読みtxtリストに格納 f.close() #ストップワードの一覧ファイルを閉じる print(txt) #確認用 swords = [line.strip() for line in txt] #ストップワードの行末の改行文字「¥n」をstripメソッドで取る print(swords) #確認用 comments = data["自由回答"].tolist() #自由回答の列をtolist()でリスト型に変換 words = [] #単語リスト(最初は空) for c in comments: #コメントを1つずつcに取り出して繰り返し node = tagger.parseToNode(c) #形態素解析を実行(最初の形態素がnodeに入る) while node: #形態素がなくなるまで繰り返し hinshi = node.feature.split(",")[0] #品詞を抽出 #品詞が名詞かつスットプワードで無いならば if hinshi in ["名詞", "形容詞", "感動詞"] and not node.surface in swords: words.append(node.surface) #wordsリストに表層形を追加 node = node.next #次のnodeを新たなnodeとする print(len(words)) #単語の件数 print(words[:20]) #最初の20件の単語を表示 print(words) #################################################### #p33 #pandasのインポート import pandas as pd file = pd.ExcelFile("comment.xlsx") data = file.parse("回答") data.head() data = data[data["居住地"] == "静岡県"] data #################################################### #p37 tokuten = 90 if tokuten >= 80: print("合格") else: print("不合格") pref = "神奈川県" if pref in ["神奈川県", "東京都", "千葉県", "埼玉県"]: print("首都圏です") else: print("首都圏ではありません") #################################################### #p38 i = 0 while i < 10: print("Hello!" + str(i)) i += 1 #################################################### #p39 for i in [1, 2, 3, 4, 5]: print(i)