У меня есть большой набор данных 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)
Однако это занимает очень много времени, поэтому не кажется эффективным. Есть ли более быстрый способ выполнить эту задачу?
Этот пост (Алгоритм поиска нескольких совпадений строк) похож, однако моя проблема отличается, потому что:
здесь есть только один большой кусок текста, а у меня есть набор данных с множеством разных строк
Я хочу заменить слова, а не просто найти слова.