问题标签 [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 回答
496 浏览

java - Java 和 Heritrix 3.1.x:Web 内容解析?

由于 Heritrix 3.x 的开发人员文档在很大程度上已经过时(其中大部分与 Heritrix 1.x 有关,因为大多数类已更改或代码已被大幅重写/重构),任何人都可以指出相关的处理实际网页内容提取的系统的类(或类)?

我想要做的是获取Heritrix即将抓取的网页内容,然后将分类器应用于网页内容?(分析结构特征等)我认为这个功能可能分布在 ContentExtractor 类及其许多子类中,但我想做的是找到我拥有整个网页内容或在一个可读/可解析的流。Heritrix 应用正则表达式的内容(html)在哪里(以查找链接、某些文件类型等)?

0 投票
1 回答
128 浏览

cluster-computing - 如何判断文本聚类算法的性能?

我正在使用 K-Means 算法进行文本聚类,并使用 K-Means++ 进行初始播种。

我尝试通过更改停用词词典和增加 max_no_of_random_iterations 等更改来提高算法效率。

我得到不同的结果。我如何比较它们?我不能在这里应用混淆矩阵的想法。输出不是以某些文档的形式获得某些值或标签。一个文档进入一个集合。它只是相对“良好的聚类”或重要的集合。

那么有没有一些标准的方法来标记这个输出集的性能?

如果混淆矩阵是答案,请解释如何做?

谢谢。

0 投票
1 回答
904 浏览

machine-learning - Libsvm:SVM 规范化从 0 或 0.001 开始

我正在使用 libsvm 进行文档分类。

我只在我的项目中使用 svm.h 和 svm.cc。

它的结构 svm_problem 需要非零的 svm_node 数组,因此使用稀疏。

我得到了一个 tf-idf 单词的向量,可以说在 [5,10] 范围内。如果我将其标准化为 [0,1],则所有 5 都将变为 0。

发送到 svm_train 时我应该删除这些零吗?

删除这些是否不会减少信息并导致不良结果?

我应该从 0.001 而不是 0 开始标准化吗?

好吧,一般来说,在 SVM 中,[0,1] 中的归一化不会减少信息吗?

0 投票
1 回答
1959 浏览

machine-learning - Libsvm 模型文件格式 无型号

我正在使用 libsvm 进行文档分类。我在我的项目中使用 svm.cc 和 svm.h。然后我调用 svm_train。我使用 svm_save_model 将模型保存在一个文件中。

我有类别。svm 模型文件为:

index:value 形式的向量值之前的 1 和 -1 是什么?

0 投票
1 回答
2692 浏览

machine-learning - 如何标准化 SVM 的 tf-idf 向量?

我正在使用支持向量机进行文档分类。我为每个文档设置的特征是一个tf-idf向量。我有 M 个文档,每个 tf-idf 向量的大小为 N。给出 M * N 矩阵。

M 的大小只有 10 个文档,tf-idf 向量是 1000 个词向量。所以我的特征远大于文档数量。每个单词也出现在 2 个或 3 个文档中。当我对每个特征(单词)进行归一化时,即 [0,1] 中的列归一化

当然,它要么给我0、1。

它给了我不好的结果。我正在使用libsvm,带有rbf 函数C = 0.0312, gamma = 0.007815

有什么建议吗?

我应该包括更多文件吗?或其他功能,如 sigmoid 或更好的归一化方法?

0 投票
4 回答
2493 浏览

machine-learning - 可扩展或在线核外多标签分类器

在过去的 2-3 周里,我一直在为这个问题绞尽脑汁。我有一个多标签(不是多类)问题,其中每个样本都可以属于多个标签。

我有大约 450 万个文本文档作为训练数据,大约 100 万个作为测试数据。标签约为 35K。

我正在使用scikit-learn。对于特征提取,我之前使用的是 TfidfVectorizer,它根本无法扩展,现在我使用的是 HashVectorizer,它更好,但考虑到我拥有的文档数量,它的可扩展性并不高。

SKlearn 提供了一个 OneVsRestClassifier,我可以将任何估算器输入其中。对于多标签,我发现 LinearSVC 和 SGDClassifier 只能正常工作。根据我的基准,SGD 在内存和时间上都优于 LinearSVC。所以,我有这样的东西

但这存在一些严重的问题:

  1. OneVsRest 没有 partial_fit 方法,这使得核外学习成为不可能。有没有其他选择?
  2. HashingVectorizer/Tfidf 都在单核上工作并且没有任何 n_jobs 参数。散列文档花费了太多时间。任何替代方案/建议?n_features 的值也正确吗?
  3. 我测试了 100 万份文档。散列需要 15 分钟,当涉及到 clf.fit(X, y) 时,我收到 MemoryError,因为 OvR 内部使用 LabelBinarizer 并且它试图分配一个几乎不可能分配的维度矩阵(yx 类)。我应该怎么办?
  4. 还有其他任何具有可靠且可扩展的多标签算法的库吗?我知道 genism 和 mahout,但他们都没有任何多标签情况?
0 投票
1 回答
178 浏览

python - 使用 Python 进行自动文档分类:将游戏文章分类为体育

我有大约 500 篇预先分类的文章的语料库。我为每个类别选取了最常用的名词和形容词,并按相关性对它们进行了排序。

每个类别(世界、商业、科技、娱乐、科学、健康、体育)都有几百个与之相关的词。

我在这篇文章中遇到了问题: http ://www.techhive.com/article/2052311/hands-on-with-the-2ds-an-entry-level-investment.html

这是关于游戏的。根据我看过的文章,诸如“游戏、球员等”之类的词与体育密切相关。

本文评分如下:

如您所见,科技在 59 岁时处于领先地位,但在 62 岁时被体育超越。

我希望如果我的语料库增加到几千篇,这个问题会得到解决,但我不知道这是否可能。

你对解决这个问题有什么想法?

我考虑过有一个赠品词列表,比如“Twitter、Facebook、技术、任天堂等”,如果它们出现的话,它会自动将文章聚集到技术中。唯一的问题是找到与之相关的词汇,并避免与商业/世界等发生冲突。

谢谢。

0 投票
1 回答
2644 浏览

machine-learning - 将文本文件转换为 ARFF 格式

我知道如何使用 TextDirectoryLoader 将一组文本或网页文件转换为 arff 文件。

我想知道如何将单个文本文件转换为 Arff 文件。

任何帮助将不胜感激。

0 投票
1 回答
197 浏览

data-mining - 如何使用层次聚类制作文档集群

我正在尝试根据文档的相似性对文档进行聚类,其想法是匹配两个文档中的相似单词并将该数字除以两个文档中的单词总数。每个值都存储在一个二维数组中:

因此,如果有 8 个文档,则将每个文档与其他文档进行比较的结果存储在上面的表格中,数组的每个索引都显示一个文档。因此文档 0,0 1,1 2,2 ... 将始终具有值 1,因为它们是相同的。

我如何对相似的文档进行聚类,即谁的价值观彼此接近?

0 投票
1 回答
2196 浏览

machine-learning - Scikit-learn 具有 y 概率的多类朴素贝叶斯

我正在做推文分类,其中每条推文都可以属于少数类别之一。训练集输出作为该样本属于每个类别的概率给出。例如:tweet#1:C1-0.6、C2-0.4、C3-0.0(C1、C2、C3 是类)

我打算使用使用 Scikit-learn 的朴素贝叶斯分类器。我在 naive_bayes.py 中找不到适合的方法,该方法采用每个类的概率进行训练。我需要一个分类器,它接受训练集每个类的输出概率。(即:y.shape = [n_samples, n_classes])

如何处理我的数据集以应用 NaiveBayes 分类器?