在Python中,我想一次从我的熊猫数据中删除包括坏字符在内的所有停止词。
,这就是我尝试过的:
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,为什么?
我对regex也做了同样的工作,[^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 DECAfter:,它包含*,但DEC被删除
*CHIMNEY CAKE PARAD LONDON
PUMPKIN CAFE发布于 2021-12-23 16:38:06
你可以检查单词中的每一个字母。那是因为你试图删除"/",而且它可能是“内部”一个单词。
试试这个:
' '.join([''.join([l for l in item if l not in stop_words]) for item in x.split() if item not in stop_words])发布于 2021-12-23 16:40:26
还可以根据正则表达式\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 CAFEhttps://stackoverflow.com/questions/70464715
复制相似问题