Grâce à Elastic Search en tant que moteur de recherche, il est devenu relativement facile d'extraire des informations professionnelles à partir de mots de recherche.
Elastic Search facilite la recommandation de mots-clés en fonction du genre de travail que vous lisez et les informations d'étiquettes.
Cependant, dans mon cas, c'est un site de manga, donc il y a aussi des éléments tels que les goûts et les goûts des images, donc quand j'avais de l'argent, le contenu était secondaire, et j'achetais généralement des vestes.
Il s'agit donc d'une tentative de compléter d'une manière ou d'une autre ces pièces étrangement savoureuses.
Pour l'essayer, je comprends que vous pouvez prendre des mangas en tant qu'informations d'image et les classer d'une manière ou d'une autre (clustering). Alors que dois-je faire?
** Je ne sais pas si cela correspond ou non, donc si je n'ai pas de tsukkomi autour, **
Pour le moment, je m'intéressais à étudier l'histoire de l'intelligence artificielle et je me suis un peu rongé, donc si vous en tenez compte, ** Ne serait-il pas possible d'exprimer l'image avec ce qu'on appelle une quantité de caractéristiques et de la regrouper en l'utilisant? ** ** Je pense que je partirai de la reconnaissance.
Lorsque j'ai posé la question à Google Sensei, il utilise souvent une fonctionnalité locale appelée ** SURF ** dans la reconnaissance des formes d'image. Il s'agit de générer une quantité de caractéristiques en prenant un point invariant même si la luminosité de l'image est modifiée, agrandie / réduite ou pivotée. ** Quantité d'objets locaux ** car plusieurs d'entre elles peuvent être prises Il semble qu'une image n'en soit pas une.
Utilisons d'abord ceci, et lors du regroupement de ses fonctionnalités, mettons rapidement dans une classification par k-means qui semble être souvent utilisée à nouveau.
Pour être honnête, il y a beaucoup de mots qui n'ont pas de sens, mais je pense que vous pouvez trouver comment faire cela si nécessaire.
Masu est l'environnement OS:Mac Langue: Python2.7 Environnement de développement: PyCharm Community Editioin 2017.1 Bibliothèque d'apprentissage automatique: scikit-learn Bibliothèque de traitement d'image: mahotas Bibliothèque de calculs numériques: NumPy
La raison de cet environnement est que c'était simplement le mécanisme que j'ai appris dans le programme en ligne. Peut-être que nous le changerons au besoin à l'avenir.
Quand j'utilisais un Mac, Python 2.7 était fait par défaut, donc c'est la même chose.
Code
Phase d'apprentissage
# coding:utf-8
import numpy as np
from sklearn import cluster
from sklearn.externals import joblib
import mahotas as mh
from mahotas import surf
from datetime import datetime
import cStringIO
import urllib
datetime_format = "%Y/%m/%d %H:%M:%S"
#Paramètres
feature_category_num = 512
#Apportez l'URL de l'image à partir du fichier texte.
list = []
list_file = open("list.txt")
for l in list_file:
list.append(l.rstrip())
list_file.close()
#Traitement d'image
base = []
j=0
for url in list:
file = cStringIO.StringIO(urllib.urlopen(url).read())
im = mh.imread(file, as_grey=True)
im = im.astype(np.uint8)
base.append(surf.surf(im))
concatenated = np.concatenate(base)
del base
#Calcul de la quantité de fonction de base
km = cluster.KMeans(feature_category_num)
km.fit(concatenated)
#Stockage des fonctionnalités de base
joblib.dump(km, "km-cluster-surf-.pk1")
Phase de classification
# coding:utf-8
import numpy as np
from sklearn import cluster
from sklearn.externals import joblib
import mahotas as mh
from mahotas import surf
import cStringIO
import urllib
#Paramètres
feature_category_num = 512
picture_category_num = 25
#Chargement du modèle formé
km = joblib.load("km-cluster-surf.pk1")
#Apportez l'URL de l'image à partir du fichier texte.
list = []
list_file = open("list2.txt")
for l in list_file:
list.append(l.rstrip())
list_file.close()
#Traitement d'image
base = []
for url in list:
title = file[1]
file = cStringIO.StringIO(urllib.urlopen(url).read())
im = mh.imread(file, as_grey=True)
im = im.astype(np.uint8)
base.append(surf.surf(im))
concatenated = np.concatenate(base)
features = []
#Commencez à classer les images à partir des fonctionnalités de base
for d in base:
c = km.predict(d)
features.append(np.array([np.sum(c==ci) for ci in range(feature_category_num)]))
features=np.array(features)
km = cluster.KMeans(n_clusters=picture_category_num,verbose=1)
km.fit(features)
#Crachez le résultat
list = np.array(list)
for i in range(picture_category_num):
print('Image category{0}'.format(i))
challenge = list[km.labels_ == i]
for c in list:
print(c)
A partir de la conclusion, le classement était terminé.
Mais je n'ai pas pu le trouver.
Il y a probablement plusieurs raisons, mais j'aimerais y réfléchir la prochaine fois.