U C^ @sddlmZddlmZmZmZmZmZmZddlm Z m Z ddl m Z m Z ddlmZmZddlmZddlmZmZmZdd lmZmZd d lmZejd d dZejdddZejdddZ ejdddZ!ejdddZ"ejdddZ#ejddd Z$ejd!d"d#Z%dd$d%d&d'd(d)d*gid+dd,d-d%d&d'd(d)d*gd.d/d0d,dd1d+d2d,d3d4d+d5d+d6d,d d7d3d8d+d9Z&d:S);)unicode_literals)chainlayerizeclone concatenate with_flattenuniqued)noopwith_square_sequences)MaxoutModel) HashEmbed StaticVectors) ExtractWindow)Residual LayerNormFeatureExtracter) make_layerregistry)concatenate_listszspacy.Tok2Vec.v1cCsft|d}t|d}t|d}t|dd}t|tt|||d}||_|j|_||_||_|S)N @doc2feats@embed@encodereceptive_fieldr)pad)rgetattrrrcfgnOembedencode)configZ doc2featsr r!Z field_sizeZtok2vecr#3/tmp/pip-install-6_kvzl1k/spacy/spacy/ml/tok2vec.pyTok2Vec s    r%zspacy.Doc2Feats.v1cCs|d}t|S)Ncolumns)r)r"r&r#r#r$ Doc2Featssr'zspacy.MultiHashEmbed.v1c Cs|d}|d}|d}t|||ddd}|drt||d|d d d}t||d|d d d}t||d|d dd}|drt|d}t|d} tttd|dr|dr|d| jd_ t ||B|B|B|B| ?|dd} nx|drB|d| jd_ t ||B|B|B| ?|dd} n:|drx|d| jd_ t ||B| ?|dd} n|} W5QRX|| _ | S)Nr&widthrowsNORMZ embed_norm)columnname use_subwordsrPREFIXZ embed_prefixSUFFIXZ embed_suffixSHAPEZ embed_shape@pretrained_vectors@mix)z>>|rORTH)r+) r indexgetrr Zdefine_operatorsrrZ_layersZnIrr) r"colsr(r)ZnormprefixsuffixshapeZglovemixZlayerr#r#r$MultiHashEmbed!sZ     r>zspacy.CharacterEmbed.v1cCs\ddlm}|d}|d}|j||d}t|d}t|d}tt|||}||_|S)Nr)_mlr(chars)ZnMZnCz@embed_featuresr2)r?ZCharacterEmbedModelrrrr)r"r?r(r@Z chr_embedZ other_tablesr=modelr#r#r$CharacterEmbedQs   rCzspacy.MaxoutWindowEncoder.v1cCsl|d}|d}|d}|d}tt|dtt|||dd|d}tt||}||_|||_|S) Nr( window_sizepiecesdepthnWrr)rE)rrrr rrrr)r"rrHZnPrFcnnrBr#r#r$MaxoutWindowEncoderas rJzspacy.MishWindowEncoder.v1cCsbddlm}|d}|d}|d}tt|dt||||dd}tt||}||_|S) Nr)Mishr(rDrFrGrr) thinc.v2vrKrrrrrr)r"rKrrHrFrIrBr#r#r$MishWindowEncoderqs &rMzspacy.PretrainedVectors.v1cCst|d|d|dS)N vectors_namer(r+)r)r"r#r#r$PretrainedVectorssrOzspacy.TorchBiLSTMEncoder.v1cCsVddl}ddlm}|d}|d}|dkr6ttSt||jj||d|ddS)Nr)PyTorchWrapperRNNr(rFrT) bidirectional)Ztorch.nnZthinc.extra.wrappersrPrr r nnZLSTM)r"ZtorchrPr(rFr#r#r$TorchBiLSTMEncoders  rSr&ZIDr*r.r/r0r5)archr"`iTZTransformedStaticVectorszen_vectors_web_lg.vectors)rNr(r+ZLayerNormalizedMaxout)r(rE)r(r)r&r-r1r2ZMaxoutWindowEncoder6)r(rDrFrE)rrrN)' __future__rZ thinc.apirrrrrrr r rLr r Z thinc.i2vr rZ thinc.t2trZ thinc.miscrrrutilrrZ_wirerZ architecturesregisterr%r'r>rCrJrMrOrSZ_EXAMPLE_CONFIGr#r#r#r$s^         /