1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/linius-dcnn-nlp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

dcnn-nlp

dcnn-nlp — это инструмент для обработки естественного языка и классификации текстов с использованием свёрточных нейронных сетей. Он основан на статье 2014 года «A Convolutional Neural Network for Modelling Sentences» и расширен.

Особенности:

— По сравнению с традиционной моделью «мешок слов» dcnn-nlp лучше использует последовательную информацию между словами, что позволяет более точно понимать короткие тексты.

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

— Инструмент написан на Python, а его основные части оптимизированы с помощью Cython, BLAS и других технологий.

— Структура сети в dcnn-nlp расширена по сравнению со статьёй «A Convolutional Neural Network for Modelling Sentences», позволяя свободно определять уровни глубокой свёрточной нейронной сети.

— Метод обучения векторов слов в статье был улучшен, и теперь поддерживается пакет инструментов gensim word2vec.

— Поддерживается обучение без учителя для векторов слов, предложений и абзацев (TODO).

— Планируется поддержка ускорения на GPU (TODO).

Примеры:

# Stanford Sentiment Treebank Experiment
# Сначала вы должны запустить python prepare.py в направлении data/stanford
total_data_file = 'data/stanford/total.data'
total_sentences = LineSentence(total_data_file, repeat=5)

train_data_file = 'data/stanford/train2.data'
train_label_file = 'data/stanford/train2.label'
train_sentences = LineSentence(train_data_file)
train_labels = numpy.fromfile(train_label_file, sep='\n', dtype=numpy.int32)

dev_data_file = 'data/stanford/dev2.data'
dev_label_file = 'data/stanford/dev2.label'
dev_sentences = LineSentence(dev_data_file)
dev_labels = numpy.fromfile(dev_label_file, sep='\n', dtype=numpy.int32)

test_data_file = 'data/stanford/test2.data'
test_label_file = 'data/stanford/test2.label'
test_sentences = LineSentence(test_data_file)
test_labels = numpy.fromfile(test_label_file, sep='\n', dtype=numpy.int32)

# n_filters=[6,14] в статье
# n_filters=[4,6] в LeNet
# Но вы можете углубиться
model = DCNNDeep(sentences=train_sentences, output_layer_size=2, wordvec_dim=48, 
                 alpha=0.012, entropy_descent_m=0.995, dropout_rate_in_hiddens=0.5, 
                 dropout_rate_in_input=0.2, min_count=2, full_con_layer_size=5, 
                 filter_width=[7,5,3], k_top=4, n_filters=[6,14,6], alpha_m=0.999995, 
                 min_alpha=0.00001, pre_train_word_vec=True, pre_train_sentences=total_sentences)
model.train(train_sentences=train_sentences, train_labels=train_labels, patience=5, 
            validate_freq=2000, max_entropy_allowed=0.38, validate_sentences=dev_sentences, 
            validate_labels=dev_labels, chunksize=5)
print 'test accuracy: %f' %model.accuracy(test_sentences, test_labels)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/linius-dcnn-nlp.git
git@api.gitlife.ru:oschina-mirror/linius-dcnn-nlp.git
oschina-mirror
linius-dcnn-nlp
linius-dcnn-nlp
master