код, который я использую, кажется слишком медленным, возможно, есть альтернатива.
в Pandas Я токенизировал столбец dataframe 'description' и создал список стоп-слов + пунктуации, которые нужно удалить, а затем попытался удалитьбесполезные слова.
import numpy as np
import pandas as pd
import nltk
import string
nltk.download("stopwords")
nltk.download('punkt')
df2 = pd.read_csv('xxx')
после очистки и т. д. в результате получают около 135 000 строк и не содержат нулей
description points price
0 This tremendous 100% varietal wine hails from ... 96 235.0
1 Ripe aromas of fig, blackberry and cassis are ... 96 110.0
2 Mac Watson honors the memory of a wine once ma... 96 90.0
3 This spent 20 months in 30% new French oak, an... 96 65.0
4 This is the top wine from La Bégude, named aft... 95 66.0
, затем токенизация
df2['description'] = df2.apply(lambda row:
nltk.word_tokenize(row['description']), axis=1)
df2.head()
токенизация прошла довольно быстро,теперь определяя бесполезные слова:
useless_words = nltk.corpus.stopwords.words("english") +
list(string.punctuation)
и теперь пытаясь использовать тот же трюк для удаления ненужных слов из df2['description']
df2['description'] = df2.apply(lambda row: [word for word in
df2['description'] if not word in useless_words], axis=1)
я ожидал, что это будет быстрее, ноэто занимает время, чтобы вычислить.Я новичок в кодировании, поэтому подумал, что, может быть, вы, ребята, знаете альтернативу, чтобы справиться с этим и заново вычислить время вычислений.также возможно я не сделал это правильно, я не знаю, поэтому я спрашиваю и благодарю заранее.