построить сумму каждого элемента кортежей - PullRequest
0 голосов
/ 20 января 2020

У меня есть корпус, и я пытаюсь визуализировать объем этикеток (второй элемент каждого кортежа)

корпус:

[(['plot', ':', 'two', 'teen', 'couples', 'go', 'to', ...], 'neg'),
 (['the', 'happy', 'bastard', "'", 's', 'quick', 'movie', ...], 'neg'),
 (['it', 'is', 'movies', 'like', 'these', 'that', 'make', ...], 'neg'),
 (['"', 'quest', 'for', 'camelot', '"', 'is', 'warner', ...], 'pos'),
 (['synopsis', ':', 'a', 'mentally', 'unstable', 'man', ...], 'neg'),
 (['capsule', ':', 'in', '2176', 'on', 'the', 'planet', ...], 'pos'),
 (['so', 'ask', 'yourself', 'what', '"', '8mm', '"', '(', ...], 'neg'),
 (['that', "'", 's', 'exactly', 'how', 'long', 'the', ...], 'pos'),
 (['call', 'it', 'a', 'road', 'trip', 'for', 'the', ...], 'pos'),
 (['plot', ':', 'a', 'young', 'french', 'boy', 'sees', ...], 'neg')]

Я пытался:

import matplotlib.pyplot as plt

fig = plt.figure(figsize = (8, 6))
labels_vol = [label[1] for label in corpus] #to get the second element of each tuple

labels_vol.sum().plot.bar(ylim = 0)
plt.show()

мой вывод:

AttributeError                            Traceback (most recent call last)
<ipython-input-32-c3174c6618f3> in <module>
 10 
---> 11 labels_vol.sum().plot.bar(ylim = 0)
 12 plt.show()

AttributeError: 'list' object has no attribute 'sum'

<Figure size 576x432 with 0 Axes>

Ответы [ 2 ]

2 голосов
/ 20 января 2020

Я обычно хотел бы использовать numpy, который выглядел бы как

import numpy as np
# ...

plt.bar(*np.unique(labels_vol, return_counts=True))

enter image description here

2 голосов
/ 20 января 2020

Ошибка уже говорит об этом:

AttributeError: 'list' object has no attribute 'sum'

это должно быть

a = sum(list)

, а затем отобразите это, но обратите внимание, что это будет работать только для чисел c типов данных.

...