我正在尝试清除以下数据:

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/

10-09 19:18