teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードのさいど貼り直し

2020/02/06 08:19

投稿

pon244
pon244

スコア59

title CHANGED
File without changes
body CHANGED
@@ -1,45 +1,82 @@
1
- TwitterAPIを使用して、同じ言葉を呟かれてる分析をして、Mecabで一覧で出るようにしたのですが、
2
- それをエクセルで表示したいです。
1
+ 下記の結果Pandasを使用して格納し、エクセルに落としたいです。
2
+ 利用目的としては、複数同じ単語があるのでユニークにして数を計算したいです。
3
+ 単語名 件数 
4
+ コロナ 405
5
+ マスク 2
3
6
 
4
- どのようにデータを格納して、Pnadasを使用すればいいかわからず困っています。
7
+ ```
5
-
6
-
7
-
8
8
  #検索キーワード
9
9
  q = "#花粉 exclude:retweets"
10
-
10
+
11
11
  #データ取得
12
12
  tweet_doc =[]
13
13
  for tweet in tweepy.Cursor(api.search, q=q,tweet_mode="extended").items(500):
14
- tweet_doc.append(tweet.full_text)
14
+ tweet_doc.append(tweet.full_text)
15
15
  import MeCab
16
16
  def sep_by_mecab(text):
17
- m = MeCab.Tagger ('-Ochasen')
17
+ m = MeCab.Tagger ('-Ochasen')
18
- node = m.parseToNode(text)
18
+ node = m.parseToNode(text)
19
-
20
- word_list=[]
21
- while node:
22
- hinshi = node.feature.split(",")[0]
23
- if hinshi in ["名詞","動詞","形容詞"]:
24
- origin = node.feature.split(",")[6]
25
- if origin not in ["*","する","いる","なる","てる","れる","ある","こと","もの","HTTPS","花粉","花粉症","症"] :
26
- word_list.append(origin)
27
- node = node.next
28
-
29
- return word_list
30
19
 
20
+ word_list=[]
21
+ while node:
22
+ hinshi = node.feature.split(",")[0]
23
+ if hinshi in ["名詞","動詞","形容詞"]:
24
+ origin = node.feature.split(",")[6]
25
+ if origin not in ["*","する","いる","なる","てる","れる","ある","こと","もの","HTTPS","花粉","花粉症","症"] :
26
+ word_list.append(origin)
27
+ node = node.next
28
+
29
+ return word_list
31
30
  documents=[]
32
31
  for t in tweet_doc:
33
- documents.append(set(sep_by_mecab(t)))
32
+ documents.append(set(sep_by_mecab(t)))
34
33
  import pyfpgrowth
35
34
  import pprint
36
-
35
+
37
36
  #分析
38
37
  patterns = pyfpgrowth.find_frequent_patterns(documents, 30)
39
-
38
+
40
39
  #降順に並び替えて見やすく表示
41
40
  sorted_patterns = sorted(patterns.items(),reverse=True,key=lambda x:x[1])
42
41
  pprint.pprint(sorted_patterns)
42
+ ```
43
43
 
44
+ 結果
45
+ [(('マスク',), 169),
46
+ (('コロナ',), 94),
47
+ (('飛ぶ',), 72),
48
+ (('ウイルス', 'コロナ'), 67),
49
+ (('コロナ', 'マスク'), 67),
50
+ (('ウイルス', 'マスク'), 57),
51
+ (('対策',), 53),
52
+ (('日',), 51),
53
+ (('鼻',), 51),
54
+ (('ウイルス', 'コロナ', 'マスク'), 51),
55
+ (('目',), 44),
56
+ (('今日',), 44),
57
+ (('の',), 40),
58
+ (('アレルギー',), 40),
59
+ (('くる',), 39),
60
+ (('スギ',), 39),
61
+ (('でる',), 38),
62
+ (('コロナ', '新型'), 38),
63
+ (('インフルエンザ', 'マスク'), 38),
64
+ (('月',), 37),
65
+ (('鼻水',), 36),
66
+ (('ない',), 36),
67
+ (('インフルエンザ', 'ウイルス'), 36),
68
+ (('インフルエンザ', 'コロナ'), 36),
69
+ (('ん',), 35),
70
+ (('飛散',), 35),
71
+ (('でる', '飛ぶ'), 35),
72
+ (('できる',), 34),
73
+ (('くしゃみ',), 33),
74
+ (('ウイルス', '新型'), 32),
75
+ (('ウイルス', 'コロナ', '新型'), 31),
76
+ (('枚',), 30),
77
+ (('インフルエンザ', 'コロナ', 'マスク'), 30)]
44
- import pandas as pd
78
+ ===================
45
- df=DataFrame(??
79
+ 上記の結果をPndasで下記のように格納したいです!
80
+ 単語名 件数 
81
+ コロナ 405
82
+ マスク 2