La biblioteca Chars2Vec podría ser muy útil si está tratando con los textos que contienen abreviaturas, jerga, errores tipográficos o algún otro conjunto de datos textual específico. El modelo de lenguaje Chars2Vec se basa en la representación simbólica de las palabras: el modelo asigna cada palabra a un vector de una longitud fija. Estas representaciones vectoriales se obtienen con una red neuronal personalizada, mientras que esta última se está entrenando en pares de palabras similares y no similares. Esta red neuronal personalizada incluye LSTM, secuencias de lectura de personajes en palabras, como su parte. El modelo asigna palabras de manera similar a los vectores proximales. Este enfoque permite la creación de una incrustación en el espacio vectorial para cualquier secuencia de caracteres. Los modelos CharS2VEC no mantienen ningún diccionario de incrustaciones, pero genera vectores de incrustación en el lugar utilizando el modelo previo a la aparición.
Hay modelos de dimensiones previos al estado previo 50, 100, 150, 200 y 300 para el idioma inglés. La biblioteca proporciona una API de usuario conveniente para entrenar un modelo para un conjunto arbitrario de caracteres. Lea más detalles sobre la arquitectura de Chars2vec: modelo de lenguaje basado en personajes para manejar textos del mundo real con errores de ortografía y jerga humana en el mediodía del hacker.
>> python setup.py install >> pip install chars2vec Función chars2vec.load_model(str path) inicializa el modelo desde el directorio y devuelve el objeto chars2vec.Chars2Vec . Hay 5 modelo de inglés previo a la petróleo con dimensiones: 50, 100, 150, 200 y 300. Para cargar estos modelos previos a la aparición:
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' ) Método chars2vec.Chars2Vec.vectorize_words(words) Devuelve numpy.ndarray de forma (n_words, dim) con incrustaciones de palabras.
words = [ 'list' , 'of' , 'words' ]
# Create word embeddings
word_embeddings = c2v_model . vectorize_words ( words ) Función chars2vec.train_model(int emb_dim, X_train, y_train, model_chars) crea y entrena un nuevo modelo Chars2vec y devuelve el objeto chars2vec.Chars2Vec .
El parámetro emb_dim es una dimensión del modelo.
El parámetro X_train es una lista o numpy.ndarray de pares de palabras. El parámetro y_train es una lista o numpy.ndarray de valores objetivo que describen la proximidad de las palabras.
El conjunto de entrenamiento ( X_train , y_train ) consiste en pares de palabras "similares" y "no similares"; Un par de palabras "similares" se etiqueta con el valor objetivo 0 y un par de "no similar" con 1.
Parameter model_chars es una lista de caracteres para el modelo. El modelo ignorará los caracteres que no están en la lista model_chars .
Lea más sobre la capacitación Chars2Vec y la generación de datos de entrenamiento en el artículo sobre Chars2vec.
Función chars2vec.save_model(c2v_model, str path_to_model) guarda el modelo entrenado en el directorio.
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 ) Ejemplos de código completo para los modelos de uso y capacitación Ver en example_usage.py y example_training.py .