如何清理字符串列表

问题描述 投票:1回答:1

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

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](吉姆弗罗斯特(Jim Frost))在<[email protected]>文章中写道:\ n >>更大的引擎。这就是SHO的本质-经过稍微修改的系列,具有强大引擎的轿车。他们甚至都没有去改善\ n >> 刹车。 \ 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码头说,在吉姆·弗罗斯特(Jim Frost)的文章中写道,这是SHO稍作改动的家用轿车,具有强大的引擎,他们甚至都没有去改善*刹车,这表明您对刹车有多少了解SHO上的英寸大不相同,或者忘记了前面的通风孔。正常的Taurus设置是较小的光盘,前鼓后部的一个锯也有通风孔,当然,销售人员当然是傻瓜钛轮,是的,后来告诉我它们的镁含量更高,但仍然便宜,因为Al的价格便宜得多,而且也很容易达成共识,以至于这仍无法使SHO定期达到130的标准运行。制动器应更大,例如11左右看看Corrados上有制动规定的车辆DREW

python string data-cleaning
1个回答
0
投票

注意:这不是一个完整的答案,但是以下内容至少会让您半途而废:

  • 删除标点符号
  • 删除换行符
  • 删除连续的空格
  • 删除括号
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
© www.soinside.com 2019 - 2024. All rights reserved.