我一直在阅读更多关于情感分类(分析)的现代文章,例如this。
以 IMDB 数据集为例,我发现使用 Doc2Vec (88%) 获得了相似的准确率,但是使用带有三元语法的简单 tfidf 矢量化器进行特征提取的结果要好得多 (91%)。我认为这类似于Mikolov 2015 年论文中的表 2 。
我认为通过使用更大的数据集,这会改变。所以我从这里开始使用 1mill training 和 1 mill test 的细分重新运行我的实验。不幸的是,在那种情况下,我的 tfidf vectoriser 特征提取方法增加到 93%,但 doc2vec 下降到 85%。
我想知道这是否可以预料,其他人是否发现 tfidf 即使对于大型语料库也优于 doc2vec?
我的数据清理很简单:
def clean_review(review):
temp = BeautifulSoup(review, "lxml").get_text()
punctuation = """.,?!:;(){}[]"""
for char in punctuation
temp = temp.replace(char, ' ' + char + ' ')
words = " ".join(temp.lower().split()) + "\n"
return words
我已经尝试为 Doc2Vec 模型使用 400 和 1200 功能:
model = Doc2Vec(min_count=2, window=10, size=model_feat_size, sample=1e-4, negative=5, workers=cores)
而我的 tfidf 矢量化器有 40,000 个最大特征:
vectorizer = TfidfVectorizer(max_features = 40000, ngram_range = (1, 3), sublinear_tf = True)
对于分类,我尝试了一些线性方法,但是发现简单的逻辑回归就可以了……