Dank Elastic Search als Suchmaschine ist es relativ einfach geworden, Arbeitsinformationen aus Suchwörtern zu extrahieren.
Mit Elastic Search können Sie auf einfache Weise Schlüsselwörter empfehlen, die auf dem Genre der gelesenen Arbeit basieren, und Informationen markieren.
In meinem Fall handelt es sich jedoch um eine Manga-Site, sodass es auch Elemente wie den Geschmack und den Geschmack von Bildern gibt. Wenn ich also Geld hatte, war der Inhalt zweitrangig und ich kaufte normalerweise Jacken.
Es ist also ein Versuch, solche seltsam geschmackvollen Teile auf irgendeine Weise zu ergänzen.
Um es zu versuchen, verstehe ich, dass Sie Manga als Bildinformation aufnehmen und auf irgendeine Weise klassifizieren können (Clustering). Was soll ich dann tun?
** Ich weiß nicht, ob es überhaupt passt, also wenn ich keine Tsukkomi in der Nähe habe, **
Vorläufig war ich daran interessiert, die Geschichte der künstlichen Intelligenz zu studieren, und nagte ein wenig. Wenn Sie das berücksichtigen, ** Wäre es nicht möglich, das Bild mit einer so genannten Feature-Menge auszudrücken und damit zu gruppieren? ** ** ** Ich denke, ich werde von der Anerkennung ausgehen.
Wenn ich Google Sensei fragte, verwendete er häufig eine lokale Funktion namens ** SURF ** bei der Bildmustererkennung. Dies dient zum Erzeugen eines Merkmalsbetrags durch Aufnehmen eines invarianten Punkts, selbst wenn die Helligkeit des Bildes geändert, vergrößert / verkleinert oder gedreht wird. ** Lokale ** Feature-Menge aus mehreren davon. Es scheint, dass ein Bild keines ist.
Lassen Sie uns dies zuerst verwenden und beim Clustering seiner Funktionen schnell eine Klassifizierung mit k-Mitteln vornehmen, die anscheinend häufig wieder verwendet wird.
Um ehrlich zu sein, gibt es viele Wörter, die keinen Sinn ergeben, aber ich denke, Sie können herausfinden, wie Sie dies nach Bedarf tun können.
Masu ist die Umwelt OS:Mac Sprache: Python2.7 Entwicklungsumgebung: PyCharm Community Editioin 2017.1 Bibliothek für maschinelles Lernen: Scikit-Learn Bildverarbeitungsbibliothek: Mahotas Numerische Berechnungsbibliothek: NumPy
Der Grund für diese Umgebung ist, dass es einfach der Mechanismus war, den ich im Online-Lehrplan gelernt habe. Vielleicht werden wir es in Zukunft nach Bedarf ändern.
Wenn ich einen Mac verwendete, wurde Python 2.7 standardmäßig ausgeführt, das ist also dasselbe.
Code
Lernphase
# 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"
#Parameter
feature_category_num = 512
#Bringen Sie die Bild-URL aus der Textdatei.
list = []
list_file = open("list.txt")
for l in list_file:
list.append(l.rstrip())
list_file.close()
#Bildverarbeitung
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
#Berechnung der Basismerkmalsmenge
km = cluster.KMeans(feature_category_num)
km.fit(concatenated)
#Speicherung von Basisfunktionen
joblib.dump(km, "km-cluster-surf-.pk1")
Klassifizierungsphase
# 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
#Parameter
feature_category_num = 512
picture_category_num = 25
#Geschulte Modellbeladung
km = joblib.load("km-cluster-surf.pk1")
#Bringen Sie die Bild-URL aus der Textdatei.
list = []
list_file = open("list2.txt")
for l in list_file:
list.append(l.rstrip())
list_file.close()
#Bildverarbeitung
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 = []
#Beginnen Sie mit der Klassifizierung von Bildern anhand der Grundfunktionen
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)
#Spucke das Ergebnis aus
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)
Ausgehend von der Schlussfolgerung wurde die Klassifizierung abgeschlossen.
Aber ich konnte es nicht finden.
Es gibt wahrscheinlich verschiedene Gründe, aber ich würde gerne das nächste Mal darüber nachdenken.
Recommended Posts