【问题标题】:Stopword removal with NLTK and Pandas使用 NLTK 和 Pandas 删除停用词
【发布时间】:2016-01-19 15:20:00
【问题描述】:

我对 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")

【问题讨论】:

    标签: python csv pandas nltk stop-words


    【解决方案1】:

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

       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])
    

    【讨论】:

    • 非常感谢。我猜我缺乏编程经验 :) 你是当时的英雄。
    • 不客气。我最近开始使用 nltk 进行文本处理,所以我自己犯了这些错误 :) 很高兴能提供帮助。另外,请查看 Kaggle.com,了解一些关于文本分析的酷入门教程。一切顺利:)
    【解决方案2】:
    df.replace(stop,regex=True,inplace=True)
    

    【讨论】:

      猜你喜欢
      • 2013-10-08
      • 1970-01-01
      • 2021-02-02
      • 2013-05-12
      • 1970-01-01
      • 2016-11-11
      • 2014-01-21
      • 1970-01-01
      • 2015-01-20
      相关资源
      最近更新 更多