public SoundCorrespondenceSurrogate(Dictionary<WordPair, WordPairSurrogate> wordPairSurrogates, SoundCorrespondence corr) { Segment1 = corr.Segment1.StrRep; Segment2 = corr.Segment2.StrRep; Frequency = corr.Frequency; _wordPairs = corr.WordPairs.Select(wp => wordPairSurrogates[wp]).ToList(); }
public SoundCorrespondence ToSoundCorrespondence(SegmentPool segmentPool, Dictionary<WordPairSurrogate, WordPair> wordPairs) { var corr = new SoundCorrespondence(segmentPool.GetExisting(Segment1), segmentPool.GetExisting(Segment2)) {Frequency = Frequency}; corr.WordPairs.AddRange(_wordPairs.Select(wps => wordPairs[wps])); return corr; }
public bool TryGet(Segment seg1, Segment seg2, out SoundCorrespondence value) { return TryGet(UnorderedTuple.Create(seg1, seg2), out value); }
protected override UnorderedTuple<Segment, Segment> GetKeyForItem(SoundCorrespondence item) { return UnorderedTuple.Create(item.Segment1, item.Segment2); }
private static int AddEdge(Dictionary<UnorderedTuple<object, object>, GlobalCorrespondencesGraphEdge> edges, SoundCorrespondence corr, object key1, GlobalSegmentVertex vertex1, object key2, GlobalSegmentVertex vertex2) { GlobalCorrespondencesGraphEdge edge = edges.GetValue(UnorderedTuple.Create(key1, key2), () => new GlobalCorrespondencesGraphEdge(vertex1, vertex2)); edge.Frequency += corr.Frequency; edge.DomainWordPairs.AddRange(corr.WordPairs); return edge.Frequency; }