新しいEntity Extraction APIが、ベータ版で利用可能になったが、そのAPIを使用すると、アプリ内のテキストを分析して、日付、URL、支払いカードなどのさまざまなテキストエンティティを検出できる。Selfie Segmentationは、写真にエフェクトを簡単に追加できるようにすることを目的としている。
Entity Extraction APIは、15の言語で11の異なるエンティティを検出できる。サポートされているエンティティの例は、住所、日付と時刻、電子メールアドレス、追跡番号などである。このAPIはデバイス上で動作するため、インターネット接続は必要ない。また、リアルタイムの性能により、テキストの入力中にも使用できる。
Entity Extraction APIで使用されるアルゴリズムは、2つのステップで実行される。最初に、入力テキストに表示されるすべての単語を使用して、指定された最大長に収まる限りのすべての部分文字列を構築する。次に、すべての部分文字列は、ニューラルネットワークを使用して、有効なエンティティを表す可能性に基づいてスコアリングされる。次に、2番目のニューラルネットワークが上位スコアのサブシーケンスで使用され、アドレス、番号などとして分類される。
ML Kitのモデル管理APIを使用して、どの言語固有モデルがデバイスで使用できるかをコントロールしたり、必要に応じて必要な言語モデルを自動的にダウンロードしたりできる。モデルが利用可能になったら、次の例のようにannotateText
メソッドを使用できる。エラーが見つからない場合、結果は配列で返される。
let options = EntityExtractorOptions(modelIdentifier:
EntityExtractionModelIdentifier.english)
let extractor = EntityExtractor.entityExtractor(options: options)
extractor.annotateText(text.string) {
result, error in
if let annotations = result {
let entities = annotation.entities
for entity in entities {
switch entity.entityType {
case EntityType.dateTime:
if let dateTimeEntity = entity.dateTimeEntity {
//-- do something
}
break
case EntityType.flightNumber:
if let flightNumberEntity = entity.flightNumberEntity {
//-- do something
}
break
case EntityType.money:
//-- ...
default:
//-- handle default case
}
}
}
Googleによると、この新しいAPIによってテキスト入力を処理する際により高度なユーザエクスペリエンスを実現できる。通常の切り取り/コピー/貼り付けのパラダイムに加えてである。たとえば、ユーザが入力テキストで検出されたエンティティの種類に基づいて特定の操作を実行できるように、アプリはショートカットを自動的に表示することができる。
Selfie Segmentation APIは、クローズドベータ版で利用できるML Kitのもう1つの新しいAPIである。シーンの背景を最も目立つコンテンツから簡単に分離することができる。これにより、開発者はぼかしなどの効果を背景に適用したり、逆に画像の背景を別の背景に置き換えたりすることができる。
Selfie Segmentation APIは、1人または複数のユーザの両方で機能し、最新のiOSおよびAndroidフォンのほとんどでリアルタイムで実行できる。