从数据框列中删除无意义的单词

时间:2019-03-31 17:03:18

标签: python nlp text-processing

dataframe列包含的句子中只有很少的三个和两个没有意义的字母词。我想在dataframe列中找到所有这些单词,然后将它们从dataframe列中删除。 df-

id      text
1       happy birthday syz
2       vz
3       have a good bne weekend 

我想1)查找所有长度小于3的单词。(这将返回syz,vz,bne) 2)删除这些词 (请注意,停用词已被删除,因此“ dataframe”列中现在不存在“ a”,“ the”之类的单词,以上数据框仅是示例)

我尝试了以下代码,但不起作用

def word_length(text):
    words = []
    for word in text:
        if len(word) <= 3:
            words.append(word)
    return(words)

short_words = df['text'].apply(word_length).sum()

输出应为-

id      text
1       happy birthday 
2       
3       have good weekend 

1 个答案:

答案 0 :(得分:1)

您将功能应用于一列单词序列,而实际数据是一列字符串(符号序列) 您还应该删除.sum(),因为它完全多余。

以以下格式重写您应用的功能:

 def filter_short_words(text):
    return "".join([for w in text.split() if len(w) > 3])

这有效。