TextBlob для извлечения именных фраз: проблема WordList
Я надеюсь, что кто-то может мне помочь. Я работаю с относительно большим фреймом данных (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 с извлеченными именными фразами, число которых будет варьироваться в зависимости от описания задания. Не может быть существительных фраз до нескольких.
Например
Фраза от имени выше описанию работы будет:
['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\site-packages\pandas\core\frame.py", строка 387, в массивах init, columns = _to_arrays(данные, столбцы, dtype= DTYPE)
Файл "C:\Users[отредактировано]\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py", строка 7434, в _to_arrays dtype=dtype)
Файл "C:\Users[отредактировано]\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\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
Ошибка Типа: Ожидаемый список, получил WordList
Я новичок в Python и NLP, так что выясняю все на лету. Кажется, не так много сообщений о том, как обращаться с WordLists. Возможно, есть лучший подход, который мне не приходил в голову.