我有一个dataframe列,其中包含文本数据。它很少有带有重复字母的单词。我想找到所有这些单词,然后将这些单词作为关键字存储在字典中,并将其正确的拼写作为字典中的值存储,然后将数据框中的单词替换为其字典中的值。例如,如果我的数据框中包含-
id text
1 Hiiiiiii
2 Good morninggggggg
3 See you soooonnnn
1)我需要在数据框列中找到这样的单词 2)将这些单词存储在字典中{Hiiiiiii:嗨,Morninggggggg:早晨,soooonnnn:很快} 3)然后将数据框中的这些单词替换为字典中的值 4)最终输出应类似于-
id text
1 Hi
2 Good morning
3 See you soon
答案 0 :(得分:0)
以下功能报告带有重复的单词。请记住,split()
在识别单词方面通常做得很平庸。您可能希望将其替换为nltk.word_tokenize()
。
import re
def find_bad(sent):
return [w for w in sent.split()
if re.search(r'(:?\w)\1\1', w, re.I)]
将该函数应用于数据框中的每个句子并收集结果:
bad_words = df['text'].apply(find_bad).sum()
# ['Hiiiiiii', 'morninggggggg', 'soooonnnn']
我将跳过字典构建部分,因为它是(a)琐碎的,而(b)需要用户交互。假设字典名称为corrections
。现在,您可以使用词典来修复您的文本了:
df['text'] = df['text'].replace(corrections, regex=True)
同样,请记住replace
区分大小写。您可能需要将所有文本转换为小写,然后再进行进一步处理。