Подсчет слов в каждой строке и присвоение счету заранее определенным столбцам - PullRequest
0 голосов
/ 25 марта 2020

У меня есть df, который выглядит следующим образом:

df = pd.DataFrame(['id','review','word1','word2','word3','word4','word5','word6'])

df.append({'id':1.'review':[word1 word2],[word1 word3 word 9]})
df.append({'id':2.'review':[word1 word2],[word1 word6 word 4]})

Я хочу просмотреть обзор для каждого клиента и назначить счет для слов, которые присутствуют в качестве значений столбцов. Могут быть лишние слова, которых нет в столбцах.

Например:

id, review,                             word1, word2, word3, word4, word5, word6

1,  [word1 word2],[word1 word3 word9]         2.     1.    1


2   [word1 word2],  [word1 word6 word4]       2       1           1              1


3.  [word1 word5],[word1 word3 word5]

1 Ответ

0 голосов
/ 25 марта 2020

Я думаю, что вы хотите, это CountVectorizer Склеарна. Это займет столбец текста и даст вам разреженную матрицу количества слов; затем вы можете преобразовать это в фрейм данных.

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()

sparse_matrix = vectorizer.fit_transform(df["review"])

# Convert the sparse matrix to a dataframe (one column per word, one row per review)

count_df = pd.DataFrame(columns=vectorizer.get_feature_names(),
                        data=sparse_matrix.toarray())

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

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