2016-12-24 4 views
1

omnicat-bayes을 사용하여 문서 (텍스트 분류)를 분석하고 있습니다. 이 보석으로 카테고리를 만들고 문서로 "피드"할 수 있습니다. 현재 범주에는 배치해야하는 범주에서 새 문서를 인식하기에 "충분"할 수있는 충분한 문서가 있습니다.텍스트 분류 Omnicat-bayes가있는 문서로 사전 정의 된 범주

이제 작성 절차의 내 문서 컨트롤러에 몇 단계가 있습니다. 범주

  • 훈련을 미리 문서를 촬영
  • 사용되는 범주를 만들기 새로운 베이 즈 인스턴스
  • 만들기

    1. 사실 (모든 범주

  • 훈련 해당 단계는 run_all 기능 아래 있음)

    액션 만들기 : @document.save run_all 기능 (I이 정말 가장 좋은 방법은 아니라는 것을 알고) 내가 만드는거야 위라는 이름의 네 단계 내부

    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 
    

    합니다.

    이제 생성 기능이 끝난 후 베이 즈 인스턴스가 사라지고 AI가 다시 "어리석은"상태가됩니다.

    내 질문은 : 올바른 장소는 무엇이며 어떻게 새 인스턴스를 만들고 새 범주를 만들고이를 내 데이터베이스에서 문서로 공급할 수 있습니까? singleton 여기에 재미 있을까요?

    답변

    1

    문서의 소수 이상을 다루기 위해 응용 프로그램의 크기를 조정하려는 경우가 많기 때문에 이것은 매우 까다로운 문제입니다.

    프로덕션 모드 Rails 애플리케이션 웹 서버는 일반적으로 여러 프로세스로 분기되거나 심지어 둘 이상의 시스템에서 실행됩니다. 즉, 싱글 톤 패턴을 사용하는 경우에도 한 프로세스에서 교육 된 문서는 다른 모든 프로세스에서 알 수 없습니다.

    따라서 omnicat-bayes 보석 만 있으면 가장 좋은 방법은 자체 프로세스에서 실행되는 일종의 별도 마이크로 서비스를 만들고 문서 처리 만하는 것입니다. 그러면 주 응용 프로그램에서 비동기 작업으로 처리를 대기열에 넣어야하므로 교육 프로세스가 다른 문서로 인해 바쁠 때 상황이 다소 오래 걸리는 경우에도 괜찮습니다.

    이 외부 OmniCat 인스턴스와 통신하는 방법은 귀하에게 달려 있습니다. 가장 편안한 방법은 dRuby 일지 모르지만 필자는 생산 모드 경험이 없다고 덧붙여 야합니다. 보다 미래 지향적 인 솔루션은 간단한 HTTP + JSON을 사용하는 것입니다. 이 경우 나중에 루비를 기반으로하지 않는 좀 더 강력한 라이브러리를 사용하여 교육 및 분류를 수행하는 서비스를 전환 할 수도 있습니다.

    +0

    답장을 보내 주셔서 감사 드리며 앞으로이 문제를 해결할 수 있습니다. 전에는 다중 프로세스 부분에 대해 생각하지 않았습니다. 그래서 정말 도움이됩니다. 뿐만 아니라'dRuby' 부분. 나는 'omnicat-bayes'를 자체 마이크로 서비스로 옮기려고 노력할 것이라고 생각한다.가능한 한 많은 문서를 얻을 때 서비스가 더 가치 있다고 생각합니다. 따라서 자체 서비스에서 실행될 때 여러 응용 프로그램에서 동일한 서비스로 제출되는 모든 문서를 전송할 수 있습니다. 또한 제출 된 문서를보다 정확하게 분류 할 수 있습니다. –