Aktualisieren der Funktionsnamen in scikit TFIdfVectorizer

Ich probiere diesen Code aus

from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np

train_data = ["football is the sport","gravity is the movie", "education is imporatant"]
vectorizer = TfidfVectorizer(sublinear_tf=True, max_df=0.5,
                                                 stop_words='english')

print "Applying first train data"
X_train = vectorizer.fit_transform(train_data)
print vectorizer.get_feature_names()

print "\n\nApplying second train data"
train_data = ["cricket", "Transformers is a film","AIMS is a college"]
X_train = vectorizer.transform(train_data)
print vectorizer.get_feature_names()

print "\n\nApplying fit transform onto second train data"
X_train = vectorizer.fit_transform(train_data)
print vectorizer.get_feature_names()

Die Ausgabe für dieses ist

Applying first train data
[u'education', u'football', u'gravity', u'imporatant', u'movie', u'sport']


Applying second train data
[u'education', u'football', u'gravity', u'imporatant', u'movie', u'sport']


 Applying fit transform onto second train data
[u'aims', u'college', u'cricket', u'film', u'transformers']

Ich habe den ersten Datensatz mit fit_transform an vectorizer übergeben, so dass ich Feature-Namen wie erhalten habe[u'education', u'football', u'gravity', u'imporatant', u'movie', u'sport'] danach habe ich ein anderes zugset auf den gleichen vektorisierer angewendet, aber es hat mir die gleichen merkmalsnamen gegeben, als ich nicht fit oder fit_transform verwendet habe. Aber ich möchte wissen, wie man die Funktionen eines Vektorisierers aktualisiert, ohne die vorherigen Oncs zu überschreiben. Wenn ich fit_transform erneut verwende, werden die vorherigen Funktionen überschrieben. Daher möchte ich die Featureliste des Vektorisierers aktualisieren. Also ich will so etwas wie[u'education', u'football', u'gravity', u'imporatant', u'movie', u'sport',u'aims', u'college', u'cricket', u'film', u'transformers'] Wie kann ich das bekommen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage