НЛП - Мешок слов классификации - PullRequest
0 голосов
/ 28 мая 2018

Проблема:

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

ПочемуРазве мы не создадим новый CountVectorizer и не подгоним к нему тестовые данные и не дадим классификатору прогноз на тестовом CountVectorizer?

Глядя здесь: Как стандартизировать пакет слов для обучения и тестирования?

Извлечено из ответа:

LabeledWords=pd.DataFrame(columns=['word','label'])

LabeledWords.append({'word':'Church','label':'Religion'} )

vectorizer = CountVectorizer()

Xtrain,yTrain=vectorizer.fit_transform(LabeledWords['word']).toarray(),vectorizer.fit_transform(LabeledWords['label']).toarray()
forest = RandomForestClassifier(n_estimators = 100) 
clf=forest.fit(Xtrain,yTrain)

for each_word,label in Preprocessed_list:
    test_featuresX.append(vectorizer.transform(each_word),toarray())
    test_featuresY.append(label.toarray())

clf.score(test_featuresX,test_featuresY) 

Мы можем видеть, как пользователь создал CountVectorizer и подгоняет его под тренировочные данные.Затем установите классификатор в этот CountVectorizer.После этого пользователь просто преобразовал тестовые данные, используя CountVectorizer, который соответствовал данным поезда, и передал их в классификатор.Почему это так?

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

1 Ответ

0 голосов
/ 28 мая 2018

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

Кроме того, как сказал @ Juanpa.arrivillaga, обработка текста открывает червячные банки поверх стандартных эмпирических правил для прогнозной аналитики.Используя два разных векторизатора подсчета, вы могли бы подготовить модель (в данном случае случайный лес), чтобы ожидать, что первая координата будет соответствовать какому-то слову, например, «яблочко», а затем передать ей слово, например, «виноград».Любой успех, который вы могли бы получить в таком сценарии, был бы чисто случайным.

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