質問

画像に関するメタデータを保持するデータベーステーブルがあります。問題のフィールドはキャプションフィールドです。ユーザーがテキストボックスにキーワードを入力し、キャプションに基づいてキーワードに一致する画像の選択をアプリに返すようにしたい。

ユーザーが入力した個々のキーワードの配列を返すコードが既にありますが、比較を行う最良の方法は何ですか。だから私は...の線に沿って考えています...

foreach (Image image in Images)
{
    foreach (string keyword in keywords)
    {
        if (image.Caption.Contains(keyword))
        {
            imageCollection.Add(image);
            break;
        }
    }
}

しかし、これは単語全体の一致のみをサポートしないため、少し単純すぎるように見えます。特殊文字、句読点などは言うまでもありません

ここでは正規表現を使用する必要があると感じていますが、正規表現の専門家ではありません。または、キャプションを個々の単語に分割し、単語の比較を1つずつ処理する必要があります。いくつかの提案を本当に探しています!

C#で書いていますが、言語に依存しない可能性があります

編集:一致したキーワードの数に基づいて結果を重み付けすることにも非常に興味があります。しかし、ここでGoogle画像を再作成しようとはしていません!

役に立ちましたか?

解決

おそらくこれを行う最良の方法は、データベースのキャプションフィールドにフルテキストインデックスを使用することです。データベースに作業を任せてください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top