python - 使用语义词表示(例如 word2vec)来构建分类器

标签 python classification word2vec

我想为论坛帖子构建一个分类器,它会自动对这些帖子进行分类 发布到一些定义的类别(因此多类分类不仅仅是二元分类 分类)通过使用语义词表示。对于这个任务我想利用 word2vec 和 doc2vec 并检查使用这些模型支持快速的可行性 选择分类器的训练数据。目前我已经尝试了两种模型 他们的工作就像魅力一样。但是,因为我不想手动标记每个句子来预测 它描述了什么,我想把这个任务留给 word2vec 或 doc2vec 模型。所以, 我的问题是:我可以在 Python 中使用什么算法作为分类器? ( 我刚在想 在 word2vec 或 doc2vec 上应用一些聚类 - 手动标记每个聚类(这 需要一些时间并且不是最好的解决方案)。以前,我使用过 “LinearSVC”(来自 SVM)和 OneVsRestClassifier,但是,我标记了每个句子(通过 手动训练向量“y_train”)以预测新测试的类别 句子将属于。 python中有什么好的算法和方法可以用于 这种类型的分类器(利用语义词表示来训练数据)?

最佳答案

诸如 word2vec/doc2vec 之类的东西(实际上是任何无监督分类器)的问题在于它只使用上下文。因此,例如,如果我有一个像“今天是炎热的一天”这样的句子和另一个像“今天是寒冷的一天”这样的句子,那么它认为炎热和寒冷非常相似,应该位于同一个集群中。

这使得标记变得非常糟糕。无论哪种方式,Python 的 gensim 模块中都有一个很好的 Doc2Vec 和 Word2Vec 实现 - 您可以快速使用 google-news 数据集的预构建二进制文件并测试是否获得有意义的集群。

您可以尝试的另一种方法是在您的计算机上实现一个简单的 lucene/solr 系统并开始随机标记几个句子。随着时间的推移,lucene/solr 会为您的文档建议清晰的标签,如果您的数据不是很糟糕,它们确实是相当不错的标签。

这里的问题是你试图解决的问题不是特别容易也不是完全可以解决的 - 如果你有非常好的/清晰的数据,那么你可能能够自动分类大约 80-90% 的数据......但是如果它不好,你将无法对其进行自动分类。

关于python - 使用语义词表示(例如 word2vec)来构建分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390838/

相关文章:

Python:比较单元测试中的嵌套数据结构

python - 替换给定索引处的所有 1 - numpy

python - 定义用于更改列值和创建新数据集的函数

r - 从 rpart 包中的决策规则中提取信息

python - 在 Python 中从文本创建序列向量

python - 如何在 Pandas 过滤功能中反转正则表达式

python - 如何在 Ubuntu 18.04 上安装 python3.7 并使用 pip 创建 virtualenv?

python - Scikit-learn Ridge 分类器 : extracting class probabilities

python - 在 scikit-learn 管道中使用 gensim word2vec

python - node2vec 支持负边权重吗?