使用 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)
我在使用 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)