找出带有扩展字母的单词,并保留该字母的第一次出现

问题描述 投票:0回答:1

我有一个包含文本数据的数据框列。用重复的字母几乎没有单词。我想找到所有这些单词,然后将这些单词存储为字典中的键,将它们的正确拼写存储为字典中的值,然后将数据框中的单词替换为字典中的值。例如,如果我的数据框有像 -

id   text
1     Hiiiiiii
2     Good morninggggggg
3     See you soooonnnn

1)我需要在dataframe列中找到这样的单词2)将这些单词存储在字典中{Hiiiiiii:嗨,morninggggggg:morning,soooonnnn:soon} 3)然后将数据框中的这些单词替换为字典中的值4)Final输出应该看起来像 -

id   text
1     Hi
2     Good morning
3     See you soon
python python-3.x nlp text-processing stop-words
1个回答
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区分大小写。在进行任何进一步处理之前,您可能希望将所有文本转换为小写。

© www.soinside.com 2019 - 2024. All rights reserved.