@@ -470,7 +470,7 @@ var doc = function ( docData, addons ) {
470470 cv . l2NormIndex = docData . wordVectors . l2NormIndex ;
471471 cv . wordIndex = docData . wordVectors . wordIndex ;
472472 cv . dimensions = docData . wordVectors . dimensions ;
473- cv . unkVector = docData . wordVectors . unkVector ;
473+ cv . unkVector = docData . wordVectors . unkVector . slice ( 0 ) ;
474474 // Following properties will be determined on the basis of the context.
475475 cv . size = 0 ;
476476 cv . words = [ ] ;
@@ -487,12 +487,12 @@ var doc = function ( docData, addons ) {
487487 . out ( its . lemma )
488488 . map ( ( t ) => t . toLowerCase ( ) ) ;
489489
490- for ( let i = 0 ; i < docTokens . length ; i += 1 ) cv . vectors [ docTokens [ i ] ] = awvs [ docTokens [ i ] ] || cv . unkVector ;
491- for ( let i = 0 ; i < docTokensLemma . length ; i += 1 ) cv . vectors [ docTokensLemma [ i ] ] = awvs [ docTokensLemma [ i ] ] || cv . unkVector ;
490+ for ( let i = 0 ; i < docTokens . length ; i += 1 ) cv . vectors [ docTokens [ i ] ] = ( awvs [ docTokens [ i ] ] || cv . unkVector ) . slice ( 0 ) ;
491+ for ( let i = 0 ; i < docTokensLemma . length ; i += 1 ) cv . vectors [ docTokensLemma [ i ] ] = ( awvs [ docTokensLemma [ i ] ] || cv . unkVector ) . slice ( 0 ) ;
492492 for ( let i = 0 ; i < specificWordVectors . length ; i += 1 ) {
493- const spWord = specificWordVectors [ i ] . toString ( ) . trim ( ) ;
493+ const spWord = ( specificWordVectors [ i ] ) ? specificWordVectors [ i ] . toString ( ) . trim ( ) : false ;
494494 if ( spWord )
495- cv . vectors [ specificWordVectors [ i ] ] = awvs [ specificWordVectors [ i ] ] || cv . unkVector ;
495+ cv . vectors [ specificWordVectors [ i ] ] = ( awvs [ specificWordVectors [ i ] ] || cv . unkVector ) . slice ( 0 ) ;
496496 }
497497
498498 if ( similarWordVectors ) {
@@ -532,7 +532,8 @@ var doc = function ( docData, addons ) {
532532 // Update contextual vectors using the list of similar words; also update their size.
533533 for ( let i = 0 ; i < similarWords . length ; i += 1 ) {
534534 if ( cv . vectors [ similarWords [ i ] ] === undefined ) {
535- cv . vectors [ similarWords [ i ] ] = awvs [ similarWords [ i ] ] || cv . unkVector ;
535+ // Similar word must exist in `awvs`.
536+ cv . vectors [ similarWords [ i ] ] = awvs [ similarWords [ i ] ] . slice ( 0 ) ;
536537 cv . size += 1 ;
537538 }
538539 }
@@ -543,7 +544,7 @@ var doc = function ( docData, addons ) {
543544 for ( let i = 0 ; cv . size < wordVectorsLimit ; i += 1 ) {
544545 const word = docData . wordVectors . words [ i ] ;
545546 if ( ! cv . vectors [ word ] ) {
546- cv . vectors [ word ] = awvs [ word ] ;
547+ cv . vectors [ word ] = awvs [ word ] . slice ( 0 ) ;
547548 cv . size += 1 ;
548549 }
549550 }
@@ -556,6 +557,7 @@ var doc = function ( docData, addons ) {
556557
557558 // Update the word index entry inside every vector.
558559 for ( let i = 0 ; i < cv . size ; i += 1 ) cv . vectors [ cv . words [ i ] ] [ cv . wordIndex ] = i ;
560+
559561 return JSON . stringify ( cv ) ;
560562 } ; // contextualVectors()
561563
0 commit comments