public static TwoDimensionalMap <string, string, SimpleMatrix> AverageBinaryMatrices(IList <TwoDimensionalMap <string, string, SimpleMatrix> > maps) { TwoDimensionalMap <string, string, SimpleMatrix> averages = TwoDimensionalMap.TreeMap(); foreach (Pair <string, string> binary in GetBinaryMatrixNames(maps)) { int count = 0; SimpleMatrix matrix = null; foreach (TwoDimensionalMap <string, string, SimpleMatrix> map in maps) { if (!map.Contains(binary.First(), binary.Second())) { continue; } SimpleMatrix original = map.Get(binary.First(), binary.Second()); ++count; if (matrix == null) { matrix = original; } else { matrix = matrix.Plus(original); } } matrix = matrix.Divide(count); averages.Put(binary.First(), binary.Second(), matrix); } return(averages); }
private SimpleMatrix GetAverageEmbedding(IList <CoreLabel> words) { SimpleMatrix emb = new SimpleMatrix(staticWordEmbeddings.GetEmbeddingSize(), 1); foreach (CoreLabel word in words) { emb = emb.Plus(GetStaticWordEmbedding(word.Word())); } return(emb.Divide(Math.Max(1, words.Count))); }