Angenommen, ich habe ein Array von Strings:Scikit-lernen: Wie Features aus dem Text extrahieren?
['Laptop Apple Macbook Air A1465, Core i7, 8Gb, 256Gb SSD, 15"Retina, MacOS' ... 'another device description']
Ich möchte aus dieser Beschreibung Merkmale extrahieren, wie:
item=Laptop
brand=Apple
model=Macbook Air A1465
cpu=Core i7
...
Soll ich die vordefinierten bekannten Merkmale zuerst vorbereiten? Wie
brands = ['apple', 'dell', 'hp', 'asus', 'acer', 'lenovo']
cpu = ['core i3', 'core i5', 'core i7', 'intel pdc', 'core m', 'intel pentium', 'intel core duo']
Ich bin nicht sicher, dass ich CountVectorizer
und TfidfVectorizer
hier verwenden muß, es besser geeignet ist DictVictorizer
zu haben, aber wie kann ich dicts mit Tasten Werte aus dem gesamten String zu extrahieren?
ist es mit scikit-learns Feature Extraction möglich? Oder sollte ich meine eigenen .fit()
, und .transform()
Methoden machen?
UPDATE: @sergzach, lesen Sie bitte, wenn ich Sie richtig verstanden:
data = ['Laptop Apple Macbook..', 'Laptop Dell Latitude...'...]
for d in data:
for brand in brands:
if brand in d:
# ok brand is found
for model in models:
if model in d:
# ok model is found
So für jede Funktion N-Schleifen zu schaffen? Dies könnte funktionieren, aber nicht sicher, ob es richtig und flexibel ist.
Sie können manuell eine Liste aller Marken erstellen, diese dann extrahieren (wahrscheinlich mit str.lower() und unnötige Zeichen entfernen) und dann prüfen, ob sie am häufigsten erkannt werden. Sehen Sie sich dann Funktionen an, die nicht erkannt wurden und entscheiden Sie, was Sie damit machen sollen. Konvertiere sie dann mit DV.fit_transform in numerische Features, skaliere sie und verwende sie als Zahlen. – sergzach
@sergzach Danke, ich habe meine Frage aktualisiert, könnten Sie bitte überprüfen? – Novitoll
Ich denke du könntest 'CountVectorizer()' von sklearn wie hier erwähnt verwenden: http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html#tokenizing-text-with_script-learn. Aber in jedem Fall sollten Sie Daten für 'fit_transform()' vorbereiten. – sergzach