使用 NLTK 和 Pandas 删除停用词

Stopword removal with NLTK and Pandas

我在使用 Pandas 和 NLTK 时遇到一些问题。我是编程新手,如果我问的问题可能很容易解决,请原谅。我有一个 csv 文件,它有 3 列(Id、标题、Body)和大约 15.000 行。

我的目标是从此 csv 文件中删除停用词。小写和拆分操作运行良好。但是我找不到为什么停用词没有被删除的错误。我错过了什么?

    import pandas as pd
    from nltk.corpus import stopwords

    pd.read_csv("test10in.csv", encoding="utf-8") 

    df = pd.read_csv("test10in.csv") 

    df.columns = ['Id','Title','Body']
    df['Title'] = df['Title'].str.lower().str.split()  
    df['Body'] = df['Body'].str.lower().str.split() 


    stop = stopwords.words('english')

    df['Title'].apply(lambda x: [item for item in x if item not in stop])
    df['Body'].apply(lambda x: [item for item in x if item not in stop])

    df.to_csv("test10out.csv")

您正在尝试进行就地替换。你应该做

   df['Title'] = df['Title'].apply(lambda x: [item for item in x if item not in stop])
    df['Body'] = df['Body'].apply(lambda x: [item for item in x if item not in stop])
df.replace(stop,regex=True,inplace=True)