Kontekst
- Spójrz na Wordle: http://www.wordle.net/
- Wygląda znacznie lepiej niż jakikolwiek inny generator słów w chmurze, jaki widziałem
- Uwaga: źródło nie jest dostępne - przeczytaj FAQ: http://www.wordle.net/faq#code
Moje pytania
- Czy jest dostępny algorytm, który robi to, co robi Wordle?
- Jeśli nie, jakie są alternatywy, które dają podobne wyniki?
Dlaczego pytam
- po prostu ciekawy
- chcieć się nauczyć
Odpowiedzi:
Jestem twórcą Wordle. Oto, jak faktycznie działa Wordle:
Policz słowa, wyrzucaj nudne słowa i sortuj według liczby, malejąco. Zachowaj górne N słów dla niektórych N. Przypisuj każdemu słowu rozmiar czcionki proporcjonalny do jego liczby. Wygeneruj kształt Java2D dla każdego słowa, używając interfejsu API Java2D.
Każde słowo „chce” być gdzieś, na przykład „w jakiejś losowej pozycji x w pionowym środku”. W malejącej kolejności częstotliwości zrób to dla każdego słowa:
Otóż to. Trudno jest to robić w skrzyżowanie badanie sprawnie, dla których używam last hit buforowanie, hierarchicznych obwiednie i QuadTree przestrzennej indeksu (z których wszystkie są rzeczy można dowiedzieć się więcej na temat z pewnym pracowitych googlowania).
Edycja: Jak zauważył Reto Aebersold, jest teraz dostępny bezpłatnie rozdział książki, który obejmuje ten sam obszar: Piękna wizualizacja, Rozdział 3: Wordle
źródło
Oto naprawdę fajny javascript od Jason Davies, który używa d3. Możesz nawet używać z nim stron internetowych.
Demo: http://www.jasondavies.com/wordcloud/
Github: https://github.com/jasondavies/d3-cloud
źródło
Zaimplementowałem algorytm opisany przez Jonathana Feinberga, używając Pythona do utworzenia chmury tagów. Jest daleko od pięknych chmur wordle.net, ale daje wyobrażenie o tym, jak można to zrobić.
Możesz znaleźć projekt tutaj .
źródło
Stworzyłem komponent Silverlight, który wykorzystuje algorytm sugerowany przez Jonathana tutaj. Kod źródłowy i przykładowe projekty są dostępne na moim blogu:
http://whydoidoit.com
Moja chmura pozwala pokolorować i rozmiar słów w oparciu o różne wagi i obsługuje wybór słów (ze współrzędnych) i zaznaczanie wybranych słów. Możesz użyć źródła, które uważasz za stosowne.
źródło
Pracuję nad WordCram , biblioteką przetwarzania do tworzenia chmur słów. Wordle ma na to duży wpływ i informuje o tym ten sam plik PDF, do którego prowadzi link powyżej. Obsługuje wykrywanie kolizji i pozwala skupić się na tym, jak chcesz ułożyć, pokolorować, obrócić itp.
źródło
http://code.google.com/apis/visualization/documentation/gallery.html
Sprawdź wizualizację chmury słów. Nie tak fantazyjne jak wordle.net, ale naprawdę łatwe do dodania do Twojej witryny.
źródło
Szukałem podobnej do słów wizualizacji, która pozwoliłaby przypisać kolor, początkową pozycję i rozmiar ciągu związanego z innymi danymi, takimi jak trafność w tekście - niczego nie znalazłem, ale dzięki informacjom, które znalazłem tutaj (Zwłaszcza wyjaśnienie Jonathana i link Aeby'ego), mogłem w końcu wdrożyć „ Cloudio ”, które jest względnie bliskie słowu (przynajmniej tak mi się wydaje ...) i oferuje funkcje, których szukałem.
Jest zaimplementowany z SWT i JFace, a ja próbowałem zintegrować go z modelem MVC JFace, tak aby można było ustawić dostawców treści i etykiet w celu zmodyfikowania układu chmury i dodania go do innych wtyczek Eclipse lub RCP aplikacje. Możesz także zmodyfikować sposób obliczania początkowej pozycji łańcucha, tak aby nie było trudno użyć go do wizualizacji klastrów lub w inny sposób. Nadal jest słabo udokumentowany i pod pewnymi względami ograniczony (a ja zrobiłem wstępne przesyłanie kilka godzin temu, więc nadal może być trochę wadliwy), ale jeśli jesteś zainteresowany, oto link:
A oto link do niektórych stworzonych chmur, na wypadek, gdybyś chciał mieć szybkie wrażenie: https://github.com/sschwieb/Cloudio/wiki/Example-Clouds
Na zdrowie, Stephan
źródło
Oto moja implementacja chmury podobnej do Wordle. Wykorzystuje ten sam algorytm spiralny i strukturę danych QuadTree.
http://sourcecodecloud.codeplex.com
lub
http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win
źródło
Lion and Lamb to aplikacja na system iOS typu open source, która tworzy chmury słów przy użyciu najczęstszych słów z wybranej księgi Biblii.
Opiera się na algorytmie opisanym przez Jonathana Feinberga. Testowanie trafień wykorzystuje drzewo quadów, ale ramki ograniczające są oparte na prostokącie ograniczającym glifu. Chcę rozbić glif na wiele mniejszych prostokątów ograniczających, aby umożliwić umieszczanie słów w obwiedni glifów.
GitHub: https://github.com/PetahChristian/LionAndLamb
źródło
Mam tutaj generator Tag Cloud, który nazywam Disorganizer :)
Źródła TagCloudService i kontrola znaczników brzytwy oraz WinForm do celów testowych , które można umieścić na swoim blogu, profilu itp., Z niewielkim owinięciem wokół niego. Wykorzystuje przestrzeń nazw C # 4.0 i System.Drawing.
Stworzyłem go, ponieważ w innych generatorach chmur nie możesz klikać znaczników, aby nawigować, i nie możesz tworzyć animacji najechania kursorem, aby pokazać, że można je kliknąć. Ponieważ wyświetlanie animacji aktywowania w HTML jest dla mnie konieczne (robię to z nakładanymi, absolutnie pozycjonowanymi
<a>
znacznikami), nie opracowałem wyświetlania słów pod dowolnym kątem - są one pionowe lub poziome.Ostrzeżenie: powyższe linki mogą utracić ważność za kilka miesięcy, planuję powoli rozwiązać je z otaczającego projektu do osobnego projektu.
Możesz zobaczyć działające demo na tym przykładowym poście na blogu , ale jest ono niekompletne i na niekompletnej stronie. Skontaktuj się ze mną, jeśli ktoś chce wnieść swój wkład, zajmę się oddzieleniem go jak najszybciej.
źródło
Oto kolejna kompleksowa implementacja wordle w Pythonie 3, w dużej mierze oparta na wstępnym zarysie Jonathana Feinberga (QuadTrees, spirale itp.).
Kod (skomentowany, ze szczegółowym plikiem ReadMe) jest swobodnie dostępny w tym repozytorium Github i jest to przykładowe słowo utworzone za pomocą kodu.
źródło
Tim Dream ma całkiem niezłą bibliotekę JavaScript:
https://github.com/timdream/wordcloud2.js/blob/gh-pages/API.md
Może tworzyć chmurę słów na płótnie lub ze znacznikami HTML z wieloma opcjami modyfikacji wyniku. Jest bardzo zbliżony do wyjścia Wordle'a.
źródło