我在文本分析的数据清理中遇到了一个问题。现在,我已经对我的数据执行了四次正则表达式,但仍然存在不需要的单词。我想知道是否有一种选择单词的方法!我知道Scikit-learn有这个选项,但我不是在处理英文文本。这是我在上面输入的内容,但我想知道是否有其他方法可以做到这一点
def clean(data):
e = re.compile(r"\b[a-zA-Z]\b") #single letters
data = e.sub('', data)
r = re.compile(r'<[^<]*?>') # html tags
data = r.sub('', data)
p = re.compile(r'[^-\w]') # remove characters like \n
data = p.sub(' ', data)
q = re.compile(r'[\d_\.]*') # remove numbers
return q.sub('', data)
发布于 2018-07-09 16:35:22
我用几行代码替换了第一个和第二个正则表达式,并且工作得非常好。
def clean(data):
p = re.compile(r'[^-\w]') # remove characters
data = p.sub(' ', data)
q = re.compile(r'[\d_\.]*') # remove numbers
return q.sub('', data)
for i in text_train:
for j, t in enumerate(text_train[i]):
text_train[i][j] = [w for w in clean(t).split() if len(w)>1]
上面的代码对文本进行了标记,只接受包含一个以上字母的单词。对于另一个问题,我尝试了@laurent_laporte答案,但我的文本中仍然有&
。取而代之的是在停用词文件中添加了,不是专业的,但工作。
https://stackoverflow.com/questions/51200247
复制相似问题