Skip to content

Instantly share code, notes, and snippets.

val pCaseClass = Person("Jon", 17, true)
val pHlist = genericPerson.to(pCaseClass)
assert pCaseClass == genericPerson.from(pHlist)
val genericPerson = Generic[Person]
// will be the same type as previously defined
//String :: Int :: Boolean :: HNil
val person: String :: Int :: Boolean :: HNil
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
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)
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)
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(_))
}
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())
Bring a large pan of salted water to the boil, then add the <START:ingredient> cauliflower <END> and cook for two minutes.
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