2017-12-11 2 views
1
import pandas as pd 
import matplotlib.pyplot as plt 
from PIL import Image 
import numpy as np 
import wordcloud 
from wordcloud import WordCloud,STOPWORDS 

# Read the whole text. 
remarks = open(r'C:\Users\marmar\Documents\Remarks.txt').read() 

#Create words over an image 
mask = np.array(Image.open(r'C:\users\marmar\Documents\cloud.png')) 

#set the stopwords list 
stopwords= set(STOPWORDS) 

#append new words to the stopwords list 
new_words =open(r'C:\Users\marmar\comments.txt').read() 
new_stopwords=stopwords.union(new_words) 

#generate the word cloud with parameters 
wc = WordCloud(background_color="white", 
       max_words=2000, 
       mask=mask, 
       min_font_size =12, 
       max_font_size=20, 
       relative_scaling = 0.5, 
       stopwords=new_stopwords, 
       normalize_plurals= True) 
wc.generate(remarks) 
plt.figure(figsize=(25,25)) 
plt.imshow(wc, interpolation="bilinear") 
plt.axis("off") 

#Show the wordcloud 
plt.show() 

Grundsätzlich verwende ich Python 3 (Jupyter Notebook), um eine Wordcloud mit einem tatsächlichen Cloud-Bild zu erstellen. WordCloud-Pakete haben tatsächlich ihre eigene Stopword-Funktion. Ich möchte jedoch einige Wörter in die Liste der Stoppwörter aufnehmen, die ich nicht in meiner Cloud sehen möchte. Ich habe versucht, einige Wörter in diese Textdatei einzufügen, aber ich kann die Wörter in meiner Cloud sehen. Zum Beispiel sieht die Textdatei wie folgt aus: Kunde, CSR Kunde, zufrieden, abgeschlossener ArtikelWie entferne ich Wörter aus meinem Wordcloud? (Python 3)

Wie gehe ich vor, um weitere Wörter zur Liste hinzuzufügen. Ich habe versucht, add, append, diese beiden Funktionen und sie werden nicht funktionieren.

Vielen Dank im Voraus.

+0

Ich versuchte stopwords.add ('CSR Kommentar') und ich konnte immer noch in der Cloud sehen! – marmar

+1

In Ihrem Aufruf des 'WordCloud'-Konstruktors sieht es so aus, als ob Sie' stopwords = stopwords' übergeben. Möchten Sie nicht "stopwords = new_stopwords" verwenden? – RagingRoosevelt

+0

Stellen Sie außerdem sicher, dass Sie Ihre Datei mit einem Token versehen, sodass alles wortweise aufgelöst wird. Sie können etwas wie 'open (...). Read(). Split()' verwenden. – RagingRoosevelt

Antwort

0

Ah hah! Es ist, weil ich Kommas hatte, die meine Wörter in meiner Textdatei trennen.

Für diejenigen, die eine wordcloud erstellen, schreiben Sie einfach den Typ die Wörter, die sie mit nur einem Leerzeichen trennen. Keine Notwendigkeit für Interpunktion. @RagingRoosevelt war korrekt bei der Verwendung der "Split" -Funktion.

Verwandte Themen