Python 3.x 如何在python中从amazon_baby.csv中删除stopwords
我想删除Python 3.x 如何在python中从amazon_baby.csv中删除stopwords,python-3.x,scikit-learn,nltk,Python 3.x,Scikit Learn,Nltk,我想删除Amazon\u baby.csv中的停止词和标点符号 import pandas as pd data=pd.read_csv('amazon_baby.csv) data.fillna(value='',inplace=True) data.head() 如果在整个数据集内核上应用,则此代码最多执行10k行,并且始终显示为繁忙,并且单元未执行 请帮忙 查找数据集。您正在逐字符处理数据,这非常慢 这是因为数据量很大(~183531行),我们必须单独处理每一行,这使得复杂性达到O(
Amazon\u baby.csv
中的停止词和标点符号
import pandas as pd
data=pd.read_csv('amazon_baby.csv)
data.fillna(value='',inplace=True)
data.head()
如果在整个数据集内核上应用,则此代码最多执行10k行,并且始终显示为繁忙,并且单元未执行
请帮忙
查找数据集。您正在逐字符处理数据,这非常慢 这是因为数据量很大(~183531行),我们必须单独处理每一行,这使得复杂性达到O(n2)。 我在下面使用word_tokenize实现了一种稍微不同的方法:
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
def remove_punction_and_stopwords(msg):
stop_words = set(stopwords.words('english'))
word_tokens = word_tokenize(msg)
filtered_words = [w for w in msg if w not in word_tokens and w not in string.punctuation]
new_sentence = ''.join(filtered_words)
return new_sentence
我试着运行了6分钟,它处理了136322行。我敢肯定,如果我运行它10分钟,它会成功地完成执行。您正在逐字符处理数据,速度非常慢
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
def text_clean(msg):
tokens=word_tokenize(msg)
tokens=[w.lower() for w in tokens]
import string
stop_words=set(stopwords.words('english))
no_punc_and_stop_words=[w for w in tokens if w not in string.punctuation and w not in stop_words]
return words
这是因为数据量很大(~183531行),我们必须单独处理每一行,这使得复杂性达到O(n2)。
我在下面使用word_tokenize实现了一种稍微不同的方法:
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
def remove_punction_and_stopwords(msg):
stop_words = set(stopwords.words('english'))
word_tokens = word_tokenize(msg)
filtered_words = [w for w in msg if w not in word_tokens and w not in string.punctuation]
new_sentence = ''.join(filtered_words)
return new_sentence
我试着运行了6分钟,它处理了136322行。我敢肯定,如果我运行它10分钟,它会成功完成执行。Hi Vivek,正如您所说,代码在10分钟内执行,但输出略有不同。我对它做了一些小改动。现在它工作了。谢谢@VivekPlease别这样,太慢了。。。您好,Vivek,正如您所说,代码在10分钟内执行,但输出略有不同。我对它做了一些小改动。现在它可以工作了。谢谢@VivekPlease别这样,太慢了。。。看,请不要这样做,它也很慢。。。看,请不要这样做,它也很慢。。。看见
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
def text_clean(msg):
tokens=word_tokenize(msg)
tokens=[w.lower() for w in tokens]
import string
stop_words=set(stopwords.words('english))
no_punc_and_stop_words=[w for w in tokens if w not in string.punctuation and w not in stop_words]
return words