【问题标题】:Fitting the training dataset for text classification in Java为 Java 中的文本分类拟合训练数据集
【发布时间】:2015-07-02 16:15:53
【问题描述】:

我正在构建一个进行文本分类的系统。我正在用 Java 构建系统。作为功​​能,我使用的是词袋模型。然而,这种模型的一个问题是特征数量非常多,这使得无法将数据拟合到内存中。

但是,我从 Scikit-learn 发现了这个 tutorial,它使用特定的数据结构来解决问题。

我的问题:

1 - 人们一般如何使用 Java 解决此类问题?

2- 有没有类似于scikit-learn中给出的解决方案?

编辑:到目前为止,我发现的唯一解决方案是使用 HashTables 亲自编写稀疏向量实现。

【问题讨论】:

  • 请在此处具体发布您与收藏相关的要求。

标签: java machine-learning nlp text-classification


【解决方案1】:

如果你想用Java构建这个系统,我建议你使用Weka,这是一个类似于sklearn的机器学习软件。这是一个关于使用 Weka 进行文本分类的简单教程:

https://weka.wikispaces.com/Text+categorization+with+WEKA

您可以从以下网址下载 Weka:

http://www.cs.waikato.ac.nz/ml/weka/downloading.html

【讨论】:

    【解决方案2】:

    HashSet/HashMap 是人们在 Java 中存储词袋向量的常用方式——它们自然是稀疏表示,不会随着字典的大小而是随着文档的大小而增长,而后者通常要小得多。

    如果你处理不寻常的场景,比如非常大的文档/表示,你可以寻找一些稀疏的 bitset 实现,它们在内存方面可能会稍微经济一些,并且用于基于 Hadoop 的海量文本分类实现,例如。

    无论如何,大多数 NLP 框架都会为您做出这个决定 - 您需要以框架想要的格式提供内容。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 2016-01-25
      • 2019-08-25
      • 1970-01-01
      • 2016-08-26
      • 2016-07-02
      • 2016-10-06
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多