IT story

Wordle과 같은 단어 구름을 구현하는 알고리즘

hot-time 2020. 5. 10. 10:27
반응형

Wordle과 같은 단어 구름을 구현하는 알고리즘


문맥

내 질문

  • 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의 멋진 자바 스크립트입니다. 웹 폰트를 사용할 수도 있습니다.

데모 : http://www.jasondavies.com/wordcloud/

Github : https://github.com/jasondavies/d3-cloud


Jonathan Feinberg가 설명 한대로 파이썬을 사용하여 태그 클라우드를 생성하는 알고리즘을 구현했습니다. 그것은 wordle.net의 아름다운 구름과는 거리가 멀지 만 어떻게 할 수 있는지에 대한 아이디어를 제공합니다.

여기 에서 프로젝트를 찾을 수 있습니다 .


Jonathan이 제안한 알고리즘을 사용하는 Silverlight 구성 요소를 만들었습니다. 소스 코드와 예제 프로젝트는 모두 내 블로그에서 사용할 수 있습니다.

http://whydoidoit.com

컬러 단어 구름

My cloud에서는 다양한 가중치를 기반으로 단어의 색상과 크기를 지정할 수 있으며 좌표에서 단어 선택 및 선택한 단어 강조 표시를 지원합니다. 소스는 당신이 적합하다고 생각하는대로 사용할 수 있습니다.

단어 구름 예


I'm working on WordCram, a Processing library for making word clouds. It's pretty heavily influenced by Wordle, and is informed by the same PDF aeby linked to above. It handles the collision detection for you, and lets you focus on how you want your words laid out, colored, rotated, etc.


http://code.google.com/apis/visualization/documentation/gallery.html

Check out the word cloud visualization. Not as fancy as wordle.net but real easy to add to your site.


I was looking for a wordle-like visualization which would allow to assign color, initial position and size of a String related to other data, such as the relevance within a text - didn't find anything, but thanks to the information I found here (Especially Jonathan's explanation and aeby's link), I could finally implement 'Cloudio', which comes relatively close to wordle (at least I think so...) and offers the features I was looking for.

It is implemented with SWT and JFace, and I tried to integrate it into the MVC-model of JFace, such that you can set content- and label-providers to modify the layout of a cloud and add it to other Eclipse-plugins or RCP apps. You can also modify the way the initial position of a string is calculated, such that is not difficult to use it for cluster visualization or else. It is still poorly documented and limited in some ways (and I did the initial upload a few hours ago, so it might still be a bit buggy), but if you're interested, here's the link:

And here's a link to some created clouds, in case you want a quick impression: https://github.com/sschwieb/Cloudio/wiki/Example-Clouds

Cheers, Stephan


Here see my implementation of Wordle like cloud. It uses the same spiral algorithm and the QuadTree data structure.

http://sourcecodecloud.codeplex.com

or

http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win


Lion and Lamb is an open-source iOS app that creates word clouds using the most frequent words from a chosen book of the Bible.

It's based on the algorithm as described by Jonathan Feinberg. Hit testing does utilize a quad tree, but the bounding boxes are based on the glyph's bounding rectangle. I want to break the glyph down into many smaller bounding rects to enable word placement within a glyph's bounding box.

GitHub: https://github.com/PetahChristian/LionAndLamb

요한 계시록 책의 단어 구름


I have a Tag Cloud generator here, which I call Disorganizer :)

Sources TagCloudService and the razor markup control and a WinForm for testing purposes that you can put in your blog, profile etc, with a little wrapper around it. It uses C# 4.0 & System.Drawing namespace heavily.

I created it because with the other cloud generators you cannot click on tags to navigate and cannot create hover animations, to show that they are clickable. Since showing hover animation in HTML is necessary for me (I'm doing this with overlay-ed, absolutely-positioned <a> tags) I haven't developed any-angle word display - they are either vertical or horizontal.

Warning :The above links may go invalid in a few months, I plan to slowly untie it from the surrounding project into a separate project.

이 샘플 블로그 게시물 에서 실제 데모 볼 수 있지만 불완전하고 불완전한 사이트에 있습니다. 누군가가 기여하고 싶다면 저에게 연락하십시오. 최대한 빨리 분리하겠습니다.


여기 에 Jonathan Feinberg의 초기 개요 (QuadTrees, 나선 등)를 기반으로 Python 3 에서 wordle의 또 다른 엔드 투 엔드 구현이 있습니다.

Github 리포지토리 에서 코드 (자세한 ReadMe 파일과 함께 주석 처리됨)를 자유롭게 사용할 수 있으며이 코드로 작성된 샘플 문서입니다.

맥베스

참고 URL : https://stackoverflow.com/questions/342687/algorithm-to-implement-a-word-cloud-like-wordle

반응형