Наивный Байес, Анализ текста, SKLearn - PullRequest
0 голосов
/ 03 ноября 2019

Это из упражнения по анализу текста с использованием данных из Гнилых Помидоров. Данные находятся в critics.csv, импортированном как pandas DataFrame, «критики».

Этот фрагмент упражнения предназначен для

Построения кумулятивного распределения частот документов (df). ,Ax-ось - это количество документов (??), а ?-ось - это процент слов, которые появляются меньше (() раз. Например, при ? = 5, нарисуйте точку, представляющую процент или количество слов, которые появляются в 5 или менее документах.

Из предыдущего упражнения у меня есть «Мешок слов»

from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()

# build the vocabulary and transform to a "bag of words"
X = vectorizer.fit_transform(critics.quote)

# Convert matrix to Compressed Sparse Column (CSC) format
X = X.tocsc()  

Пример Evey, который я нашел, вычисляет матрицу документов на слово из этой матрицы «слов» следующим образом:

docs_per_word = X.sum(axis=0) 

Я покупаю, это работает;Я посмотрел на результат.

Но я запутался в том, что на самом деле происходит и почему это работает, что суммируется, и как я мог бы понять, как это сделать, не обращая внимания на то, что делали другие люди.

1 Ответ

0 голосов
/ 03 ноября 2019

Я понял это прошлой ночью. Это на самом деле не работает;Я неверно истолковал результат. (Я думал, что это работает, потому что записные книжки Jupyter показывают только несколько значений в большом массиве. Но, при более тщательном рассмотрении, значения массива были слишком большими. Максимальное значение в массиве было больше, чем количество «документов»!)

X (мой «мешок слов») - это вектор частоты слов. Суммирование по X дает информацию о том, как часто каждое слово встречается в корпусе документов. Но в инструкциях относительно количества документов, в которых появляется слово (например,между 0 и 4 для четырех документов), а не сколько раз оно появляется в наборе этих документов (0 - n для четырех документов).

Мне нужно преобразовать X в логическую матрицу. (Теперь я простонадо выяснить как это сделать.; -)

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