[[ノート/テキストマイニング]]~

訪問者数 &counter();      最終更新 &lastmod();~

**twitterの頻出形容詞の実験 (2013-06-24) [#r6cd333a]

数えた結果 (過去120時間、MeCabで自立語としての形容詞に分類されたもの)~
&ref(2013-06-24_twitter過去120時間のツイートの形容詞上位10000.txt);

プログラム
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 import MySQLdb
 import codecs
 import sys
 import time
 import datetime
 import MeCab
 
 d = datetime.datetime.today()
 con = MySQLdb.connect(db="xxxx", host="localhost", port=3306,
                 user="xxxx", passwd="xxxx")
 mt = MeCab.Tagger()
 
 c = 0;
 table = {} # tableは{word:count, ...}の辞書
 
 for  i in range(-120,1):
   t =  (d + datetime.timedelta(hours=i)).strftime("%y%m%d%H")
   tablename = "tw" +  t
 
   s = "SHOW TABLES FROM twitter like '" + tablename + "'"
   cur = con.cursor()
   cur.execute(s.encode('utf_8'))
   cnt = cur.rowcount
   if (cnt==0):
      cur.close()
      print "No table"
      break
   cur.close()
 
   s = "SELECT text FROM " + tablename
   cur = con.cursor()
   cur.execute(s.encode('utf_8'))
   r = cur.fetchone()
 
   while (r != None):
     # print "---" + r[0].encode('utf_8')
     try: m = mt.parseToNode(r[0].encode('utf_8'))
     except UnicodeDecodeError:
        print "e"
        continue;
     while m:
        #print "m.surface\t", m.surface, "\t", m.feature
        mm = m.feature.split(',')
        hinshi = mm[0]
        hinshi2 = mm[1]
        hinshi3 = mm[2]
        #print "hinshi: ", hinshi
        if hinshi==u'形容詞' and hinshi2==u'自立':
           #print hinshi, hinshi2, m.surface, m.feature
           if table.has_key(m.surface):
              table[m.surface] = table[m.surface]+1
           else:
              table.update({m.surface:1})
        m = m.next
     # print "EOS"
     r = cur.fetchone()
     c = c+1;
   cur.close()
 
 con.close()
 print u"======== サンプル数", c
 
 c = 0
 for k, v in sorted(table.items(), key=lambda x:x[1], reverse=True):
   if c<=10000:
      print v, "\t", k
      c = c+1

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS