在 Python 中,我想一次性從我的 Pandas 資料框中洗掉所有停用詞,包括壞字符。
這是我嘗試過的:
stop_words_dataset = pd.read_csv(r'./stop.csv')
stop_words = stop_words_dataset['StopWords'].tolist()
dataframe['description'] = dataframe['description'].apply(lambda x: ' '.join([item for item in x.split() if item not in stop_words]))
但是,我的資料集仍然包含我的 stop.csv 中的一些字符...
stop words = ['OF','FT', ' ', '*', '-', '/', ')', '(']
例如,*并且/仍然在我的資料集在那里成功洗掉OF和FT,為什么呢?
我也對正則運算式做了同樣的事情,[^A-Za-z0-9] 但是,我更喜歡停止作業串列解決方案,并希望讓它作業。
具體例子:
stop_words_dataset = pd.read_csv(r'./stops.csv')
stop_words = stop_words_dataset['StopWords'].tolist()
# Remove stop words including bad characters.
dataframe['description'] = dataframe['description'].apply(lambda x: ' '.join([item for item in x.split() if item not in stop_words]))
停用詞串列的列印
['JUN', 'JUNE', 'JUL', 'JULY', 'AUG', 'OCT', 'NOV', 'DEC', 'FT', ' ', '*', '-', '/', ')', '(']
清洗后的示例資料集
清潔前
*CHIMNEY CAKE PARAD LONDON
PUMPKIN CAFE DEC
之后:
這包含*但DEC已被洗掉
*CHIMNEY CAKE PARAD LONDON
PUMPKIN CAFE
uj5u.com熱心網友回復:
您可以檢查單詞中的每個字母。那是因為您正在嘗試洗掉“/”,并且它可能是一個單詞的“內部”。
試試這個:
' '.join([''.join([l for l in item if l not in stop_words]) for item in x.split() if item not in stop_words])
uj5u.com熱心網友回復:
您還可以根據正則運算式\W 拆分任何非字母數字字符。
dataframe['description'] = dataframe['description'].apply(lambda x: ' '.join([item for item in re.split(r'\W ', x) if item not in stop_words and item != '']))
輸出:
>>> dataframe
description
0 CHIMNEY CAKE PARAD LONDON
1 PUMPKIN CAFE
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392035.html
