2015-11-01 3 views
0

Я пытаюсь подготовить модель по классификации текста. У меня большой помеченный набор данных. Я пробовал классификаторы scikit NaiveBayes, KNeighborsClassifier, RandomForest и т. Д. Но я не могу получить точность выше 30%. Как я могу использовать Neural Networks для классификации текста? Вот алго я использовал до сих порНейронные сети для текстовой классификации

df = read_csv(filename, sep="|", na_values=[" "]).fillna(" ") 
    le = preprocessing.LabelEncoder() 
    target = le.fit_transform(df['label']) 

    vectorizer = TfidfVectorizer(sublinear_tf=True, 
          max_df=0.3, 
          min_df=100, 
          lowercase=True, 
          stop_words='english', 
          max_features=20000, 
          tokenizer=tokenize, 
          ngram_range=(1,4) 
         ) 

    train = vectorizer.fit_transform(df['data']) 
    X_train, X_test, y_train , y_test = cross_validation.train_test_split(train, target, test_size=5000, random_state=0) 
    clf = MultinomialNB(alpha=.1) 
    clf.fit(X_train, y_train) 
    pred = clf.predict(X_test) 

Мой набор данных содержит около 300k документов и векторизатор может производить ДО 50k особенностей. Я даже попробовал chisquare, чтобы уменьшить количество функций до 5k, но точность не сильно улучшилась.

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

+2

http://stats.stackexchange.com может быть более актуальным для этого вопроса. – jeff

+0

Вам необходимо предоставить дополнительную информацию, например, образцы документов ... – fireant

+0

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

ответ

0

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

Смежные вопросы