2011-12-30 4 views
1

다음 링크를 예로 들어주십시오 : http://www.yelp.com/biz/chef-yu-new-york.옐프는 "리뷰 하이라이트"섹션을 어떻게 만듭니 까?

'리뷰 하이라이트'섹션에는 사용자가 제출 한 리뷰를 기준으로 강조 표시된 3 개의 구문 (매운 닭고기, 해피 아워, 런치 스페셜)이 있습니다. 분명히, 이들은 자주 등장하는 문구이거나, 자주 등장하는 가장 긴 문구 또는 다른 논리입니다.

그들의 공식적인 설명은 이것이다 : 자신의 리뷰에서

, Yelpers 많이 아래 링크 된 문구를 언급했다. 그리고 이것들은 오래된 구절이 아니며, 우리 옐로 로봇이 독특하고 좋은, 빠른 방법으로 결정한 것들입니다. 이 사업을 설명합니다. 모든 문구를 클릭하면 해당 문구가 표시된 개의 리뷰를 볼 수 있습니다.

제 질문은이 데이터 포인트를 얻기 위해 텍스트 입력을 위해 무엇을 사용 했습니까? Lempel Ziv 또는 일부 맵 축소 알고리즘을 기반으로 한 알고리즘입니까? 저는 CS 전공이 아니기 때문에 여기에 기초적인 것을 놓치고있을 것입니다. 도움이나 이론 등을 좋아할 것입니다.

고마워요!

답변

0

Lempel-Ziv은 데이터 압축 알고리즘이며 map-reduce는 데이터 처리 기술입니다. 전자는 아마도 관련이 없으며 후자는 일반적으로 유용하지만 여기서는 관련이 없습니다. 옐프의 코드의 세부 사항을 모른 채

, 그것은 확실히 말할 것은 불가능하지만, 그들의 "검토 하이라이트는"단순히 사람을 한 후,이 사업에 대한 검토에 나타나는 모든 문구를 표로 표시에 기초 가능성 보인다 이 비즈니스에 대한 리뷰는 다른 비즈니스보다 일반적입니다. 자연어 처리의 일부는 명사구를 선택하기 위해 관련되어 있습니다.

+0

그것은 "모든 문구를 도표화"그 날에 흥미이라고합니다. 문구의 길이와 복잡성이 다양하기 때문에 LZ의 변형을 사용하여 사전을 만든 다음 가장 길거나 가장 많이 사용 된 문구를 3 개 출력한다고 생각했습니다. 아마 그들은 다른 방법으로 그것을 성취 할 것입니다. 그들이 사용할 수있는 것에 대한 아이디어가 있습니까? 도구, 기술 또는 알고리즘 방식? – Nuby

1

옐프가 사용하는 정확한 알고리즘에 대한 통찰력은 없지만 이것은 자연어 처리에서 일반적인 문제입니다. 본질적으로 가장 관련있는 배열 (http://en.wikipedia.org/wiki/Collocation)을 추출하려고합니다.

가장 간단한 방법은 n-gram의 목록을 추출하여 가장 높은 PMI (점 상호 정보)를 얻는 것입니다. 이 SO 질문이 사용하는 파이썬과 NLTK 라이브러리를 수행하는 방법에 대해 설명 :

How to extract common/significant phrases from a series of text entries