Я пытаюсь использовать countvectorizer для нескольких тел текста в кадре данных.Затем countvectorizer разбивает тела текста на список слов (т. Е. ['H', 'a']).
Мой фрейм данных выглядит следующим образом: Фрейм данных
Мой код выглядит следующим образом, который читается в столбце на фрейме данных (истории).
def tokenize(text):
"""
Normalize, tokenize and stem text into words
Args:
text, a string of words
Returns:
stem, array of strings containing words
"""
#lower case and remove special punctuation
text = re.sub(r"[^a-zA-Z0-9]", " ",text.lower())
#split using tokenizer
words = word_tokenize(text)
#remove stopwords to reduce vocab & use stem
words = [w for w in words if w not in stopwords.words("english")]
return words
cvec = CountVectorizer(ngram_range=(1,2), tokenizer=lambda doc: doc, lowercase=False)
hacked_df1 = hacked_df.copy()
tokenized_words=[]
for col in hacked_df1.story:
col = str(col)
tokenized_words = pd.DataFrame()
tokenized_words = tokenize(col)
cvec.fit(tokenized_words)
Когда я запускаю код, он возвращается как кадр данных с единственной последней итерированной строкой в df в виде одного столбца с каждой строкой в виде строки code
Мне нужно, чтобы каждая строка, которая повторяется, возвращалась как отдельная строка в кадре данных как таковая. код