문맥
- Wordle을 살펴보십시오 : http://www.wordle.net/
- 내가 본 다른 단어 구름 생성기보다 훨씬 낫습니다.
- 참고 : 소스를 사용할 수 없음-FAQ를 참조하십시오 : http://www.wordle.net/faq#code
내 질문
- Wordle의 기능을 수행하는 알고리즘이 있습니까?
- 그렇지 않은 경우 비슷한 종류의 출력을 생성하는 대안은 무엇입니까?
내가 묻는 이유
- 그냥 궁금해서
- 배우고 싶다
답변:
저는 Wordle의 제작자입니다. Wordle의 실제 작동 방식은 다음과 같습니다.
단어를 세고 지루한 단어를 버리고 카운트를 기준으로 내림차순으로 정렬합니다. 일부 N에 대해 상위 N 개의 단어를 유지하십시오. 각 단어에 개수에 비례하는 글꼴 크기를 지정하십시오. Java2D API를 사용하여 각 단어에 대한 Java2D 모양을 생성하십시오.
각 단어 "Want"는 "수직 중심의 임의의 x 위치에서"와 같이 어딘가에 있어야합니다. 빈도의 순서대로 각 단어에 대해 다음을 수행하십시오.
place the word where it wants to be
while it intersects any of the previously placed words
move it one step along an ever-increasing spiral
그게 다야. 하드 부분은 교차로 - 테스트 효율적으로, 내가 마지막 히트 캐싱, 계층 적 경계 상자를 사용하는 일이며, 쿼드 트리 공간 인덱스 (일이다 모두는 당신은 더 많은 인터넷 검색을 좀 부지런에 대해 배울 수 있습니다.)
편집 : Reto Aebersold가 지적 했듯이이 같은 영역을 다루는 책 장이 무료로 제공됩니다. 아름다운 시각화, 3 장 : Wordle
다음은 d3를 사용하는 Jason Davies의 멋진 자바 스크립트입니다. 웹 폰트를 사용할 수도 있습니다.
Jonathan Feinberg가 설명 한대로 파이썬을 사용하여 태그 클라우드를 생성하는 알고리즘을 구현했습니다. 그것은 wordle.net의 아름다운 구름과는 거리가 멀지 만 어떻게 할 수 있는지에 대한 아이디어를 제공합니다.
여기 에서 프로젝트를 찾을 수 있습니다 .
Jonathan이 제안한 알고리즘을 사용하는 Silverlight 구성 요소를 만들었습니다. 소스 코드와 예제 프로젝트는 모두 내 블로그에서 사용할 수 있습니다.
My cloud에서는 다양한 가중치를 기반으로 단어의 색상과 크기를 지정할 수 있으며 좌표에서 단어 선택 및 선택한 단어 강조 표시를 지원합니다. 소스는 당신이 적합하다고 생각하는대로 사용할 수 있습니다.
나는 단어 구름을 만들기위한 처리 라이브러리 인 WordCram 에서 일하고 있습니다. Wordle의 영향을 많이받으며 위와 동일한 PDF aeby로 알려줍니다. 충돌 감지를 처리하고 단어 레이아웃, 색상, 회전 등 원하는 방식에 집중할 수 있습니다.
http://code.google.com/apis/visualization/documentation/gallery.html
단어 구름 시각화를 확인하십시오. wordle.net만큼 화려하지는 않지만 사이트에 쉽게 추가 할 수 있습니다.
텍스트와의 관련성과 같은 다른 데이터와 관련된 문자열의 색상, 초기 위치 및 크기를 지정할 수있는 단어와 같은 시각화를 찾고 있었지만 아무것도 찾지 못했습니다. 그러나 여기에서 찾은 정보 덕분에 (특히 Jonathan의 설명과 aeby의 링크), 마침내 ' Cloudio를 구현할 수 있습니다 '를 , 이는 상대적으로 가깝고 (적어도 그렇게 생각합니다 ...) 내가 찾고 있던 기능을 제공합니다.
SWT 및 JFace로 구현되었으며 JFace의 MVC 모델에 통합하려고 시도했습니다. 클라우드의 레이아웃을 수정하고 다른 Eclipse 플러그인 또는 RCP에 추가하도록 컨텐츠 및 레이블 제공자를 설정할 수 있습니다. 앱. 또한 문자열의 초기 위치가 계산되는 방식을 수정하여 클러스터 시각화 등에 사용하기 어렵지 않습니다. 여전히 문서화가 잘되어 있지 않고 몇 가지 방식으로 제한되어 있습니다 (몇 시간 전에 초기 업로드를 했으므로 여전히 약간 버그가있을 수 있습니다). 관심이 있으시면 여기 링크가 있습니다.
다음은 빠른 인상을 원할 경우 생성 된 일부 클라우드에 대한 링크입니다. https://github.com/sschwieb/Cloudio/wiki/Example-Clouds
건배, 스테판
다음은 클라우드와 같은 Wordle 구현을 참조하십시오. 동일한 나선형 알고리즘과 QuadTree 데이터 구조를 사용합니다.
http://sourcecodecloud.codeplex.com
또는
http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win
Lion and Lamb은 선택된 성경 책에서 가장 빈번한 단어를 사용하여 단어 구름을 만드는 오픈 소스 iOS 앱입니다.
Jonathan Feinberg가 설명한 알고리즘을 기반으로합니다. 적중 테스트는 쿼드 트리를 사용하지만 경계 상자는 글리프의 경계 사각형을 기반으로합니다. 글리프의 경계 상자 내에 단어를 배치 할 수 있도록 글리프를 여러 개의 작은 경계 사각형으로 나누고 싶습니다.
여기에 태그 클라우드 생성기가 있는데,이를 Disorganizer라고합니다 :)
테스트 목적으로 TagCloudService 및 면도기 마크 업 컨트롤 및 WinForm 소스 블로그, 프로필 등을 감싸는 작은 래퍼 할 수 있습니다. C # 4.0 & System.Drawing 네임 스페이스를 많이 사용합니다.
다른 클라우드 생성기를 사용하면 태그를 클릭하여 탐색 할 수 없으며 호버 애니메이션을 만들 수 없으므로 클릭 할 수 있음을 나타냅니다. HTML에 호버 애니메이션을 표시해야하기 때문에 (오버레이로 배치 된 절대 위치 <a>
태그 로이 작업을 수행하고 있습니다 ) 각도 단어 표시를 개발하지 않았습니다. 수직 또는 수평입니다.
경고 : 위의 링크는 몇 개월 안에 무효가 될 수 있으므로 주변 프로젝트에서 별도의 프로젝트로 천천히 연결을 해제 할 계획입니다.
이 샘플 블로그 게시물 에서 실제 데모 를 볼 수 있지만 불완전하고 불완전한 사이트에 있습니다. 누구든지 기여하고 싶다면 저에게 연락하여 최대한 빨리 분리하겠습니다.
다음은 파이썬 3 의 또 다른 종단 간 구현입니다. Jonathan Feinberg의 초기 개요 (QuadTrees, 나선 등)를 기반으로 .
이 Github 리포지토리 에서 코드 (자세한 ReadMe 파일과 함께 주석 처리됨)를 자유롭게 사용할 수 있으며이 코드로 작성된 샘플 문서입니다.
Tim Dream이 만든 아주 멋진 JavaScript 라이브러리가 있습니다.
https://github.com/timdream/wordcloud2.js/blob/gh-pages/API.md
캔버스에 단어 구름을 만들거나 결과를 수정하는 많은 옵션이있는 HTML 태그로 단어 구름을 만들 수 있습니다. 정말 wordle의 출력에 가깝습니다.