load_files#

sklearn.datasets.load_files(container_path, *, description=None, categories=None, load_content=True, shuffle=True, encoding=None, decode_error='strict', random_state=0, allowed_extensions=None)[source]#

載入以子資料夾名稱作為類別的文字檔案。

假設個別樣本是以如下的兩層資料夾結構儲存的檔案

container_folder/
    category_1_folder/
        file_1.txt
        file_2.txt
        ...
        file_42.txt
    category_2_folder/
        file_43.txt
        file_44.txt
        ...

資料夾名稱會被用作監督式訊號標籤名稱。個別的檔案名稱並不重要。

此函數不會嘗試將特徵提取到 numpy 陣列或 scipy 稀疏矩陣中。此外,如果 load_content 為 false,則不會嘗試將檔案載入記憶體。

若要在 scikit-learn 分類或分群演算法中使用文字檔案,您需要使用 text 模組來建立適合您問題的特徵提取轉換器。

如果設定 load_content=True,您也應該使用 ‘encoding’ 參數指定文字的編碼。對於許多現代文字檔案,‘utf-8’ 會是正確的編碼。如果將 encoding 設定為 None,則內容會由位元組組成而不是 Unicode,並且您將無法使用 text 中的大多數函數。

應該為其他類型的非結構化資料輸入(如圖像、音訊、影片等)建立類似的特徵提取器。

如果您想要具有特定檔案副檔名(例如 .txt)的檔案,則可以將這些檔案副檔名的列表傳遞給 allowed_extensions

使用者指南 中閱讀更多內容。

參數:
container_pathstr

主資料夾的路徑,該資料夾包含每個類別一個子資料夾。

descriptionstr,預設值=None

描述資料集特性的段落:其來源、參考等。

categoriesstr 列表,預設值=None

如果為 None (預設),則載入所有類別。如果不是 None,則載入類別名稱列表 (忽略其他類別)。

load_contentbool,預設值=True

是否載入不同檔案的內容。如果為 true,則傳回的資料結構中會存在一個包含文字資訊的 'data' 屬性。如果不是,則 filenames 屬性會提供檔案的路徑。

shufflebool,預設值=True

是否要洗牌資料:對於假設樣本是獨立且相同分佈 (i.i.d.) 的模型(例如隨機梯度下降)可能很重要。

encodingstr,預設值=None

如果為 None,則不嘗試解碼檔案的內容 (例如,對於圖像或其他非文字內容)。如果不是 None,則當 load_content 為 True 時,用來將文字檔案解碼為 Unicode 的編碼。

decode_error{‘strict’, ‘ignore’, ‘replace’},預設值='strict'

如果給定要分析的位元組序列包含非給定 encoding 的字元,則指示要執行的操作。作為關鍵字參數 'errors' 傳遞給 bytes.decode。

random_stateint、RandomState 實例或 None,預設值=0

決定資料集洗牌的隨機數產生。傳遞一個 int 以在多次函數呼叫中產生可重現的輸出。請參閱 詞彙表

allowed_extensionsstr 列表,預設值=None

要篩選要載入的檔案的所需檔案副檔名列表。

傳回值:
dataBunch

類似字典的物件,具有以下屬性。

datastr 列表

僅當 load_content=True 時存在。要學習的原始文字資料。

targetndarray

目標標籤(整數索引)。

target_nameslist

目標類別的名稱。

DESCRstr

資料集的完整描述。

filenames: ndarray

包含資料集的檔案名稱。

範例

>>> from sklearn.datasets import load_files
>>> container_path = "./"
>>> load_files(container_path)