2012-03-19 1 views
1

PHP로 위스키 정보 시스템을 병에 담은 3 개의 테이블 (총 약 100 개), 특정 사용자가 추가 한 사용자와 병으로 구성된 mySQL 데이터베이스에 연결했습니다. 그들의 위스키 선반에 마음에 드는 사람.PHP 추천 엔진 - 12 가지 취향의 위스키 추천하기

위스키 선반에 추가 한 현재 위스키를 기반으로 사용자에게 위스키를 추천하는 기능을 구축하려고합니다.

각 위스키는 12 개의 다른 풍미 기능 (예 : 위스키가 열매가 많고 연기가 나는 등)이있는 '풍미 프로파일'이 있습니다. 각 기능의 점수는 0에서 4까지입니다. 따라서 기본적으로 12 개의 숫자와 다른 12 개의 숫자와 비교하십시오.

필자는 주제에 대해 상당한 연구를했지만, 한 등급을 다른 등급과 비교하는 간단한 구현 만 찾을 수는 있지만 12 가지 숫자를 비교하고 일치하는 비율을 반환하는 효율적인 방법을 생각할 수는 없습니다. .

데이터베이스에있는 위스키를 사용자가 즐겨 찾는 위스키와 비교하고 가장 가까운 일치 항목을 추천하는 가장 좋은 방법에 대한 제안이 있다면 궁금합니다.

+1

이 질문은 너무 일반적이며, 우리에게 응용 프로그램에 대한 정보를 제공하지 않습니다

협업 필터링 및 추천 시스템이 유사한 포스트는 좀 더 유용한 통찰력을 제공 할 수 있습니다. 웹에서 데이터에 액세스하고 분석하기위한 수백 가지 기술이 있습니다. 먼저 몇 가지 조사를 해보십시오. –

+0

당신의 웹 사이트가 주제에 대한 참고 자료로 작동한다면, 당신은 그 프로파일들이 어떻게 서로 관련되어 있는지에 대한 방법론을 개발해야한다고 생각합니다. 누구나 일련의 데이터를 기반으로 권장 사항을 제시하는 공식을 제시 할 수는 있지만 위스키 전문가라면 자신의 공식을 사용하지 않아도됩니까? –

+0

빠른 응답을 보내 주셔서 감사합니다. 매우 일반적인 것에 대한 사과 : (나는 당신이 요구하는 정보에 대해 확신 할 수 없다.) 한 제품에 대한 다중 평가를 다른 제품에 대한 다중 평가와 비교하고 두 세트 간의 거리를 계산하기위한 제안을 제안하고자한다. 숫자는 가장 가까운 이웃/유클리드 거리의 종류를 생각해내는 것입니다 –

답변

3

성취하려는 것은 위스키 용 판도라입니다. 서로 다른 특성을 비교하고 전반적인 결과에 영향을 줄 수있는 일종의 가중치를 제공하는 알고리즘을 고안해야합니다. 이것은 단순한 과정이 아니며 알고리즘이 최적으로 작동하기 전에 번 수정을 수행합니다. 위의 예에서

| CHARACTERISTICS | YOUR WHISKEY | WHISKEY #1 | WHISKEY #2| 
--------------------------------------------------------------- 
|  Smoky  |  x  |    |  x  | 
--------------------------------------------------------------- 
|  Nutty  |    |  x  |  x  | 
--------------------------------------------------------------- 

, 위스키은 당신이 좋아하는 일, 2이 위스키 # 1보다 더 원하는 특성을 더 많이 가지고 위스키 #입니다. 이것은 매우 단순한 비교이며, 그다지 중요하지 않습니다.

가능한 데이터로 앉아 알고리즘을 만든 다음 사람들에게 시도해야합니다. 그것이 제대로 작동하지 않는다면 알고리즘을 좀 더 조정하십시오. 결국 당신이 원하는대로 일할 수있는 지속적인 프로세스입니다. What is algorithm behind the recommendation sites like last.fm, grooveshark, pandora?

+1

위스키를위한 판도라 니스. "아직도 술을 마시고 있습니까? 우리는 부어주는 모든 유리에 값을 치고, 아무도 빈 방과 공유하려고하지 않습니다." – rjz

+0

매우 빠른 응답 주셔서 감사합니다 :) 나는 "위스키를위한이"판도라 "의 개념을 좋아하고 실제로 추천 엔진의 나의 이해에 도움이됩니다. 유일한 것은 SQL 문을 사용한 코딩을 몇 달 동안 어떻게 시작했는지 알지 못합니다.'가중치'를 사용하면 다른 변수보다 더 중요한 변수를 비교하는 것이 좋습니다. 다시 한 번 감사드립니다 :) –

+0

예. ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** * 하나가 존재한다면 다른 하나는 존재하지 않도록해야합니다. 또는 사용자가 그 중 하나를 좋아하고 다른 하나는 "무게"가 적 으면 안됩니다. –