如果您要处理包含缩写,s语,错别字或其他特定的文本数据集的文本,则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)返回带有单词嵌入的shape (n_words, dim)的numpy.ndarray 。
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 word对。参数y_train是列表或numpy.ndarray的目标值,描述了单词的接近度。
训练集( X_train , y_train )由成对的“相似”和“不相似”单词组成;一对“类似”单词用0个目标值标记,而一对“不相似”的单词为1。
参数model_chars是模型的字符列表。模型列表中不在model_chars列表中的字符将被模型忽略。
在有关CHARS2VEC的文章中阅读有关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文件中的完整代码。