Как создать облако слов из корпуса в Python?
С создание подмножества слов из корпуса в R, ответчик может легко преобразовать term-document matrix
в облако слов легко.
есть ли аналогичная функция из библиотек python, которая принимает либо необработанный текстовый файл word, либо NLTK
корпус Gensim
Mmcorpus в облако слов?
результат будет выглядеть так:
5 ответов
вот сообщение в блоге, которое делает именно это:http://peekaboo-vision.blogspot.com/2012/11/a-wordcloud-in-python.html
весь код здесь:https://github.com/amueller/word_cloud
Если вам нужны эти облака слов для их отображения на веб-сайте или веб-приложении, вы можете преобразовать свои данные в формат JSON или csv и загрузить их в библиотеку визуализации JavaScript, такую как d3. слово облака на d3
Если нет, ответ Марцина-хороший способ сделать то, что вы описываете.
пример кода амюллера в действии
в командной строке / терминале:
sudo pip install wordcloud
затем запустите скрипт python:
## Simple WordCloud
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
text = 'all your base are belong to us all of your base base base'
def generate_wordcloud(text): # optionally add: stopwords=STOPWORDS and change the arg below
wordcloud = WordCloud(font_path='/Library/Fonts/Verdana.ttf',
relative_scaling = 1.0,
stopwords = {'to', 'of'} # set or space-separated string
).generate(text)
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
generate_wordcloud(text)
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
stopwords = set(STOPWORDS)
def show_wordcloud(data, title = None):
wordcloud = WordCloud(
background_color='white',
stopwords=stopwords,
max_words=200,
max_font_size=40,
scale=3,
random_state=1 # chosen at random by flipping a coin; it was heads
).generate(str(data))
fig = plt.figure(1, figsize=(12, 12))
plt.axis('off')
if title:
fig.suptitle(title, fontsize=20)
fig.subplots_adjust(top=2.3)
plt.imshow(wordcloud)
plt.show()
show_wordcloud(Samsung_Reviews_Negative['Reviews'])
show_wordcloud(Samsung_Reviews_positive['Reviews'])
вот короткий код
#make wordcoud
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
stopwords = set(STOPWORDS)
def show_wordcloud(data, title = None):
wordcloud = WordCloud(
background_color='white',
stopwords=stopwords,
max_words=200,
max_font_size=40,
scale=3,
random_state=1 # chosen at random by flipping a coin; it was heads
).generate(str(data))
fig = plt.figure(1, figsize=(12, 12))
plt.axis('off')
if title:
fig.suptitle(title, fontsize=20)
fig.subplots_adjust(top=2.3)
plt.imshow(wordcloud)
plt.show()
if __name__ == '__main__':
show_wordcloud(text_str)