2016-07-02 6 views
0

コアNLPが解析された文字列私は結果として得られるSeq [期間]の最初の唯一のメンバーに就いています。私はonline demoで遊んでいて、この動作が期待されるようです。おそらく私は何かを逃したのだろうか?そうでない場合は、より良い選択肢がありますか?解析 "1.5時間" スタンフォードからコアNLP

答えて

0

コアNLPが表示され、SuTimeは10進時間を解析しません。私はScalaで "1.5時間"のような文字列をSuTimeが "1時間30分"のように理解できる文字列に変換する簡単な関数を書いていました。私はこの文字列をパーサーに渡し、誰もが満足しています。

def getReadableDurationString(durationString: String): String = { 
    val hoursAndMins = "([0-9])(\\.[0-9]+) hour[s]?".r 
    val minsOnly = "[0-9]?(\\.[0-9]+) hour[s]?".r 
    durationString match { 
     case hoursAndMins(hours: String, mins: String) => 
     s"${hours.toDouble} hours and ${Math.round(mins.toDouble * 60)} minutes" 
     case minsOnly(mins: String) => 
     s"${Math.round(mins.toDouble * 60)} minutes" 
     case _ => durationString 
    } 
    } 
} 
関連する問題