У меня большой набор данных all_transcripts
с почти 3 миллионами строк. Один из столбцов msgText
содержит письменные сообщения.
>>> all_transcripts['msgText']
['this is my first message']
['second message is here']
['this is my third message']
Кроме того, у меня есть список из 200+ слов, который называется gemeentes
.
>>> gemeentes
['first','second','third' ... ]
Если слово в этом списке содержится в msgText
, я хочу заменить его другим словом. Для этого я создал функцию:
def replaceCity(text):
newText = text.replace(plaatsnaam, 'woonplaats')
return str(newText)
Итак, мой желаемый результат будет выглядеть так:
['this is my woonplaats message']
['woonplaats message is here']
['this is my woonplaats message']
В настоящее время я перебираю список и для каждого элемента в моем списке применяю функцию replaceCity
.
for plaatsnaam in gemeentes:
global(plaatsnaam)
all_transcripts['filtered_text'] = test.msgText.apply(replaceCity)
Однако это занимает очень много времени, поэтому, похоже, неэффективно. Есть ли более быстрый способ выполнить эту задачу?
Этот пост ( Алгоритм поиска совпадений нескольких строк ) похож, но моя проблема в другом, потому что:
здесь есть только один большой кусок текста, в то время как у меня есть
набор данных с множеством разных строк
Я хочу заменить слова, а не просто найти слова.