问题标签 [document-classification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
490 浏览

svm - 特征选择后重新归一化特征向量

我已经使用sklearn.feature_extraction.text.TfidfVectorizer对已经转换为 TF*IDF 特征向量的训练文档执行了 χ² 特征选择,默认情况下会生成归一化向量。然而,在选择了前 K 个信息量最大的特征后,由于移除了维度,向量不再被归一化(所有向量现在的长度 < 1)。

是否建议在特征选择后重新归一化特征向量?我也不太清楚 B/T 标准化和缩放的主要区别。它们是否为 SVC 等学习者提供类似的目的?

预先感谢您的友好回答!

0 投票
4 回答
5171 浏览

java - 文本分类分类器

有人知道好的开源文本分类模型吗?我知道 Stanford Classifier、Weka、Mallet 等,但它们都需要培训。

我需要将新闻文章分类为体育/政治/健康/游戏/等。有没有预先训练好的模型?

Alchemy、OpenCalais 等不是选项。我需要开源工具(最好是 Java)。

0 投票
1 回答
1787 浏览

python - 如何使用 csr_matrix 初始化 gensim 语料库变量?

我有 X 作为我使用 scikit 的 tfidf 矢量化器获得的 csr_matrix,而 y 是一个数组

我的计划是使用 LDA 创建功能,但是,我找不到如何使用 X 作为 csr_matrix 来初始化 gensim 的语料库变量。换句话说,我不想下载 gensim 文档中显示的语料库,也不想将 X 转换为密集矩阵,因为它会消耗大量内存并且计算机可能会挂起。

简而言之,我的问题如下,

  1. 鉴于我有一个代表整个语料库的 csr_matrix (稀疏),你如何初始化一个 gensim 语料库?
  2. 如何使用 LDA 提取特征?
0 投票
1 回答
1142 浏览

nltk - NLTK 和 scikit-learn 中的伯努利朴素贝叶斯结果不同

使用 NLTK 中的 Bernoulli Naive Bayes 算法和 scikit-learn 模块中的算法对文本(仅分为两类)进行分类时,我得到了完全不同的结果。尽管两者之间的总体准确度相当(尽管远非相同),但 I 型和 II 型错误的差异是显着的。特别是,NLTK 朴素贝叶斯分类器给出的 I 类错误多于 II 类错误,而 scikit-learn 则相反。这种“异常”似乎在不同的特征和不同的训练样本中是一致的。是否有一个原因 ?两者谁更值得信赖?

0 投票
2 回答
793 浏览

postgresql - 集群数据库中的文本文档

我确实在 PostgreSQL 数据库中加载了 20.000 个文本文件,一行中的一个文件,全部存储在以docsdoc_iddoc_content.

我知道大约有 8 种类型的文档。以下是我的问题:

  • 我怎样才能找到这些组?
  • 我可以使用一些相似性、差异性度量吗?
  • PostgreSQL中是否有一些最长公共子字符串的实现?
  • PostgreSQL 中是否有一些文本挖掘的扩展?(我只找到了Tsearch,但这似乎是在 2007 年最后一次更新)

我可能可以使用 some like '%%'or SIMILAR TO,但可能有更好的方法。

0 投票
0 回答
192 浏览

python - 改进文档分类方法

我有一个程序来预测新闻文章是否与某个主题有关。

有两个主要脚本:

1) bow_train.py - 生成一个词表和一个模型并将它们存储在两个文件中(arab.model 和 wordList.pkl)

2) bow_predict.py - 使用词表和模型对未知文章进行分类

使用的方法是逻辑回归而不是支持向量机,因为这种分类的逻辑回归的性能应该要好得多。

我想改进结果。是否有另一种方法可以让您强调某些关键字。例如,对于“阿拉伯之春”主题,我会输入一个关键字列表:[“抗议”、“动荡”、“革命”等],带有这些关键字的文件比没有这些关键字的文件有更高的概率。

bow_predict.py

bow_train.py

0 投票
3 回答
192 浏览

python - 根据内容相似度在网格中排列文档

如何将文档排列到一个空间(例如多个网格)中,以便放置它们的位置包含有关它们与其他文档的相似程度的信息。我研究了 K-means 聚类,但如果数据很大,它的计算量会有点大。我正在寻找诸如散列文档内容之类的东西,以便它们可以容纳在大空间中,并且相似的文档将具有相似的散列并且它们之间的距离会很小。在这种情况下,很容易找到与给定文档相似的文档,而无需做很多额外的工作。

结果可能类似于下图。在这种情况下,音乐文件接近电影文件,但远离与计算机相关的文件。盒子可以被认为是整个文件的世界。

在此处输入图像描述

任何帮助将不胜感激。

谢谢

jvc007

0 投票
1 回答
1006 浏览

classification - 特征向量:计算训练集与测试集的权重

我正在使用支持向量机进行文本分类,但基本上我对测试集的特征向量计算感到困惑。

对于训练特征向量,我为每个训练数据取 TF-IDF 向量,并使用 TF-IDF 值构建了一个特征矩阵 [docs x terms]。

但是如何计算测试集的特征向量呢?我应该只使用训练集中的 TF-IDF 值来计算它吗?

例如:在特定单词“apple”的训练集中,文档频率为 5。对于测试集,我应该将值 5 用于“apple”吗?还是根据测试集重新计算 TF-IDF?或者更确切地说,我在计算特征向量时走错路了吗?

提前致谢!

0 投票
1 回答
1293 浏览

machine-learning - KNN 分类器情感分析 vs 类别分析精度

我在java中实现了KNN分类器,结果很奇怪。如果我对数据集示例亚马逊书评进行情感分析,我得到了 55% 的准确率。从 100 个测试文档中,55 个正确分类为负面或正面评论,45 个错误分类。但如果我将 KNN 用于类别分类示例相机或书籍,那么我的准确率达到 95%。

有一些解释我的代码是错误的?任何想法?

0 投票
1 回答
305 浏览

machine-learning - Scikit-learn:BernoulliNB,v0.10 与 v0.13:非常不同的结果

这是该线程的后续内容,在那里我使用 GaussianNB 分类器得到了错误的结果,结果证明这是因为我在我正在做实验的 linux VM 上安装了 scikit-learn v0.10。我最终改用了 Bernoulli 和 Multinomial NB 分类器,但是当我(最终)在我的 macbook 上安装了 scipy 时,我抓取的 scikit-learn 版本是 0.13,这是撰写本文时的最新版本。我现在遇到了一个新问题:

  • 在 v0.10 上,我使用 BernoulliNB 分类器在我的一个功能集上获得了超过 90% 的准确率,这是迄今为止我获得的唯一显着改进。
  • 在 v0.13 上,大约 67% 使用完全相同的代码

有谁知道版本之间有什么变化?我查看了回购历史,但没有看到任何可以解释这种准确性变化的原因。由于我使用 BernoulliNB v0.10 获得了非常好的结果,我显然很想使用它们,但我很犹豫是否这样做,而不是对版本之间的冲突结果有更多的了解。

我尝试设置(较新的)class_prior 属性,但这并没有改变 0.13 的结果。

编辑:没有提出一个可行的例子(我会继续努力),0.13的结果有很大的偏差,这不是我对贝叶斯分类器的期望,让我相信它可能有是对类先​​前计算的回归,尽管我还没有找到它。例如:

编辑2:

我手工完成了几个例子。0.13版肯定是对的,0.10版肯定不是,这是我既怀疑又害怕的。0.10 中的错误似乎在类先验计算中。该_count函数存在错误,特别是在文件的这一行,类计数完全错误:与0.13 分支相比,忽略了两个分支在不同位置引入了平滑因子。

我必须更多地考虑这一点,为什么拙劣的特征计数会导致我的数据表现如此出色,我仍然有点不确定为什么设置类先验不起作用。也许这是对源文件中已经存在的男性偏见的惩罚?

编辑3:

我相信这正是它正在做的事情。该_count函数,以及因此在 内的特征先验的计算fit,不会使该参数生效,因此虽然在 内考虑了 class_priors predict,但它们不用于在训练期间构建模型。不确定这是否是故意的——你想在测试时忽略用于构建模型的先验吗?