12

Ruby on Rails의 프로젝트에서 Apache Mahout을 사용하여 권장 사항 및 협업 필터링을 구현하고 싶습니다. 특히 내 요구 사항은 다음과 같습니다.Ruby 레일 용 Mahout 플러그인

  1. 관련 태그를 제안합니다.
  2. 관련 기사를 제안합니다.
  3. 은 사용자의 선호도에 따라 기사 검토를 요청합니다. 지리적 위치 및 사용자의 다른 메타 정보를 기반으로 비슷한 사용자를 추천합니다.

레일과 쉽게 통합되고 내 요구 사항을 충족한다면 다른 해결 방법 (mahout 제외)을 사용할 수 있습니다.

+0

협업 필터링은 특히 구현할 긴 알고리즘이 아닙니다. 알고리즘을 구현하는 것보다 훨씬 적은 시간을 들여서 레일즈에서 루비와 함께 작동 시키려고 노력하는 것보다 더 많은 시간을 소비 할 수 있습니다. – Steve

답변

6

Mahout 'taste-web'모듈에는 Tomcat과 같은 환경에 배포 할 수있는 .war 파일과 같이 Java 기반의 권장 장치를 사용할 준비가 된 웹 서비스를 빌드하는 스크립트가 포함되어 있습니다. , HTTP를 통해 대화하십시오. HTTP 요청을 할 수있는 모든 플랫폼에서 액세스 할 수 있습니다.

http://lucene.apache.org/mahout/taste.html#Standalone+server

7

두싯 (하둡)는 JRuby를 실행 레일 내에서 꽤 잘 작동합니다. 당신과 같이 하둡과 두싯 항아리를 포함 할 수 있습니다 :

필요한 '젬'
은 '자바'

디렉터리를 요구 [ "/ 조련사 - 기본 - 디렉토리/**/* 항아리."]. 각 {| jar | jar}}
Dir [ "/ hadoop-base-dir/**/* .jar"]. 각 {| jar | 필요 항아리}

그럼 당신은 예를 들어 사용 계획 조련사 클래스를 포함 할 수 있습니다 :

include_class 'org.apache.hadoop.fs.Path'
include_class 'org.apache을 .hadoop.conf.Configuration '
include_class'org.apache.hadoop.fs.FileSystem '
include_class'org.apache.mahout.clustering.spectral.common.AffinityMatrixInputJob '
include_class'org.apache.mahout.clustering .유령 같은 .kmeans.SpectralKMeansDriver '

거기에서, 당신은 당신의 레일 녹화 시스템을 구축하기 위해 두싯 자바 문서와 JRuby를 규칙을 따를 수 있습니다.

그렇다고해서 사이트에 가장 적합한 아키텍처가 될지 잘 모르겠다. 문제 규모가 Mahout을 보증하기에 충분히 큰 경우 Rails를 웹용으로 사용하고 웹 프레임 워크 외부에서 권장 사항을 생성하는 것이 더 바람직합니다 (예 : 야간 배치의 유사성 생성 등).