Библиотека chars2VEC может быть очень полезна, если вы имеете дело с текстами, содержащими аббревиатуры, сленг, опечатки или какой -то другой конкретный текстовый набор данных. Языковая модель Chars2VEC основана на символическом представлении слов - модель отображает каждое слово в вектор фиксированной длины. Эти векторные представления получаются с помощью пользовательской нейронной сети, в то время как вторая обучается парам аналогичных и немоловых слов. Эта пользовательская нейронная сеть включает в себя LSTM, последовательности чтения символов, как его часть. Модель отображает аналогичные написанные слова для проксимальных векторов. Этот подход обеспечивает создание встраивания в векторное пространство для любой последовательности символов. Модели chars2VEC не сохраняют никакого словаря внедрения, но генерирует встраивающие векторы в место с использованием предварительной модели.
Существуют предварительные модели измерений 50, 100, 150, 200 и 300 для английского языка. Библиотека предоставляет удобный пользовательский API для обучения модели для произвольного набора символов. Прочитайте больше подробности об архитектуре Chars2VEC: языковая модель, основанная на характере для обработки реальных текстов с ошибками правописания и человеческого сленга в хакере в полдень.
>> python setup.py install >> pip install chars2vec Функция chars2vec.load_model(str path) инициализирует модель из каталога и возвращает объект chars2vec.Chars2Vec . Существует 5 предварительно предварительно выпущенных английской модели с размерами: 50, 100, 150, 200 и 300. Для загрузки этих предварительно проведенных моделей:
import chars2vec
# Load Inutition Engineering pretrained model
# Models names: 'eng_50', 'eng_100', 'eng_150', 'eng_200', 'eng_300'
c2v_model = chars2vec . load_model ( 'eng_50' ) Метод chars2vec.Chars2Vec.vectorize_words(words) возвращает numpy.ndarray of Shape (n_words, dim) с помощью внедрения слов.
words = [ 'list' , 'of' , 'words' ]
# Create word embeddings
word_embeddings = c2v_model . vectorize_words ( words ) Функция chars2vec.train_model(int emb_dim, X_train, y_train, model_chars) Создает и обучает новую модель chars2vec и возвращает объект chars2vec.Chars2Vec .
Параметр emb_dim - это измерение модели.
Параметр X_train - это список или numpy.ndarray пар слов. Параметр y_train - это список или numpy.ndarray целевых значений, которые описывают близость слов.
Учебный набор ( X_train , y_train ) состоит из пар «аналогичных» и «не похожих» слов; Пара «аналогичных» слов помечена 0 целевым значением, а пара «не похожа» с 1.
Parameter model_chars - это список ChARS для модели. Символы, которых нет в списке model_chars , будут игнорироваться моделью.
Узнайте больше о обучении HARS2VEC и генерации набора обучения в статье о Chars2VEC.
Функция chars2vec.save_model(c2v_model, str path_to_model) сохраняет обученную модель в каталоге.
import chars2vec
dim = 50
path_to_model = 'path/to/model/directory'
X_train = [( 'mecbanizing' , 'mechanizing' ), # similar words, target is equal 0
( 'dicovery' , 'dis7overy' ), # similar words, target is equal 0
( 'prot$oplasmatic' , 'prtoplasmatic' ), # similar words, target is equal 0
( 'copulateng' , 'lzateful' ), # not similar words, target is equal 1
( 'estry' , 'evadin6' ), # not similar words, target is equal 1
( 'cirrfosis' , 'afear' ) # not similar words, target is equal 1
]
y_train = [ 0 , 0 , 0 , 1 , 1 , 1 ]
model_chars = [ '!' , '"' , '#' , '$' , '%' , '&' , "'" , '(' , ')' , '*' , '+' , ',' , '-' , '.' ,
'/' , '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , ':' , ';' , '<' ,
'=' , '>' , '?' , '@' , '_' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' ,
'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' ,
'x' , 'y' , 'z' ]
# Create and train chars2vec model using given training data
my_c2v_model = chars2vec . train_model ( dim , X_train , y_train , model_chars )
# Save your pretrained model
chars2vec . save_model ( my_c2v_model , path_to_model )
# Load your pretrained model
c2v_model = chars2vec . load_model ( path_to_model ) Полные примеры кода для моделей использования и обучения см. В файлах example_usage.py и example_training.py .