首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Omnicat-bayes文档的文本分类预定义类别

带有Omnicat-bayes文档的文本分类预定义类别
EN

Stack Overflow用户
提问于 2016-12-24 14:35:22
回答 1查看 187关注 0票数 1

我正在使用omnicat-bayes分析文档(文本分类)。有了这个创业板,我就可以创建类别,并用文档“饲料”那些。目前,这些类别有足够的文件,以便“足够好”来识别新的文件应该放在哪一类中。

现在,在我的文档控制器中,create操作下有几个步骤。

  1. 创建新的Bayes实例
  2. 创建将要使用的类别
  3. 利用预文档训练分类
  4. 实际训练的类别

(所有这些步骤都在run_all函数下)

创建操作:

代码语言:javascript
复制
def create
@document = Document.new(document_params)
@document.case_id = @case.id
 if @document.save
   run_all
   # Running the classify function on reden aanmelding
   classify_one = @bayes.classify(@document.reden_aanmelding)
   document_category = classify_one.to_hash[:top_score_key]
   # Updating the document category by the top key returned by Bayes
   @document.update_attribute(:category, document_category)
   finding_required_records
   # Training Cees Buddy with the document that got saved
   @bayes.train(document_category, @document.reden_aanmelding)
   redirect_to case_path(@case)
 else
   render :new
 end
end

@document.save run_all函数中(我知道这不是真正的最佳实践),我正在创建上面提到的四个步骤。

现在,在创建函数完成之后,Bayes实例就消失了,AI现在又变得“愚蠢”了。

我的问题是:什么是合适的位置,我如何完成这一点,以创建新的实例,新的类别,并向他们提供我的数据库中的文档。singleton在这里会很有趣吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-25 12:48:59

这是一个相当棘手的问题,因为您可能希望扩展应用程序来处理多个文档。

问题是,生产模式的Rails应用程序web服务器通常会分叉到多个进程,甚至在多台机器上运行。这意味着,在一个过程中培训的文档在其他所有流程中都是未知的,即使您使用的是单例模式。

因此,只有使用omnicat-bayes gem,最好的方法是创建某种独立的微服务,它在自己的流程中运行,只做流程文档。然后,主应用程序应该将处理排队到异步作业中,因此,如果需要花费更长的时间,以防止培训过程忙于其他文档,也是可以的。

如何与此外部OmniCat实例通信取决于您。最舒适的方式可能是dRuby,但我应该补充一点,我没有使用它的生产模式经验。一个更有前途的解决方案是使用一些简单的HTTP + JSON。在这种情况下,您甚至可以使用一些将来不基于Ruby的功能更强大的库来进行培训和分类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41314157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档