This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
val pCaseClass = Person("Jon", 17, true) | |
val pHlist = genericPerson.to(pCaseClass) | |
assert pCaseClass == genericPerson.from(pHlist) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
val genericPerson = Generic[Person] | |
// will be the same type as previously defined | |
//String :: Int :: Boolean :: HNil |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
val person: String :: Int :: Boolean :: HNil |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Generation: 0 : Top performer: ThreeNumbers(IntGene(0,100,Some(56)),IntGene(0,100,Some(1)),IntGene(0,100,Some(11))) : 384.0 | |
Generation: 1 : Top performer: ThreeNumbers(IntGene(0,100,Some(56)),IntGene(0,100,Some(1)),IntGene(0,100,Some(11))) : 384.0 | |
Generation: 2 : Top performer: ThreeNumbers(IntGene(0,100,Some(60)),IntGene(0,100,Some(1)),IntGene(0,100,Some(17))) : 20.0 | |
Generation: 3 : Top performer: ThreeNumbers(IntGene(0,100,Some(60)),IntGene(0,100,Some(1)),IntGene(0,100,Some(17))) : 20.0 | |
Generation: 4 : Top performer: ThreeNumbers(IntGene(0,100,Some(60)),IntGene(0,100,Some(1)),IntGene(0,100,Some(17))) : 20.0 | |
Generation: 5 : Top performer: ThreeNumbers(IntGene(0,100,Some(60)),IntGene(0,100,Some(1)),IntGene(0,100,Some(17))) : 20.0 | |
Generation: 6 : Top performer: ThreeNumbers(IntGene(0,100,Some(77)),IntGene(0,100,Some(1)),IntGene(0,100,Some(13))) : 1.0 | |
Generation: 7 : Top performer: ThreeNumbers(IntGene(0,100,Some(77)),IntGene(0,100,Some(1)),IntGene(0,100,Some(13))) : 1.0 | |
Generation: 8 : Top performer: ThreeNumb |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
case class ThreeNumbers(x: IntGene, y: IntGene, z: IntGene) | |
val results = EvolutionFactory( | |
candidate = ThreeNumbers(IntGene(0, 100), IntGene(0, 100), IntGene(0, 100)), | |
populationConfig = PopulationConfig(50), | |
evolutionConfig = EvolutionConfig(50), | |
errorRate = (c: ThreeNumbers) => Math.abs(10000.0 - (c.x.value.get * c.y.value.get * c.z.value.get)) | |
).run | |
println(results.head) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def mergeMap[A, B](ms: List[Map[A, B]])(f: (B, B) => B): Map[A, B] = | |
(Map[A, B]() /: (for (m <- ms; kv <- m) yield kv)) { (a, kv) => | |
a + (if (a.contains(kv._1)) kv._1 -> f(a(kv._1), kv._2) else kv) | |
} | |
val ms = List(Map("hello" -> 1.1, "world" -> 2.2), Map("goodbye" -> 3.3, "hello" -> 4.4)) | |
val mm = mergeMap(ms)((v1, v2) => v1 + v2) | |
println(mm) // prints Map(hello -> 5.5, world -> 2.2, goodbye -> 3.3) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
val model = new TokenNameFinderModel(modelIn) | |
val nameFinder = new NameFinderME(model) | |
val matches = nameFinder.find(sampleRecipe) | |
matches.foreach { m => | |
sampleRecipe.slice(m.getStart, m.getEnd).foreach(println(_)) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def trainModel() = { | |
val charset = Charset.forName("UTF-8") | |
val lineStream: ObjectStream[String] = new PlainTextByLineStream(new FileInputStream(s"src/main/resources/trainingdata.txt"), charset) | |
val sampleStream = new NameSampleDataStream(lineStream) | |
try { | |
val params = TrainingParameters.defaultParams() | |
params.put(TrainingParameters.ALGORITHM_PARAM, QNTrainer.MAXENT_QN_VALUE) | |
model = NameFinderME.train("en", "food", sampleStream, params, new TokenNameFinderFactory()) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Bring a large pan of salted water to the boil, then add the <START:ingredient> cauliflower <END> and cook for two minutes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Lamb equivalent of chicken thigh: thigh | |
Lamb equivalent of chicken thigh: back | |
Lamb equivalent of chicken thigh: lamb | |
Lamb equivalent of chicken thigh: shin | |
Lamb equivalent of chicken thigh: visible |