從文字元件參考擷取 N-Gram 功能
本文說明 Azure 機器學習 設計工具中的元件。 使用從文字元件擷取 N-Gram 特徵,將 非結構化文字數據特徵化 。
從文字元件擷取 N-Gram 功能的設定
此元件支援使用 n-gram 字典的下列案例:
使用現有的一組文字功能 ,將自由文字數據行特徵化。
建立新的 n-gram 字典
將 [從文字] 元件擷取 N-Gram 功能新增至管線,並連接具有您要處理的文字的數據集。
使用 [文字] 資料 行來選擇包含您要擷取之文字的字串類型數據行。 因為結果很詳細,因此您一次只能處理單一數據行。
將 [詞彙模式] 設定為 [建立],表示您要建立新的 n-gram 功能清單。
設定 N-Gram 大小 ,表示 要擷取和儲存的 n-gram 大小上限 。
例如,如果您輸入 3,則會建立 unigram、bigrams 和 trigram。
加權函 式會指定如何建置文件特徵向量,以及如何從檔擷取詞彙。
二進位權數:將二進位存在值指派給擷取的 n-gram。 當每個 n-gram 存在於檔中時,每個 n-gram 的值都是 1,否則為 0。
TF Weight:將詞彙頻率 (TF) 分數指派給擷取的 n-gram。 每個 n-gram 的值都是檔中的發生頻率。
IDF 加權:將反向文件頻率 (IDF) 分數指派給擷取的 n-gram。 每個 n-gram 的值都是主體大小的記錄,除以整個主體中的發生頻率。
IDF = log of corpus_size / document_frequency
TF-IDF 權數:將詞彙 frequency/inverse 文件頻率 (TF/IDF) 分數指派給擷取的 n-gram。 每個 n-gram 的值都是其 TF 分數乘以其 IDF 分數。
將 [最小字長度] 設定為可在 n-gram 中任何單一單字中使用的最小字母數目。
使用 [最大字長度 ] 可設定 n-gram 中任何 單一單字 中可以使用的字母數目上限。
根據預設,每個單字或令牌最多允許 25 個字元。
使用 最小 n-gram 檔絕對頻率 來設定 n-gram 字典中包含任何 n-gram 所需的最小出現次數。
例如,如果您使用預設值 5,則任何 n-gram 必須至少出現在主體中五次,才能包含在 n-gram 字典中。
將 [n-gram 檔比率上限] 設定為包含特定 n-gram 的數據列數目與整體主體中的數據列數目的最大比率。
例如,1 的比例會指出,即使每個數據列中都有特定的 n-gram,也可以將 n-gram 新增至 n-gram 字典。 更通常,每一個數據列中發生的單字會被視為非搜尋字,並會移除。 若要篩選掉網域相依的非搜尋字組,請嘗試降低此比例。
重要
特定單字出現率不一致。 它因文件而異。 例如,如果您正在分析客戶對特定產品的評論,產品名稱可能會非常頻繁且接近雜訊字組,但在其他內容中是相當重要的字詞。
選取 [將 n-gram 特徵向量正規化] 選項 ,將特徵向量 正規化。 如果啟用此選項,則每個 n-gram 特徵向量會除以其 L2 常態。
提交管線。
使用現有的 n-gram 字典
將 [從文字] 元件擷取 N-Gram 功能新增至管線,並將具有您要處理之文字的 數據集連接到數據集 埠。
使用 [文字] 資料 行來選取包含要特徵化之文字的文字數據行。 根據預設,元件會選取字串類型的所有數據行。 為了獲得最佳結果,請一次處理單一數據行。
新增包含先前產生的 n-gram 字典的已儲存數據集,並將其聯機至 輸入詞彙 埠。 您也可以從文字元件連接 擷取 N-Gram 特徵上游實例的結果詞彙 輸出。
針對 [詞彙模式],從下拉式清單中選取 [ ReadOnly 更新] 選項。
ReadOnly 選項代表輸入詞彙的輸入主體。 從新的文字數據集(左輸入)計算詞彙頻率,輸入詞彙中的 n-gram 權數會如預期般套用。
提示
當您評分文字分類器時,請使用此選項。
如需所有其他選項,請參閱上一節中的屬性描述。
提交管線。
建置使用 n-gram 部署即時端點的推斷管線
定型管線, 其中包含從文字 擷取 N-Gram 特徵和 評分模型 ,以在測試數據集上進行預測,建置在下列結構中:
圓圈擷取 N-Gram 特徵 From Text 元件的詞彙模式為 Create,而連接到評分模型元件的元件詞彙模式為 ReadOnly。
成功提交上述定型管線之後,您可以將圓形元件的輸出註冊為數據集。
然後,您可以建立即時推斷管線。 建立推斷管線之後,您必須手動調整推斷管線,如下所示:
然後提交推斷管線,並部署即時端點。
結果
從文字元件擷取 N-Gram 特徵會建立兩種類型的輸出:
結果數據集:此輸出是已分析文字的摘要,結合擷取的 n-gram。 您未在 [文字資料行] 選項中選取的資料行會傳遞至輸出。 針對您分析的每個文字資料列,元件會產生這些資料列:
- n-gram 出現的矩陣:元件會針對總主體中找到的每個 n-gram 產生一個數據行,並在每個數據行中新增分數,以指出該數據列 n-gram 的加權。
結果詞彙:詞彙包含實際的 n-gram 字典,以及作為分析一部分所產生的詞彙頻率分數。 您可以儲存資料集,以使用不同的輸入集重複使用,或稍後的更新。 您也可以重複使用詞彙來建立模型化和評分。
結果詞彙
詞彙包含 n-gram 字典,其中包含作為分析一部分所產生的詞彙頻率分數。 不論其他選項為何,都會產生 DF 和 IDF 分數。
- 標識碼:針對每個唯一 n-gram 產生的標識碼。
- NGram:n-gram。 空格或其他字分隔符會取代為底線字元。
- DF:原始主體中 n-gram 的字詞頻率分數。
- IDF:原始主體中 n-gram 的反向文件頻率分數。
您可以手動更新此數據集,但可能會造成錯誤。 例如:
- 如果元件在輸入詞彙中尋找具有相同索引鍵的重複數據列,就會引發錯誤。 請確定詞彙中沒有任何兩個數據列具有相同的單字。
- 詞彙數據集的輸入架構必須完全相符,包括數據行名稱和數據行類型。
- ID 資料行和 DF 資料行必須是整數類型。
- IDF 資料行必須是浮點數類型。
注意
請勿將數據輸出直接連接到定型模型元件。 您應該先移除任意文字數據行,再將其送入定型模型。 否則,自由文字數據行會被視為類別特徵。