cardmagic/classifier

A general classifier module to allow Bayesian and LSI classifications.

解决的问题

它提供了一套用于 Ruby 中文本分类和术语重要性评分的工具,使开发者能够分类文本(如检测垃圾邮件或情感分析)或提取关键词,而无需从头构建复杂的机器学习流水线。

工作原理

该库实现了五种不同的算法,以满足各种分类需求:

  • 贝叶斯:适用于通用分类的快速单次遍历训练。
  • 逻辑回归:为每个类别提供校准后的概率。
  • LSI(潜在语义索引):专注于相似性和搜索,利用原生 C 扩展实现高性能,并采用 Brand 算法实现无需完全重建索引的增量更新。
  • k-最近邻(KNN):基于最相似的训练样本进行分类。
  • TF-IDF:根据语料库相对重要性对术语进行评分,而非分配类别。

它包含一个命令行界面(CLI),可使用预训练模型进行即时分类,并提供可插拔的持久化系统,支持将模型保存到文件、Redis、S3 或 SQL 数据库。

适用人群

  • 需要将文本分类功能集成到应用中的 Ruby 开发者。
  • 希望无需编写代码即可分析文本或提取关键词的用户。
  • 处理大规模数据集且需要流式训练以避免内存耗尽的开发者。

特色亮点

  • 多种算法:支持贝叶斯、逻辑回归、LSI、KNN 和 TF-IDF。
  • 高性能:原生 C 扩展使 LSI 操作比纯 Ruby 快 5–50 倍。
  • 增量 LSI:可在不重建整个索引的情况下向 LSI 索引添加新文档。
  • 流式支持:可通过流式处理而非全部加载到内存中,对数 GB 级别的数据集进行训练。
  • 灵活持久化:支持插件式存储选项,包括 S3、Redis 和 SQL。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目