使用NLTK和Pandas删除停用词

slm*_*slm 8 python csv nltk stop-words pandas

我和Pandas和NLTK有一些问题.我是编程新手,所以如果我提出可能很容易解决的问题,请原谅.我有一个csv文件,其中有3列(Id,Title,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")
Run Code Online (Sandbox Code Playgroud)

Abt*_*Pst 13

你正试图做一个inplace替换.你应该做

   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])
Run Code Online (Sandbox Code Playgroud)

  • 别客气.我最近开始使用nltk进行文本处理,所以我自己犯了这些错误:)很乐意提供帮助.另外,请访问Kaggle.com,获取有关文本分析的一些很酷的入门教程.祝一切顺利 :) (2认同)