Question

J'ai un grand (~ dossiers de 2.5M) base de données de métadonnées d'image. Chaque enregistrement représente une image et a un identifiant unique, un champ de description, une liste de mots-clés séparés par des virgules (disons 20-30 mots-clés par image), et d'autres domaines. Il n'y a pas de schéma véritable base de données, et je n'ai aucun moyen de savoir quels mots clés existe dans la base de données sans itérer sur chaque image et les compter. En outre, les métadonnées proviennent de plusieurs fournisseurs différents, qui ont chacun leurs propres idées sur la façon de remplir les différents champs.

Il y a des choses que je voudrais faire avec ces métadonnées, mais depuis que je suis tout à fait nouveau à ce genre d'algorithmes je ne sais même pas où commencer à chercher.

  1. Certaines de ces images ont certaines restrictions d'utilisation sur les données (dans le texte), mais chaque phrase des fournisseurs les différemment, et il n'y a aucun moyen de garantir la cohérence. Je voudrais avoir un test simple que je pourrais appliquer à une image qui donne une indication si cette image est exempte de restrictions ou non. Il ne doit pas être parfait, « assez bonne ». Je pense que je pourrais utiliser un filtre bayésien type pour cela, non? Je pouvais former le filtre avec un corpus d'images que je connais sont soit restreint ou sans restriction, puis le filtre serait en mesure de faire des prévisions pour le reste des images? Ou y at-il de meilleures façons?
  2. Je voudrais aussi être en mesure d'indexer ces images selon « image mot-clé », de sorte que si j'ai une image, je pourrais rapidement dire que d'autres images, il partage les mots-clés avec la plupart. Idéalement, l'algorithme serait également prendre en compte que certains mots clés sont plus importants que d'autres et de les peser différemment. Je ne sais même pas où commencer à regarder ici, et je serais très heureux pour tous les pointeurs:)

Je travaille principalement en Java, mais le choix de la langue est hors de propos ici. Je suis plus intéressé à apprendre quelles approches serait le mieux pour moi de commencer à lire sur. Merci à l'avance:)

Était-ce utile?

La solution

(1) On dirait un problème de classification avec des mots dans votre texte comme caractéristiques, et « restreint » et « pas de restriction » que vos étiquettes. Le filtrage bayésien ou tout algorithme de classification devrait faire l'affaire.

(2) On dirait un problème de classification. D'abord, vous voulez venir avec une bonne fonction de similarité qui renvoie un score de similarité pour deux images bases sur leurs mots-clés. similarité cosinus pourrait être un bon point de départ, puisque vous comparez des mots-clés. De là, vous pouvez calculer une matrice de similarité et rappelez-vous une liste des «plus proches voisins pour chaque image dans votre ensemble de données, ou vous pouvez aller plus loin et utiliser un algorithme de clustering pour trouver des grappes réelles d'images.

Puisque vous avez tant de dossiers, vous pouvez sauter calculer la totalité de la matrice de similarité, et juste calculer les grappes pour un petit échantillon aléatoire de votre ensemble de données. Vous pouvez ensuite ajouter les autres points de données aux groupes appropriés. Si vous souhaitez conserver des informations plus de similitude que vous pouvez regarder en cluster douce.

Il faut espérer que vous allez commencer.

Autres conseils

certainement vous avez à commencer par transformer votre «liste de mots-clés de champ en un véritable système de marquage. le plus facile est une table de balises, et un « Many-to-Many » avec la table d'image (qui est, une troisième table où chaque enregistrement a une clé étrangère à une image et une autre clé étrangère à un mot-clé). il est très vite pour trouver toutes les images avec un certain ensemble de mots-clés.

le filtre bayésien pour détecter le phrasé de restriction, est intéressant. Je dirais que pour aller, sauf si vous êtes pressé par le temps. si tel est le cas, quelques simples correspondance de motif devrait prendre plus de 90-95% des cas, et le reste pourrait être rapidement terminé à la main par deux opérateurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top