У меня есть датафрейм размером 172 строки на 1 столбец с текстовыми данными.После того, как я очистил фрейм данных (удалив пунктуацию, строчные буквы и т. Д.), Я хочу использовать CountVectorizer для получения матрицы терминов документа, однако она не проходит правильную матрицу.Все, что он сделал, это посмотрел на заголовок датафрейма и создал матрицу 1,1, что странно.
Я пытался использовать функцию .all, но он говорит, что объект метода не повторяется.
import pandas as pd
import requests
import pickle
import numpy as np
import re
import string
excel_file = "C:\\Users\\wo944c\\Desktop\\example.xlsx"
df = pd.read_excel(excel_file)
df.shape
OUT(172,15)
pd.set_option('max_colwidth',150)
data_df2 = data_df[['Column Package']]
data_df2
def clean_text_round1(text):
text = text.str.lower()
text = text.str.replace('\[.*?\]','')
text = text.str.replace('[%s]' % re.escape(string.punctuation),'')
text = text.str.replace('\w*\d\w*','')
text = text.str.replace('[‘’“”…]', '')
text = text.str.replace('\n', '')
return text
round1 = lambda x: clean_text_round1(x)
data_clean = data_df2.apply(round1)
data_clean
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
cv = CountVectorizer(stop_words = 'english')
data_cv = cv.fit_transform(data_clean)
data_dtm = pd.DataFrame(data_cv.toarray(), columns=cv.get_feature_names())
data_dtm.index = data_clean.index
data_dtm
Я вижу следующую ошибку: ValueError: Несоответствие длины: ожидаемая ось имеет 1 элемент, новые значения имеют 172 элемента
Что я хочуsee - это полная матрица терминов документа, состоящая из 172 строк, таких как фрейм данных.