使用文檔作為輸入時不正確的結果

你的模型不返回文檔輸入使用TfidfVectorizer時預期的結果。JSON數組

寫的pradeepkumar.palaniswamy

去年發表在:2022年5月16日

問題

你有一個毫升模型,文檔作為輸入,具體地說,一個字符串數組。

您使用一個特征提取器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()))管道=管道(步驟)
刪除

信息

當輸入為JSON“你好”,“世界”)(“你好”,["世界"]]返回相同的輸出。