Значение истинности массива с более чем одним элементом неоднозначно. Используйте конвейер НЛП a.any () или a.all () - PullRequest
0 голосов
/ 03 мая 2019

Привет! Я запускаю конвейер НЛП, в котором я пытаюсь соответствовать модели, но получаю ошибку. Пожалуйста, проверьте эти LoC и предложите, что я делаю не так.

Я попытался пересэмплировать соскоб и запустить его с 255 символами, и, похоже, это дает результаты. Но когда я пытаюсь запустить его с 15000 символов (фактическая длина очистки), я получаю эту ошибку:

Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all ()


    from nltk.tokenize import word_tokenize
    alltext = pd.concat([training_set.scrape_text, test_set.scrape_text]) 
    alltext.shape 
    rows = [] 
    for row in alltext.values: 
        rows.append(word_tokenize(row)) 
        model = gensim.models.FastText(rows, size=100, window=4, min_count=2, iter=10)
    pipeline = Pipeline([
      ('feats', FeatureUnion([ ("word2vec vectorizer",TfidfEmbeddingVectorizer(model)), 
      ('vec', TfidfVectorizer(preprocessor=preprocessor, tokenizer=word_tokenize,analyzer='word', lowercase=True, strip_accents='unicode', stop_words='english', ngram_range=(1,2)))])),
      ('voting', VotingClassifier(estimators=[("xgb",XGBClassifier(nthread= 4, learning_rate=0.08, n_estimators=1000, max_depth=10))], voting='soft' ))])


#Loggin time for model fitting
start_time = time.time()
pipeline.fit(training_set.scrape_text.values, y)

print("Time taken for modelling with current pipeline --- %s seconds ---" % (time.time() - start_time))
...