Я надеюсь, что кто-то может мне помочь. Я работаю с относительно большим фреймом данных (1,4 м строк), содержащим текст заявки на ремонт.
Пример:
"water tank in loft area may be leaking according to op that went out for roofing issue as damp patches on ceilings all upstairs"
Мне удалось применить TextBlob для извлечения имен существительных. Каждая строка имеет свое описание работы. Существует столбец Noun_Phrase с извлеченными именными фразами, число которых будет варьироваться в зависимости от описания задания. Не может быть существительных до нескольких.
1008 * Е.Г. *
Существительные фразы из приведенного выше описания работы будут:
['water tank','loft area','damp patches']
Я хочу посмотреть на частоту того, как часто каждая существительная фраза встречается в 1,4 миллиона наблюдений. Для начала мне нужно собрать их в единый список фраз (не разбросанных по нескольким столбцам).
Я пробовал:
df2 = pd.DataFrame(df['Noun_Phrases'].values.tolist())
Предполагаемая мощность:
df2:
Index | Noun_Phrase
0 | water tank
1 | loft area
2 | damp patches
Однако это приводит к следующей ошибке:
Traceback (последний последний вызов):
Файл "", строка 1, в
df2 = pd.DataFrame (df ['Noun_Phrases']. values.tolist ())
Файл
"C: \ Users [УДАЛЕНО] \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ сайт-пакеты \ панды \ ядро \ frame.py",
строка 387, в init
массивы, столбцы = _to_arrays (данные, столбцы, dtype = dtype)
Файл
"C: \ Users [УДАЛЕНО] \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ сайт-пакеты \ панды \ ядро \ frame.py",
строка 7434, в _to_arrays
DTYPE = DTYPE)
Файл
"C: \ Users [УДАЛЕНО] \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ сайт-пакеты \ панды \ ядро \ frame.py",
строка 7511, в _list_to_arrays
content = list (lib.to_object_array (data) .T)
Файл "pandas / _libs / src \ inference.pyx", строка 1524, в
pandas._libs.lib.to_object_array
TypeError: Ожидаемый список, есть WordList
Я новичок в Python и NLP, поэтому разбираюсь с вещами на лету. Кажется, не так много сообщений о том, как обращаться с WordLists. Возможно, есть лучший подход, который мне не приходил в голову.