問題
你有一個毫升模型,文檔作為輸入,具體地說,一個字符串數組。
您使用一個特征提取器TfidfVectorizer將文檔轉換為一個字符串數組,數組攝取到模型中。
模型訓練,預測發生在筆記本,但是模型服務不返回JSON輸入的預期結果。
導致
TfidfVectorizer預計一個文件作為輸入數組。
磚將輸入轉換為熊貓DataFrames,TfidfVectorizer不正確的過程。
解決方案
您必須創建一個定製的變壓器,並將它添加到管道。
例如,下麵的示例代碼檢查DataFrames的輸入。如果找到一個DataFrame,第一列是轉換為一個數組的文件。然後傳遞給文檔的數組TfidfVectorizer在攝取到模型中。
% python類DataFrameToDocs (): def變換(自我,input_df):導入熊貓pd如果isinstance (input_df pd.DataFrame):返回input_df [0]。價值觀:返回input_df def適合(自我,X, y = None, * * fit_params):返回自我步驟= [(dftodocs, DataFrameToDocs ()), (tfidf, TfidfVectorizer ()), (nb_clf, MultinomialNB()))管道=管道(步驟)