A biblioteca CHARS2VEC pode ser muito útil se você estiver lidando com os textos que contêm abreviações, gírias, erros de digitação ou algum outro conjunto de dados textual específico. O modelo de linguagem CHARS2VEC é baseado na representação simbólica das palavras - o modelo mapeia cada palavra para um vetor de um comprimento fixo. Essas representações vetoriais são obtidas com uma rede neural personalizada enquanto a última está sendo treinada em pares de palavras semelhantes e não semelhantes. Essa rede neural personalizada inclui LSTM, Reading Sequências de Personagens em palavras, como sua parte. O modelo mapeia palavras escritas de maneira semelhante para vetores proximais. Essa abordagem permite a criação de uma incorporação no espaço vetorial para qualquer sequência de caracteres. Os modelos CHARS2VEC não mantêm nenhum dicionário de incorporação, mas gera vetores de incorporação no local usando modelo pré -ridículo.
Existem modelos de dimensões pré -gravados 50, 100, 150, 200 e 300 para o idioma inglês. A biblioteca fornece uma API de usuário conveniente para treinar um modelo para um conjunto arbitrário de caracteres. Leia mais detalhes sobre a arquitetura de CHARS2VEC: Modelo de linguagem baseado em caracteres para lidar com textos do mundo real com erros de ortografia e gíria humana no meio-dia de hacker.
>> python setup.py install >> pip install chars2vec Função chars2vec.load_model(str path) inicializa o modelo do diretório e retorna o objeto chars2vec.Chars2Vec . Existem 5 modelo em inglês pré -criado com dimensões: 50, 100, 150, 200 e 300. Para carregar esses modelos pré -gravados:
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) retorna numpy.ndarray of shape (n_words, dim) com incorporação de palavras.
words = [ 'list' , 'of' , 'words' ]
# Create word embeddings
word_embeddings = c2v_model . vectorize_words ( words ) Função chars2vec.train_model(int emb_dim, X_train, y_train, model_chars) cria e treina o novo modelo chars2vec e retorna o objeto chars2vec.Chars2Vec .
Parâmetro emb_dim é uma dimensão do modelo.
Parâmetro X_train é uma lista ou numpy.ndarray de pares de palavras. O parâmetro y_train é uma lista ou Numpy.ndarray de valores de destino que descrevem a proximidade das palavras.
O conjunto de treinamento ( X_train , y_train ) consiste em pares de palavras "semelhantes" e "não semelhantes"; Um par de palavras "semelhantes" é rotulado com o valor de 0 alvo e um par de "não semelhante" com 1.
Parameter model_chars é uma lista de chars para o modelo. Os caracteres que não estão na lista model_chars serão ignorados pelo modelo.
Leia mais sobre o treinamento do CHARS2VEC e a geração do conjunto de dados de treinamento no artigo sobre o CHARS2VEC.
Função chars2vec.save_model(c2v_model, str path_to_model) salva o modelo treinado no diretório.
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 ) Exemplos de código completo para modelos de uso e treinamento, consulte em example_usage.py e example_training.py arquivos.