AttributeError: 'Connection' object has no attribute 'execute'
解決したいこと
以下の記事を参考にtwitterを利用したテキストマイニングをPythonを用いて作成しました。
ただ実行したところ以下のエラーが起きてしまいました。
解決方法を教えていただきたいです。
発生している問題・エラー
[ec2-user@ip-172-31-22-104 ~]$ python textmining.py
2022-01-20
Traceback (most recent call last):
File "textmining.py", line 71, in <module>
txts = fetch_target_day_n_random_tweets(target_day, docs_count)
File "textmining.py", line 25, in fetch_target_day_n_random_tweets
cursor.execute(SQL)
AttributeError: 'Connection' object has no attribute 'execute'
該当するソースコード
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import MySQLdb
import MeCab
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
### MySQL 上の Tweet データ取得用関数
def fetch_target_day_n_random_tweets(target_day, n = 2000):
with MySQLdb.connect(
host="〇〇〇〇",
user="〇〇〇〇",
passwd="〇〇〇〇",
db="textdata",
charset="utf8") as cursor:
SQL = """
SELECT
text
FROM
tweet
WHERE
DATE(created_at + INTERVAL 9 HOUR) = '%s'
LIMIT %s;
""" %(target_day, unicode(n))
cursor.execute(SQL)
result = cursor.fetchall()
l = [x[0] for x in result]
return l
自分で試したこと
withの位置が悪いのかと思い、以下のようにしましたが以下の試したコードのエラーのようになりました。
def fetch_target_day_n_random_tweets(target_day, n = 2000):
conn = MySQLdb.connect(
host="〇〇〇〇",
user="〇〇〇〇",
passwd="〇〇〇〇",
db="textdata",
charset="utf8") as cursor:
with conn.cursor() as cursor:
SQL = """
SELECT
text
FROM
tweet
WHERE
DATE(raw_created_at + INTERVAL 9 HOUR) = '%s'
LIMIT %s;
""" %(target_day, str(n))
cursor.execute(SQL)
result = cursor.fetchall()
l = [x[0] for x in result]
return l
試したコードのエラー
File "textmining.py", line 80, in <module>
tfidf_matrix = tfidf_vectorizer.fit_transform(target_day_nouns)
File "/home/ec2-user/.local/lib/python3.8/site-packages/sklearn/feature_extraction/text.py", line 2077, in fit_transform
X = super().fit_transform(raw_documents)
File "/home/ec2-user/.local/lib/python3.8/site-packages/sklearn/feature_extraction/text.py", line 1330, in fit_transform
vocabulary, X = self._count_vocab(raw_documents, self.fixed_vocabulary_)
File "/home/ec2-user/.local/lib/python3.8/site-packages/sklearn/feature_extraction/text.py", line 1220, in _count_vocab
raise ValueError(
ValueError: empty vocabulary; perhaps the documents only contain stop words
0