リアルタイムで収集したツイートから、url, 返信, RTを除去したものをテキストファイルとして生成すると同時に,ターミナルに表示させたいと思っています.
現在,ファイルもターミナルも取得したツイートが1文字ずつ分解されている上に,1部が正規表現によって置換されてしまっている状態です.
何とかして取得したツイートを元の文の形で書き込み・表示させるべく,お力をお貸しいただけますと幸いです
宜しくお願いします.
現状(ファイルの中身, test.txt)
現状(ターミナル)
コード
renshu.py
1import os 2import tweepy 3import redis 4from collections import Counter 5from collections import defaultdict 6import re 7from natto import MeCab 8import codecs 9import sys 10from sklearn.feature_extraction.text import TfidfVectorizer 11import glob 12import pandas as pd 13import numpy as np 14import urllib.request 15from gensim import corpora 16from itertools import chain 17 18#APIのauth部分は省略 19 20class StreamListener(tweepy.StreamListener): 21 def __init__(self): 22 super().__init__() 23 self.count = 0 # 取得したtweet数 24 25 def on_status(self, status): 26 text = str(status.text) 27 28 #日本語ツイートをファイルに書き込んでいる + ツイートの数を表示 29 if status.lang == "ja": 30 file = open("test.txt", "a", encoding="utf-8") 31 sentence = str(text) 32 #print(sentence) 33 sentence = re.sub(r"http\S+", "", sentence) 34 sentence = re.sub(r"@(\w+) ", "", sentence) 35 sentence = re.sub(r"(^RT.*)", "", sentence, flags=re.MULTILINE | re.DOTALL) 36 emoji_pattern = re.compile("[" 37 u"\U0001F600-\U0001F64F" 38 u"\U0001F300-\U0001F5FF" 39 u"\U0001F680-\U0001F6FF" 40 u"\U0001F1E0-\U0001F1FF" 41 "]+", flags=re.UNICODE) 42 sentence = emoji_pattern.sub("", sentence) 43 texts = set(sentence) 44 print(texts) 45 texts = file.write(str(texts)) 46 47#加工部分は省略 48 49stream = tweepy.Stream(auth=auth, listener=StreamListener()) 50stream.sample()
補足情報(FW/ツールのバージョンなど)
iOS 10.15, Python 3.7.4, Atom
どこで何がおかしくなっているのか、status.textの値から変換毎の値を都度確認してはどうでしょうか?
回答1件
あなたの回答
tips
プレビュー