Skip to content

Commit 6a1d94f

Browse files
authored
SF-3650 Correctly specify the target filters for the trainon config (#3580)
1 parent 7bad78c commit 6a1d94f

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/SIL.XForge.Scripture/Services/MachineProjectService.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1271,15 +1271,27 @@ .. corporaSyncInfo
12711271
.Select(s => new ParallelCorpusFilterConfig
12721272
{
12731273
CorpusId = s.CorpusId,
1274-
ScriptureRange = buildConfig
1275-
.TrainingScriptureRanges.FirstOrDefault(t => t.ProjectId == s.ProjectId)
1276-
?.ScriptureRange,
1274+
// NOTE: The scripture range will be set to match the matching source filter's scripture range below
12771275
}),
12781276
],
12791277
},
12801278
],
12811279
};
12821280

1281+
// Set the training target filter scripture ranges to the same as the source filter scripture ranges
1282+
foreach (TrainingCorpusConfig trainingCorpusConfig in translationBuildConfig.TrainOn)
1283+
{
1284+
for (int j = 0; j < trainingCorpusConfig.SourceFilters?.Count; j++)
1285+
{
1286+
if (trainingCorpusConfig.TargetFilters?[j] is not null)
1287+
{
1288+
trainingCorpusConfig.TargetFilters[j].ScriptureRange = trainingCorpusConfig
1289+
.SourceFilters[j]
1290+
.ScriptureRange;
1291+
}
1292+
}
1293+
}
1294+
12831295
// Add the additional training data
12841296
if (
12851297
!string.IsNullOrWhiteSpace(servalData.AdditionalTrainingData?.ParallelCorpusId)

test/SIL.XForge.Scripture.Tests/Services/MachineProjectServiceTests.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1908,7 +1908,6 @@ public void GetTranslationBuildConfig_TranslationScriptureRangesAndTrainingScrip
19081908
const string project01ScriptureRange = "MAT;MRK";
19091909
// No scripture range is supported for target pre-translate translation (project02)
19101910
const string project03ScriptureRange = "LUK;JHN";
1911-
const string project04ScriptureRange = "ACT;ROM";
19121911
var buildConfig = new BuildConfig
19131912
{
19141913
TranslationScriptureRanges =
@@ -1918,7 +1917,6 @@ public void GetTranslationBuildConfig_TranslationScriptureRangesAndTrainingScrip
19181917
TrainingScriptureRanges =
19191918
[
19201919
new ProjectScriptureRange { ProjectId = Project03, ScriptureRange = project03ScriptureRange },
1921-
new ProjectScriptureRange { ProjectId = Project04, ScriptureRange = project04ScriptureRange },
19221920
],
19231921
};
19241922
List<ServalCorpusSyncInfo> corporaSyncInfo =
@@ -1949,7 +1947,7 @@ public void GetTranslationBuildConfig_TranslationScriptureRangesAndTrainingScrip
19491947
CorpusId = Corpus04,
19501948
IsSource = false,
19511949
ParallelCorpusId = ParallelCorpus02,
1952-
ProjectId = Project04,
1950+
ProjectId = Project02,
19531951
},
19541952
];
19551953

@@ -1975,7 +1973,7 @@ public void GetTranslationBuildConfig_TranslationScriptureRangesAndTrainingScrip
19751973
.ScriptureRange
19761974
);
19771975
Assert.AreEqual(
1978-
project04ScriptureRange,
1976+
project03ScriptureRange,
19791977
actual
19801978
.TrainOn!.Single(c => c.ParallelCorpusId == ParallelCorpus02)
19811979
.TargetFilters!.Single(f => f.CorpusId == Corpus04)

0 commit comments

Comments
 (0)