2009-03-05 4 views
5

단어와 빈도 및 화면 영역이 주어지면 태그 클라우드를 공간에 맞추는 좋은 접근 방법은 무엇입니까? 내가 조작하는 생각할 수있는 두 가지 변수는 다음과 같습니다사용 가능한 공간에 태그 구름 맞추기

  • 글꼴 크기 (절대 및 그라데이션 모두) 단어
내가 생각할 수있는

모든 방법은 설정처럼 반복을 필요로 단어의 갯수에 대한 상한값. 그런 다음 단어가 영역에 딱 들어 맞을 때까지 글꼴 크기에 대한 이진 검색을 사용합니다. 차라리 분석적 해결책을 원합니다.

제 상황의 복잡함은 구름 크기를 조정할 수 있기 때문에 알고리즘이 100x100 픽셀이나 1000x1000 픽셀을 적절히 처리 할 수 ​​있어야한다는 것입니다.

편집 :이 말은 웹이 아닌 리치 클라이언트 애플리케이션을위한 것입니다 (따라서 크기 조정 가능성). 또한, "아무도 태그 클라우드에서 100 단어 이상을 본 적이 없으므로 아무 것도 표시하지 않으려 고합니다."와 같은 경험을 듣기를 희망했습니다.

답변

0

이 단어는 knapsack problem과 비슷하지만 더 많은 변수가 포함되어 있습니다. 사소한 완벽한 솔루션은 없지만 대부분의 경우 최적의 솔루션에 가까운 휴리스틱 알고리즘을 찾을 수 있습니다.

추 신 : 픽셀 단위로 측정 된 글꼴 크기로만이 작업을 안정적으로 수행 할 수 있습니다. 픽셀 단위로 측정 된 글꼴 크기는 좋은 웹 디자인의 Bad Thing (TM)입니다.

0

미리 정의 된 발생 범위 세트를 만들면 클라우드의 글꼴 크기와 관련 될 수 있습니다. 1 EM

  • 101-500 : 1.2 EM
  • 501-1000 : 1.4 EM 굵은
  • 1001년에서 1500년까지 1.8 EM 굵은
  • 1501년부터 2000년까지 - 100

    • 0 : 예를 들어 : 2.0 em 굵은 이탤릭체/밑줄/깜박임/기타 ...

    컨테이너의 크기에 따라 모든 범위에 고정 오프셋을 추가하여 클라우드를 확장 할 수 있습니다.

  • +0

    ems로 측정 한 컨테이너의 크기를 구할 수있는 방법이 있습니까? – Sparr

    2

    우리는 소프트웨어 제작자에서 할 것은

    • 가이 범위에
    • 지도 Math.sqrt(term.frequency) (단어 2D 영역이기 때문에),
    • 만 30 대를 보여 최대 글꼴 크기를 가지고 (또는 그렇게) 조건,
    • 글꼴 크기가 6pt 미만인 글꼴을 제외하십시오.
    • 클라우드의 용어를 사전 순으로 정렬하십시오. 대안

      대신 상위 30을 보여주는의, 아니 스크롤 막대가 없음을 상단 k 등을 선택합니다.

    • 자주 사용하는 단어를 최대 글꼴 크기에 매핑하는 대신 단어 크기가 구름 사이에서 비교 될 수 있도록 전역 매핑을 사용하십시오 (사용 사례에 따라 다름).

    용어 클라우드에 대한 경험적 연구는 없습니다 (Worlde 명성의 Jonathan Feinberg가 그 점에 관해 더 많이 알고 있음).