2017-07-06 1 views
0

Ich versuche TFIDF zu verwenden, um Funktionen aus Titeln von Textartikeln zu erhalten. Ich mache folgendes:SciKit-Learn: Probleme mit TfidfVectorizer

from sklearn.feature_extraction.text import TfidfVectorizer 
corpus_title = result_df['_title'].tolist() 
tfidf_transformer_title = TfidfVectorizer(min_df = 1, ngram_range = (1,1), use_idf = True, stop_words='english') 
tfidf_df_title = tfidf_transformer_title.fit_transform(corpus_title) 
tfidf_df_title 

Allerdings bekomme ich einen Fehler in dieser Zeile:

----> 4 tfidf_df_title = tfidf_transformer_title.fit_transform(corpus_title) 

Der Fehler ist:

205 
    206   if self.lowercase: 
--> 207    return lambda x: strip_accents(x.lower()) 
    208   else: 
    209    return strip_accents 

AttributeError: 'NoneType' object has no attribute 'lower' 

Ich bin nicht sicher, wie es möglich ist um diesen Fehler zu bekommen. Ich habe die Dokumente überprüft und es sieht so aus, als ob TfidfVectorizer UTF-8 als Standardkodierung verwendet.

Irgendeine Idee, wie man repariert?

Danke!

+0

Ihr Korpus scheint einige problematische Einträge zu haben. –

+0

@ cᴏʟᴅsᴘᴇᴇᴅ gibt es eine Möglichkeit, diese Einträge zu überspringen? – bclayman

+0

Nicht vertraut mit Pandas, aber Sie könnten wahrscheinlich genau betrachten, welche Daten das Problem verursachen, und dann boolesche Indizierung verwenden, um es herauszufiltern. –

Antwort

1

versuchen Sie dies:

tfidf_transformer_title = TfidfVectorizer(min_df = 1,lowercase = False, ngram_range = (1,1), use_idf = True, stop_words='english') 
Verwandte Themen