如何使用相同的重复字母转换否定和单个单词

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

我有一个数据框,其中包含一个包含文本数据的列。我想删除那些毫无意义的词,并将“不是”的否定转换为“不是”来自文本数据。因为当我删除标点符号“不是”变成“不是”时,当我删除字母小于长度2的单词时,“t”将被完全删除。所以,我想做以下3个任务 - 1)将“不是”等否定转换为“不是”2)删除无意义的单词3)删除少于2个字母的长度例如,df列看起来类似于这个-

user_id     text data column
    1        it's the coldest day
    2        they aren't going
    3        aa
    4        how are you jkhf
    5        v
    6        ps
    7       jkhf

输出应该是 -

user_id     text data column
    1        it is the coldest day
    2        they are not going
    3        
    4        how are you 
    5        
    6       
    7      

怎么实现这个?

python-3.x nlp text-processing
2个回答
1
投票
def is_repetitive(w):
    """Predicate, true for words like jj or aaaaa."""
    w = str(w)  # caller should have provided a single word as input
    return len(w) > 1 and all((c == w[0]  for c in w[1:]))

将语料库中的所有单词提供给该函数,以累积重复单词列表。然后将这些单词添加到停用词列表中。


0
投票

1)使用SpaCy或NLTK的词形还原工具来转换字符串(尽管它们还会执行其他操作,例如将复数转换为单数 - 因此您可能最终需要编写自己的代码来执行此操作)。

2)使用来自NLTK或spacy的停用词来删除明显的停用词。或者,给它们提供你自己的停用词列表(它们的默认停用词就像是a,a,the)。

3)如果len <2删除行,则使用基本过滤器

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