Как мне получить Python для построения гистограммы количества уникальных слов в столбце, содержащем текст? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть набор данных под названием «my_data», который я назначаю общей c переменной под названием «данные». В моем наборе данных есть столбец под названием «впечатление». Этот столбец «оттиск» содержит текст медицинских заметок, например «Поражение в затылочной области».

Я хотел бы построить гистограмму количества уникальных слов, встречающихся в этом столбце. Вот сценарий python, который я использую вместе с генерируемой им ошибкой:

data = my_text_dataset   # assigns my data set to a generic variable called 'data' 

TEXT_COLUMN = 'impression'  # note: one of the columns in this data set is called 'impression'
text = data[TEXT_COLUMN]

def plot_word_number_histogram(text):
text.str.split().\
    map(lambda x: len(x)).\
    hist()

plot_word_number_histogram(data['impression'])

Python (блокнот Jupyter) возвращает эту ошибку:

~\Anaconda3\lib\site-packages\pandas\core\base.py in _map_values(self, mapper, na_action)
   1152 
   1153         # mapper is a function
-> 1154         new_values = map_f(values, mapper)
   1155 
   1156         return new_values

pandas\_libs\lib.pyx in pandas._libs.lib.map_infer()

<ipython-input-68-95bf9c5b8264> in <lambda>(x)
      2 def plot_word_number_histogram(text):
      3     text.str.split().\
----> 4         map(lambda x: len(x)).\
      5         hist()

TypeError: object of type 'float' has no len()

Примечание: этот сценарий отлично работал с другими текстовыми столбцами. Я заметил, что в новом наборе данных, который я использую, также есть некоторые цифры, например: «ИСТОРИЯ: 1. аневризма 2. метастазы и т. Д. c». и я подозреваю, что это вызывает преобразование типов в Python, которое взрывает мой сценарий выше, но я могу ошибаться?

Может ли кто-нибудь предложить настройку моего сценария, чтобы он преобразовывал данные из 'float 'в' int ', чтобы он мог перейти в график гистограммы?

Большое спасибо !!

1 Ответ

0 голосов
/ 17 июня 2020

Преобразуйте x в строку, прежде чем брать ее длину. Тогда вы получите длину числа.

def plot_word_number_histogram(text):
       text.str.split().\
       map(lambda x: len(str(x))).\
       hist()

Вы можете подумать, хотите ли вы обрабатывать числа так же, как слова, или игнорировать числа и специальные знаки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...