SimpleSimilarityは、セマンティックテキスト検索のための使いやすいフレームワークです。
iOS 18でこのライブラリを使用しないことをお勧めします。その機能は、コアスポットライトのシステムサービスとして利用できるようになりました。 AppleのWWDC 2024セッションビデオ「Core Spotlightでセマンティック検索をサポート」を確認してください。
まず、テキストコーパスを作成する必要があります。コーパスが満たされたら、それに対してクエリを実行できます。これらの方法は、MatchingEngineクラスの一部です。
テキストコーパスは、(多数の)TextualData構造体で構成されています。 TextualData structは、テキストといくつかのメタデータです。 TextualDataインスタンスを作成し、それらをマッチングエンジンに渡します。
let textualData = allFeedItems.map { (feedItem) -> TextualData in
return TextualData(inputString: feedItem.title, origin: nil, originObject: feedItem)
}
matchingEngine.fillMatchingEngine(with: textualData, onlyRemoveFrequentStopwords: true, completion: completion)
テキストの作成前に述べたように、コーパスはバックグラウンドスレッドで発生するため、コーパスの作成が完了したときに完了ブロックを渡す必要があります。
コーパスが作成された後、クエリすることができます。単純な類似性は、テキストコーパスの短いクエリや短いエントリに対して必ずしも最適化されているわけではありません。クエリには少なくとも2つの単語が含まれている必要があります。テキストコーパスのエントリは文章でなければなりません。
テキスト検索には、複数のオプションがあります。
try? matchingEngine.result(betterThan: 0.005, for: query, resultsFound: resultsFound)
結果が再び、発見された結果に渡される完了ブロックです。
あなたが見ることができるように、APIは本当にシンプルで使いやすいです。
15000のエントリを備えたテキストコーパスを作成するには、iPhone 6sで約20秒かかります。
あなたの貢献は大歓迎です。