W previous question, zapytałem społeczność, jak liczyć częstotliwość każdego z kolejnych dwóch słów w zdaniu i dostałem świetną odpowiedź! teraz próbuję zbudować chmurę słowa z wyników przy użyciu pakietu, pytagcloud.Jak zbudować czystą chmurę słów za pomocą Pytagcloud bez zatłoczonego obrazu - Python
Problemem, który mam, jest to, że produkowane zdjęcia są zatłoczone, a słowa łączą się ze sobą. każdy pomysł, czy istnieje funkcja oddzielania słów i nadawania im czytelności, czy też istnieje inny sposób na zrobienie tego w pythonie.
Dzięki!
Mój kod jest poniżej. to jest link tekstu, którego użyłem do testu Próbowałem użyć mniejszej liczby kombinacji słów, ale to nie zmieniło tłumu tekstu na obrazie.
Dodałem też kilka funkcji takich jak "układ" i "rozmiar" oraz "fontname =" Lobster "i fontzoom = 1", ale żadna z nich nie daje optymalnych rezultatów, które są czystym obrazem chmury słowa, w którym słowa nie są zatłoczone .
import operator
import urllib2
from roundup.backends.indexer_common import STOPWORDS
import requests, collections, bs4
Data = "TEXT FROM The link above- TEXT file"
two_words = [' '.join(ws) for ws in zip(Data, Data[1:])]
wordscount = {w:f for w, f in Counter(two_words).most_common() if f > 12}
sorted_wordscount = sorted(wordscount.iteritems(), key=operator.itemgetter(1))
print sorted_wordscount;
from pytagcloud import create_tag_image, create_html_data, make_tags, LAYOUT_HORIZONTAL, LAYOUTS, LAYOUT_MIX, LAYOUT_VERTICAL, LAYOUT_MOST_HORIZONTAL, LAYOUT_MOST_VERTICAL
from pytagcloud.colors import COLOR_SCHEMES
from pytagcloud.lang.counter import get_tag_counts
create_tag_image(make_tags(sorted_wordscount), 'filename.png', size=(1300,1150), background=(0, 0, 0, 255), layout=LAYOUT_MIX, fontname='Molengo', rectangular=True)
To jest przykład wyników wyjściowych uzyskać: HERE
Optymalny rezultat będzie coś podobnego do jednego z obrazów HERE
Witam vinaut !!! dziękuję bardzo za wspaniałą odpowiedź !!! Próbowałem zreplikować wyniki, ale nie udało mi się, a twoja chmura wygląda 1000 razy lepiej niż moja! Czy możesz opublikować swój kod, aby zobaczyć, co zrobiłem źle? jeszcze raz bardzo dziękuję!!!! – mongotop
Bez zmartwień, zredagował odpowiedź kodem używanym do generowania obrazu. – vinaut
Dziękuję bardzo vinaut! PS - Masz trochę magii w swoim laptopie! :) http://imgur.com/CmoOB7y to jest najlepsze, co mogłem uzyskać używając maxsize = 50 dla 25 słów, size = (1300,1100). Nie wiem, dlaczego nie tworzy słów w prostokącie takim jak twój, nawet jeśli prostokątny = Prawdziwy. – mongotop