我正在尝试清除以下数据:
from sklearn import datasets
data = datasets.fetch_20newsgroups(categories=['rec.autos', 'rec.sport.baseball', 'soc.religion.christian'])
texts, targets = data['data'], data['target']
其中
texts
是文章列表,而targets
是向量,其中包含每篇文章所属类别的索引。我需要清理所有文章。清洁任务意味着:
删除标题
删除标点符号
删除括号
连续空格
令牌电子邮件的长度为1
换行
我是Python的新手,但我尝试使用replace()删除所有标点符号和所有内容。但是,我认为必须存在一种简单的方法来完成此任务。
def clean_articles (article):
return ' '.join([x for x in article[article.find('\n\n'):].replace('.','').replace('[','')
clean_articles(data['data'][1])
对于以下文章:
print(data['data'][1])
未清洗的物品:
'发件人:[email protected](Andrew A. Spencer)\ n主题:回复:太快\ n组织:美国俄亥俄州克利夫兰的凯斯西储大学\ n电话:25 \ n回复至:aas7 @ po。 CWRU.Edu(Andrew A. Spencer)\ nNNTP发布主机:slc5.ins.cwru.edu \ n \ n \ n在上一篇文章中,[email protected](wharfie)说:\ n \ n>在文章中<[email protected]> [email protected](吉姆弗罗斯特)写道:\ n >>更大的引擎。这就是SHO的本质-经过稍微修改的系列,具有强大的引擎的轿车。他们甚至都没有去改善刹车。\ n> \ n> \ t这表明您对任何事情都了解。 \ n> SHO上的制动器非常不同-周围都是9英寸(或9.5?我忘了)碟片,\ n>放到前面。正常的Taurus安装是(较小的)光盘前部,\ n>鼓后部。\ n \我也没有看到后部有通风孔……这很多。\ n当然,售货员是个傻瓜……”钛轮毂。”是的,。\\后来告诉我,它们是“镁”。。虽然可信,但仍然\ ncrap,因为Al便宜得多,而且质量也一样。...\ n \ n \ ni倾向于同意,因为这仍然不能使SHO定期达到130的“标准”水平。制动器应该更大一些,例如\ n11“左右...看一下Corrados上的制动器。(那里有\ n制动规则)。\ n \ nDREW \ n'
清洁物品:
UUCP码头在前一篇文章中说com com的吉姆·弗罗斯特(Jim Frost)编写了更大的引擎,这就是SHO是经过稍加修改的具有强大引擎的家庭轿车,他们甚至没有花心改善*刹车,这表明您对任何事情都了解多少SHO是非常不同的英寸,或者忘记了前部通风孔周围的光盘。正常的Taurus设置是较小的光盘前鼓后部,一个锯子的后部也有通风孔。当然,销售人员是愚蠢的钛轮毂,是的,后来告诉我,镁更令人信服,但仍会废铝,因为铝便宜得多,并且也往往同意,这仍无法使SHO定期达到130的标准运行。刹车应该更大,例如11左右,看看Corrados上有刹车规则DREW的那些
最佳答案
注意:这不是一个完整的答案,但是以下内容至少会让您半途而废:
删除标点符号
删除换行符
删除连续的空格
删除括号
import re
s = ';\n(a b.,'
print('before:', s)
s = re.sub('[.,;\n(){}\[\]]', '', s)
s = re.sub('\s+', ' ', s)
print('after:', s)
这将打印:
before: ;
(a b.,
after: a b
关于python - 如何清理字符串列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58737283/