欢迎使用分类器
分类器是一个通用模块,允许进行贝叶斯和其他类型的分类。
下载
- https://github.com/cardmagic/classifier
- gem install classifier
- git clone https://github.com/cardmagic/classifier.git
依赖项
如果您从源代码安装分类器,您需要使用RubyGems安装Roman Shterenzon的fast-stemmer gem,方法如下:
gem install fast-stemmer
如果您想将LSI分类的速度提高至少10倍,请安装以下库: GNU GSL:http://www.gnu.org/software/gsl rb-gsl:https://github.com/SciRuby/rb-gsl
请注意,LSI无需这些库也能工作,但一旦安装了它们,分类器就会自动使用它们。无需进行任何配置更改,我们致力于为您保持操作极其简单。
贝叶斯
Lucas Carlson开发的贝叶斯分类器。贝叶斯分类器具有准确、快速和内存需求适中的特点。
用法
require 'classifier'
b = Classifier::Bayes.new '有趣', '无趣'
b.train_interesting "这里有一些好词。我希望你喜欢它们"
b.train_uninteresting "这里有一些坏词,我讨厌你"
b.classify "我讨厌坏词和你" # 返回 '无趣'
require 'madeleine'
m = SnapshotMadeleine.new("bayes_data") {
Classifier::Bayes.new '有趣', '无趣'
}
m.system.train_interesting "这里有一些好词。我希望你喜欢它们"
m.system.train_uninteresting "这里有一些坏词,我讨厌你"
m.take_snapshot
m.system.classify "我爱你" # 返回 '有趣'
使用Madeleine,您的应用程序可以随时间持久化学习到的数据。
贝叶斯分类
- http://www.process.com/precisemail/bayesian_filtering.htm
- http://en.wikipedia.org/wiki/Bayesian_filtering
- http://www.paulgraham.com/spam.html
LSI
David Fayram开发的潜在语义索引器。潜在语义索引引擎不如贝叶斯分类器快速或小巧,但更加灵活,提供快速搜索和聚类检测以及文本的语义分析,理论上模拟人类学习。
用法
require 'classifier'
lsi = Classifier::LSI.new
strings = [ ["这段文本涉及狗。狗。", :dog],
["这段文本也涉及狗。狗!", :dog],
["这段文本围绕猫展开。猫。", :cat],
["这段文本也涉及猫。猫!", :cat],
["这段文本涉及鸟。鸟。",:bird ]]
strings.each {|x| lsi.add_item x.first, x.last}
lsi.search("狗", 3)
# 返回 => ["这段文本涉及狗。狗。", "这段文本也涉及狗。狗!",
# "这段文本也涉及猫。猫!"]
lsi.find_related(strings[2], 2)
# 返回 => ["这段文本围绕猫展开。猫。", "这段文本也涉及猫。猫!"]
lsi.classify "这段文本也是关于狗的!"
# 返回 => :dog
lsi.classify_with_confidence "这段文本也是关于狗的!"
# 返回 => [:dog, 1.0]
请查看Classifier::LSI文档以获取更多信息。可以使用简单字符串之外的内容进行索引、搜索和分类。
潜在语义索引
- http://www.c2.com/cgi/wiki?LatentSemanticIndexing
- http://www.chadfowler.com/index.cgi/Computing/LatentSemanticIndexing.rdoc
- http://en.wikipedia.org/wiki/Latent_semantic_analysis
作者
- Lucas Carlson (lucas@rufy.com)
- David Fayram II (dfayram@gmail.com)
- Cameron McBride (cameron.mcbride@gmail.com)
- Ivan Acosta-Rubio (ivan@softwarecriollo.com)
该库根据GNU LGPL条款发布。有关更多详细信息,请参阅LICENSE文件。