я определил класс для обработки блоков твитов, чтобы я мог управлять им немного легчекласса не функционируют методы правильно
class twitter_block(object):
def __init__(self):
self.tweets = []
self.df = pd.DataFrame()
self.tag = ''
def load(self, data):
self.tweets = [x for x in data]
затем определил метод как часть трубопровода:
def clean(self):
HTTP_PATTERN = '^https?:\/\/.*[\r\n]*'
AT_PATTERN = '@\w+ ?'
# tke away links
self.tweets = [re.sub(HTTP_PATTERN, '', str(x), flags=re.MULTILINE) for x in self.tweets]
# take away @ signs
self.tweets = [re.sub(AT_PATTERN,'',str(x)) for x in self.tweets]
но когда я это называю:
tweet = load_data('The_Donald.json')
block = twitter_block(tag='donald')
block.load(data=tweet)
block.clean()
block.print()
он возвращает 1504 твитов, которые я загрузил в объект блока так же, как и раньше, без clea ни ссылок, ни чего-либо. Хотя, на самом деле это удалить @ знаки ... но этот метод,
def smilecheck(self):
#save a tweet if there is a smiley there
smiley_pattern = '^(:\(|:\))+$'
for tweet in self.tweets:
if re.match(smiley_pattern, str(tweet)):
pass
else:
self.tweets.remove(tweet)
не удаляет твиты без смайликов, возвращает 1504 твитов, так же, как я вставил ... либо помощь, ребята? Я уверен, что это проблема с тем, как я приближаюсь объекты
Это ваш фактический отступа или вы не смогли правильно транскрибировать его? Пожалуйста, тщательно отформатируйте свой отступ, потому что плохо сшитый код Python - это нонсенс. – khelwood