Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -302,10 +302,9 @@ def DispersionPlot(textParty):
|
|
| 302 |
print(f"Debug DispersionPlot: FreqDist sample: {list(fdistance.most_common(10))}") # Debug print
|
| 303 |
|
| 304 |
# --- Improved word selection logic ---
|
| 305 |
-
# Get common words,
|
| 306 |
-
# or words that dispersion_plot might have trouble with.
|
| 307 |
common_words_raw = fdistance.most_common(15) # Check a few more common words
|
| 308 |
-
# Filter: length > 2, isalpha (to avoid punctuation), not just digits
|
| 309 |
common_words_filtered = [(word, freq) for word, freq in common_words_raw if len(word) > 2 and word.isalpha() and not word.isdigit()]
|
| 310 |
print(f"Debug DispersionPlot: Filtered common words: {common_words_filtered}") # Debug print
|
| 311 |
|
|
@@ -316,7 +315,6 @@ def DispersionPlot(textParty):
|
|
| 316 |
word_Lst = [common_words_filtered[x][0] for x in range(5)]
|
| 317 |
|
| 318 |
# Final check: Ensure words are present in the Text object (moby)
|
| 319 |
-
# This is crucial for dispersion_plot
|
| 320 |
final_word_list = [word for word in word_Lst if word in moby] # Check membership in the Text object
|
| 321 |
print(f"Debug DispersionPlot: Final word list for plot: {final_word_list}") # Debug print
|
| 322 |
|
|
@@ -360,11 +358,8 @@ def DispersionPlot(textParty):
|
|
| 360 |
buf.close() # Ensure buffer is closed on error
|
| 361 |
traceback.print_exc()
|
| 362 |
plt.close('all') # Aggressive close on error
|
| 363 |
-
# Optionally return a placeholder image or None
|
| 364 |
return None # Return None on error
|
| 365 |
|
| 366 |
-
|
| 367 |
-
|
| 368 |
def word_cloud_generator(parsed_text_name, text_Party):
|
| 369 |
"""Generates the word cloud image."""
|
| 370 |
buf = None # Initialize buffer
|
|
|
|
| 302 |
print(f"Debug DispersionPlot: FreqDist sample: {list(fdistance.most_common(10))}") # Debug print
|
| 303 |
|
| 304 |
# --- Improved word selection logic ---
|
| 305 |
+
# Get common words, handle potential IndexError if less than 5 unique words
|
|
|
|
| 306 |
common_words_raw = fdistance.most_common(15) # Check a few more common words
|
| 307 |
+
# Filter: length > 2, isalpha (to avoid punctuation/non-informative), not just digits
|
| 308 |
common_words_filtered = [(word, freq) for word, freq in common_words_raw if len(word) > 2 and word.isalpha() and not word.isdigit()]
|
| 309 |
print(f"Debug DispersionPlot: Filtered common words: {common_words_filtered}") # Debug print
|
| 310 |
|
|
|
|
| 315 |
word_Lst = [common_words_filtered[x][0] for x in range(5)]
|
| 316 |
|
| 317 |
# Final check: Ensure words are present in the Text object (moby)
|
|
|
|
| 318 |
final_word_list = [word for word in word_Lst if word in moby] # Check membership in the Text object
|
| 319 |
print(f"Debug DispersionPlot: Final word list for plot: {final_word_list}") # Debug print
|
| 320 |
|
|
|
|
| 358 |
buf.close() # Ensure buffer is closed on error
|
| 359 |
traceback.print_exc()
|
| 360 |
plt.close('all') # Aggressive close on error
|
|
|
|
| 361 |
return None # Return None on error
|
| 362 |
|
|
|
|
|
|
|
| 363 |
def word_cloud_generator(parsed_text_name, text_Party):
|
| 364 |
"""Generates the word cloud image."""
|
| 365 |
buf = None # Initialize buffer
|