Python Pandas Vectorize удаляет непопулярные хэштеги из строк - PullRequest
0 голосов
/ 04 марта 2019

У меня есть функция, которая просматривает твиты и извлекает только популярные хэштеги и дескрипторы.Проблема в том, что у меня большой набор данных, и это занимает 10 или более минут, чтобы закончить.Я ищу способ "векторизовать" эту функцию, чтобы она работала быстрее.

У меня уже есть список популярных хэштегов

def get_popular_hashes(myString):
   myList = myString.split(' ')
   newStr = ''
   for x in myList:
      if x in popular_tags_list:
         newStr+=' '+x
   return newStr  

tweets2["popularHandles"] = tweets2.HashesAndHandles.apply(get_popular_hashes)

Если я смогу найти способ сделатьэто без .apply(), это даже лучше.

Например:

["I'm hungry. let's eat! #curlyfries @jackinthebox",
 "I got a 4.0 last semester! #scholarship #hardwork #stackoverflow"]

может превратиться в:

["@jackinthebox",
"#stackoverflow"
]

Большое спасибо вам, ребята!

1 Ответ

0 голосов
/ 04 марта 2019

Это решение, основанное на ваших комментариях.Работает отлично и НАМНОГО быстрее!Так волнительно!10-15 минут до 3 секунд - (даже не шучу).

def trim_unpopular_hashes_vectorized(myStr):
   myList = myStr.split(' ')
   newStr = ' '.join(filter(popular_tags_set.__contains__, myList))
   return newStr     



popular_tags_set=set(popular_tags_list)

tweets2["popularHandles"] = tweets2.HashesAndHandles.apply(trim_unpopular_hashes_vectorized)
...