Próbuję stworzyć histogram na podstawie częstych / wspólnych słów, ale dostaję tylko błędy podczas prowadzenia kodu. Udało mi się znaleźć 10 najczęstszych słów, ale nie mogę go wyobrazić w histogramie ...

= DF ['']. Wartości.Tolist ()

from collections import Counter
Counter(" ".join(dlist).split()).most_common(10)

#histogram 
plt.bar(x, y)
plt.title("10 most common")
plt.ylabel("Frequency")
plt.xlabel("Words")
plt.show
2
henz90 15 kwiecień 2021, 12:35

1 odpowiedź

Najlepsza odpowiedź

Wygląda na to, że tęskniłem za kilka rzeczy:

  1. Wynik Counter(...).most_common(10) nie został przypisany do x lub y
  2. x, y wydają się być niezwiązane
  3. plt.show nie został wywołany, więc nie ma nic innego, albo wydrukuje coś takiego jak <function show at 0x...>

Oto powtarzalny przykład, który naprawia:

from collections import Counter
import matplotlib.pyplot as plt
import pandas as pd

data = {
    "description": [
        "This is the first example",
        "This is the second example",
        "This is similar to the first two",
        "This exists add more words"
    ]
}
df = pd.DataFrame(data)


description_list = df['description'].values.tolist()

# Assign the Counter instance `most_common` call to a variable:
word_frequency = Counter(" ".join(description_list).split()).most_common(10)

# `most_common` returns a list of (word, count) tuples
words = [word for word, _ in word_frequency]
counts = [counts for _, counts in word_frequency]

plt.bar(words, counts)
plt.title("10 most frequent tokens in description")
plt.ylabel("Frequency")
plt.xlabel("Words")
plt.show()

Z oczekiwanym wyjściem:

Expected output of code is a bar chart showing 10 most frequent words. The word 'This' occurs four times, 'exists' occurs a single time.

2
Alexander L. Hayes 15 kwiecień 2021, 12:19