我有一个来自sklearn中可用的20NewsGroups数据集的培训和测试数据集。我已经导入了数据并创建了一个单词,我可以通过一个朴素的贝叶斯分类器来运行它。目前的代码如下:
def prep(categories):
# Import Newsgroup data
datatrain = fetch_20newsgroups(subset='train', categories=categories)
datatest = fetch_20newsgroups(subset='test', categories=categories)
countvect = CountVectorizer() # Create CountVectorizer
Xtrain_counts = countvect.fit_transform(datatrain.data)
tfidf = TfidfTransformer() # Term-frequency transformer
Xtrain_tfidf = tfidf.fit_transform(Xtrain_counts)
print "\nTfidf Dimensions: %s" % str(Xtrain_tfidf.shape)
print "\nVocabulary: %s" % str(len(countvect.vocabulary_)) + " unique \'words\'"
从这里开始,我想修剪数据,以便忽略像“w32w”这样的字符串或电子邮件ID或像“an”,“the”,“is”这样的常用词,以尝试提高分类器的准确性。我有一个可以捕获下面的电子邮件的正则表达式:
found = re.findall(r'[\w\.-]+@[\w\.-]+', Xtrain_tfidf)
如何以删除匹配的数据的方式应用正则表达式,以及如何扩展正则表达式以包含常用字?
字符串示例:
来自:matt-dah@dsv.su.se(Mattias Dahlberg) 主题:Re:REAL-3D 组织:斯德哥尔摩大学计算机与系统科学系 线路:17 X-Newsreader:TIN [版本1.1 PL8]
Rauno Haapaniemi(raunoh@otol.fi)写道:
今天早些时候,我读了一则关于REAL-3D动画的广告。射线追踪软件 它看起来很有说服力。
是的,确实看起来非常好。
但是,我没有Amiga,所以我开始怀疑,如果有PC的话 版本。
不。
预期产出:
Mattias Dahlberg REAL-3D计算机系统科学系斯德哥尔摩大学Rauno Haapaniemi今天早些时候阅读了真实3D动画和广告的广告。光线跟踪软件看起来非常有说服力是的确看起来非常好但是我没有Amiga,所以开始怀疑有没有PC版的Nope
通过此,您可以看到电子邮件,常用字词,标点符号都已被删除。