Kern NLP ist das Parsen Strings wie:Parsing "1,5 Stunden" von der Stanford-Core NLP
1,5 Stunden
als 1 Stunde Dauer mit dem folgenden Code:
def getPeriods(text: String): Seq[Period] = {
parse(text).filter(timexAnn => {
val timeExpr: TimeExpression = timexAnn.get(classOf[TimeExpression.Annotation])
timeExpr.getValue.getType == duration
}).map(timexAnn => {
val timeExpr: TimeExpression = timexAnn.get(classOf[TimeExpression.Annotation])
val period = timeExpr.getTemporal.getDuration.getJodaTimePeriod
log.debug("Parsed period: " + TimeUtils.getHourMinutePeriodFormatter.print(period))
period
})
}
Ich nehme das erste und einzige Mitglied der resultierenden Seq [Periode]. Ich habe mit der online demo gespielt und dieses Verhalten scheint zu erwarten. Vielleicht habe ich etwas verpasst? Wenn nicht, gibt es eine bessere Alternative?