2016-09-13 72 views
0

我嘗試運行是這樣的:python scikit-learn TfidfVectorizer:爲什麼ValueError輸入時是2個單字符字符串?

from sklearn.feature_extraction.text import TfidfVectorizer 

test_text = ["q", "r"] 

vect = TfidfVectorizer(min_df=1, 
         stop_words=None, 
         lowercase=False) 
tfidf = vect.fit_transform(test_text) 

print vect.get_feature_names() 

卻得到一個ValueError:

ValueError: empty vocabulary; perhaps the documents only contain stop words

是否指導什麼限制或約束的輸入都存在嗎?我無法在TfidfVectorizer doc page上找到任何東西。我試圖跟蹤它,並得到_count_vocab函數,但我無法閱讀它。另外,當我將字符串更改爲2或更長時,代碼運行良好。

回答

0

該錯誤是由於min_df參數。當你設置min_df = 0的值時,它會正常工作,因爲它不會受到當前設置爲1的「最小閾值」限制,並且你的每個單詞也只出現一次。

+0

'min_df = 0'不起作用。返回相同的錯誤。它對你有用嗎?請發佈您的代碼工作。 – ximiki

+0

是的,它爲我工作。代碼相同,我只是將min_df的值更改爲0.您應該更新庫。 – Nain

相關問題