BreakIterator
文字列から句読点を削除するためにJavaの実装を使用しています。これをScalaで書き直す必要があるので、これをより良いライブラリに置き換える良い機会かもしれないと考えました(私の実装は非常に素朴で、エッジケースでは失敗すると確信しています)。
使用される可能性のあるそのようなライブラリはありますか?
編集:これがScalaでの私の簡単な解決策です:
private val getWordsFromLine = (line: String) => {
line.split(" ")
.map(_.toLowerCase())
.map(word => word.filter(Character.isLetter(_)))
.filter(_.length() > 1)
.toList
}
そしてこれを考えるとList[String]
(各行に1つ...そしてそうです...それは聖書です-それは良いテストケースになります):
モーセの第二の本、呼ばれる脱出
第1章1さて、これらはエジプトにやって来たイスラエルの人々の名である。すべての人と彼の家族はジェイコブと一緒に来ました。2ルベン、シメオン、レビ、ユダ、3イッサカル、ゼブルン、ベンジャミン、4ダン、ナフタリ、ガド、アシェル。
あなたはそのList[String]
ようになります:
List(the, second, book, of, moses, called, exodus, chapter, now, these, are, the, names, of, the, children, of, israel, which, came, into, egypt, every, man, and, his, household, came, with, jacob, reuben, simeon, levi, and, judah, issachar, zebulun, and, benjamin, dan, and, naphtali, gad, and, asher)