從文字擷取 N-Gram 特徵

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

建立 N 語法的字典功能,並對其進行特徵選取

Category:文字分析

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

模組概觀

本文說明如何使用機器學習 Studio (傳統) 的文字模塊中的 [解壓縮 N-語法] 功能、將文字的特徵化,並只從長文字字串中解壓縮最重要的資訊片段。

此模組的運作方式是從您指定為輸入的任意文字資料行建立 n 字母的字典。 此模組會將各種資訊度量套用至 n 個元組,以減少資料維度,並識別具有最多資訊值的 n 字母。

如果您已經建立了 n 字母字母的詞彙,則可以使用您選擇的加權演算法來更新其統計資料,或合併新的詞彙。

因為此模組支援 n 字母的特徵化,所以它也可以在評分時使用。

如何設定從文字解壓縮 N 語法功能

這些模組支援下列建立、更新或套用 n 語法字典的案例:

  • 您正在使用免費文字資料行的資料行來開發新的模型,而且只想要根據輸入資料來解壓縮文字功能。 請參閱指示。

  • 您有一組現有的文字功能,並且想要藉由處理新的文字輸入來更新權數。 請參閱指示。

  • 您會從預測性模型產生分數,而且需要在評分程式中產生並使用包含 n 個語法之字典的文字輸入。 請參閱指示。

您可以使用 範例實驗 進行參考。

從文字資料行建立新的 n 語法字典

  1. 將 [從文字] 模組中的 [ 解壓縮 N-語法] 功能 新增至您的實驗,並連接具有您想要處理之文字的資料集。

  2. 針對 [ 文字資料行],選擇包含您想要解壓縮之文字的 字串 類型資料行。

    依預設,此模組會選取所有字串資料行。 不過,由於結果較詳細,因此您可能需要一次處理一個資料行。

  3. 若為 詞彙模式,請選取 [ 建立 ] 以表示您正在建立一個新的 n 語法功能清單。

    如需有關如何更新一組現有的 n 語法功能的詳細資訊,請參閱 這一節

  4. 針對 [n 字母元 大小],輸入一個數位來指出要解壓縮和儲存的 n 字母大小 上限

    例如,如果您輸入 3 ,則會建立 unigrams、雙字母組和 trigrams。

  5. 在 [ K-跳過大小] 中,輸入在識別 n 字母的變體時,可以不同的最大字元數。 如果 k 的值設定為0,則只能從唯一、連續的字元序列建立 n 字母字元。

    例如,假設您的字典包含一元語法「電腦」。 K值為0表示「電腦」是唯一有效的一元語法。 如果您將 k 的值增加到1,可以略過一個中間字元,讓您找出更相似的序列。 K值為1的略過元,會因為 0-k一元語法中的一個字元而不同。 因此,略過的 "conputer" 和 "compuuter" 將會被視為與「電腦」相同字典專案的一部分。 將 k 值設定為2會比對更多不同的字組。

    如需有關如何在文字分析中使用略過規範的詳細資訊,請參閱這份檔:受 監督之詞彙正規化的候選世代和功能工程

  6. 只有當您合併或更新詞彙時,才需要選項 [ 加權函數]。 它會指定兩個詞彙中的詞彙及其分數應該如何針對彼此加權。

  7. 在 [ 最小文字長度] 中,輸入可分析之字串的最小文字長度。

    例如,假設最小文字長度設為 3 (預設值) ,而且您有一個具有單一單字的輸入,另一個則包含一些簡短的文字,例如「美觀的地方」。 這兩個數據列都會被忽略。

  8. 在 [ 最大文字長度] 中,輸入可在 n 字元中的任何 單一單字 中使用的最大字元數。

    根據預設,每個單字或標記最多可有25個字元。 超過此字的字元會被移除,假設它們可能是任一字元的順序,而不是實際的詞法專案。

  9. 針對 [ 最小的 n-------------------克檔的絕對頻率],輸入一個數位,指出要將任何單一單字或標記包含在

    例如,如果您使用預設值5,則在主體中必須至少出現五個語法或 skip 語法,才能包含在 n # 語法字典中。

  10. 針對 [ 最多 n--克檔比例],輸入代表此比率的數位:在整體主體中的資料列數目上,包含特定 n 語法的資料列數目。

    例如,比率1會指出,即使每個資料列中都有特定的 n 元,也可以將 n 中繼資料加入至 n 語法字典。 一般來說,每個資料列中發生的單字都會被視為非搜尋字,而且會被移除。 若要篩選出網域相依的非搜尋字,請嘗試減少這項比例。

    重要

    特定單字的出現率不一致,但會因檔而異。 例如,如果您要分析有關特定產品的客戶意見,則產品名稱可能會非常高,且接近非搜尋字,但在其他內容中是很重要的詞彙。

  11. 如果您想要針對包含不在 n 語法詞彙中之單字的任何資料列(稱為「詞彙不足」 (OOV) 單字)產生指標,請選取 [偵測 詞彙以外的資料列] 選項。

    所有的詞典都有限;因此,您的文字主體幾乎保證會包含不在詞典或 n 語法字典中的單字。 不過,這類單字在語言模型上可能會有不同的影響,包括相較于詞彙內 (IV) 單字的錯誤率較高。 根據您的網域而定,這些 OOV 單字可能代表重要的內容字組。

    藉由識別包含這些字的資料列,您可以彌補這些詞彙的效果,或個別處理詞彙和相關資料列。

  12. 選取 [ 標記開頭的選項] 選項,以加入特殊字元序列,指出 n 語法字典中的句子開頭。 以特殊字元開頭的 n 字母開頭,在文字分析中很常見,而且在分析語篇的界限時很有用。

    Azure ML Studio (傳統) 插入符號 ||| 。 您無法指定自訂字元。

  13. 如果您想要將特徵向量正規化,請選取 [正規化 n-語法] 功能向量 的選項。 當您這樣做時,每個 n 個元的特徵向量都會除以其 L2 的標準。

    預設會使用正規化。

  14. 如果您想要啟用其他選項來管理文字功能向量的大小,請將 [以 篩選器為基礎的特徵選取 ] 設定為 [ True ]。

    • 特徵選取有助於減少 n 字母的維度。
    • 當您未套用篩選選取專案時,會建立所有可能的 n 元,並增加涵蓋範圍,以使字典較長且可能包含許多不常使用的詞彙。
    • 在較小的主體中,使用特徵選取可以大幅減少所建立的詞彙數目。
    • 如需詳細資訊,請參閱以 篩選器為基礎的特徵選取

    如果您要使用特徵選取,則必須從 [ 功能評分方法 ] 下拉式清單中選取方法:

    • PearsonCorrelation:根據標籤資料行值和文字向量來計算皮耳森的相互關聯。
    • MutualInformation:根據標籤資料行值和文字向量來計算相互資訊分數。
    • KendallCorrelation:根據標籤資料行值和文字向量來計算肯德爾的相互關聯。
    • SpearmanCorrelation:根據標籤資料行值和文字向量來計算史皮爾曼關聯性。
    • ChiSquared:使用卡方方法來計算標籤資料行值與文字向量之間的相互關聯。
    • FisherScore:計算標籤資料行值和文字向量的費雪分數。
    • 計數為基礎的特徵選取:根據值的計數建立新功能。 此方法不需要標籤資料行。

    根據您選擇的方法,設定下列其中一個選項:

    • 所需的功能數目:如果您使用以計數為基礎的特徵選取以外的任何特徵選取方法,則為必要項。

      在特徵選取的過程中,所有 n 元都會得到一個特徵分數,而 n 字母會依分數排序。 您在這裡設定的值會決定要輸出的最高排名功能數目。 具有較低特徵分數的 N 字母會捨棄。

    • 非零的元素數目下限:如果您使用以計數為基礎的特徵選取,則為必要專案。

      輸入整數,代表可能功能表格計數所需的總實例數下限。

  15. 執行實驗。

    如需結果及其格式的說明,請參閱 這一節

更新現有的 n 語法字典或合併字典

  1. 從 Text 模組將「 解壓縮 N-語法」功能 新增至您的實驗,並將具有您想要處理之文字的資料集連接到 資料集 埠。

  2. 針對 [ 文字資料行],選擇包含您想要特徵化之文字的文字資料行。 依預設,此模組會選取字串類型的所有資料行。 為了獲得最佳結果,請一次處理一個資料行。

  3. 新增已儲存的資料集,其中包含先前產生的 n 語法字典,並將其連接至 輸入詞彙 埠。 您也可以從文字模塊連接「解壓縮 N-語法」功能之上游實例的結果詞彙輸出。

    若要合併或更新詞彙,輸入詞彙的架構必須完全符合預期的格式。 請勿移除中的任何資料行,或將任何資料行新增至輸入詞彙。

  4. 若為 詞彙模式,請從下拉式清單中選取下列其中一個更新選項:

    • ReadOnly:根據輸入詞彙表示輸入主體。 也就是說,您不需要從新的文字資料集計算詞彙頻率 (在左側輸入) 上,輸入詞彙中的 n 個中繼資料粗細會依原樣套用。

      提示

      評分文字分類器時,請使用此選項。

    • Update:從輸入主體建立新的 n 語法詞彙,然後將它與輸入詞彙合併。 換句話說,您可以從輸入詞彙將新專案新增至所建立的詞彙,也可以更新現有的專案。

      提示

      此選項適用于使用內送資料批次進行詞彙的累加式更新。

    • Merge:從輸入主體產生新的 n 語法詞彙。

      如果您要傳遞背景詞彙做為模組的輸入,而且想要減少停用字詞的權數,此選項會很有用。 換句話說,在背景詞彙中具有高檔頻率分數的每個專案,都會在建立的詞彙中指派較低的反向檔頻率分數。

      提示

      如果您不想要從輸入將新專案新增至所建立的詞彙,而且只想要調整現有專案的分數,請使用此選項。

  5. 如果您合併或更新詞彙,則需要 選擇加權函數的選項。 加權函數會指定兩個詞彙中的 DF 和 IDF 分數應如何針對彼此加權:

    • 二元權數:將二進位存在值指派給已解壓縮的 n 字母。 換句話說,每個 n 元的值在指定的檔中存在時為1,否則為0。
    • TF 權數:將詞彙頻率分數 (TF) 指派給已解壓縮的 n 字母。 每個 n 語法的值都是在給定檔中出現的頻率。
    • IDF 權數:將反向檔頻率分數指派給已解壓縮的 n 字母 (IDF) 。 每個 n 語法的值是主體大小的記錄,並在整個主體中除以出現的頻率。 那是: IDF = log of corpus_size / document_frequency
    • TF-IDF 權數:指派「詞彙頻率/反向檔頻率分數」 (TF/IDF) 至已解壓縮的 n 字母。 每個 n 語法的值是其 TF 分數乘以其 IDF 分數。
    • Graph 權數:根據 TextRank 圖排名,指派分數給已解壓縮的 n 字母。 TextRank 是以圖形為基礎的排名模型,用來處理文字。 以 Graph 為基礎的排名演算法,基本上是根據全域資訊來決定重要性的一種方式。 如需詳細資訊,請參閱 TextRank: Rada Mihalcea 和 Paul Tarau 將 訂單帶入文字中
  6. 如需其他選項,請參閱 上一節中的屬性描述。

  7. 執行實驗。

    如需結果及其格式的說明,請參閱 這一節

評分或發佈使用 n 字母的模型

  1. 從定型資料流程將「文字」模組中的「 解壓縮 N-語法」功能 複製到評分資料流程。

  2. 連線從定型資料流程到評分資料流程上輸入詞彙結果詞彙輸出。

  3. 在評分工作流程中,修改 從文字模塊中解壓縮 N 語法的功能 ,並進行這些變更,讓所有其他變更保持相同:

    • 詞彙模式 參數設定為 ReadOnly

    • 將 [ 使用以篩選器為基礎的特徵選取 ] 選項變更為 False

  4. 若要發佈實驗,請將 結果詞彙 儲存為資料集。

    然後,將已儲存的資料集連接到評分圖形中的文字模塊的 [ 解壓縮 N 語法] 功能

結果

[ 從文字中解壓縮 N 語法的功能 ] 模組會建立兩種類型的輸出:

  • 結果資料集:已分析文字的摘要,以及已解壓縮的 n 字母。 您未在 [文字資料行] 選項中選取的資料行會傳遞至輸出。 針對您分析的每個文字資料行,此模組會產生這些資料行:

    • NgramsString:包含所有唯一 n 字母字元的字串。
    • NumUniqueNgrams:使用指定的屬性解壓縮之 n 字母的計數。
    • N 語法出現次數的疏鬆陣列:此模組會針對在 total 主體中找到的每個 n 字型產生一個資料行,並在每個資料行中加入分數,以指出該資料列之 n 字型的加權。
  • 結果詞彙:詞彙包含實際的 n 語法字典,以及在分析過程中產生的「頻率分數」。 您可以儲存資料集,以重複使用一組不同的輸入,或用於稍後的更新。 您也可以更新分數,或重複使用詞彙進行模型化和評分。

範例結果

為了說明您可以如何使用結果,下列簡短範例會使用 Studio 中可用的 Amazon Book 評論資料集 (傳統) 。 Dataaset 已篩選成隻顯示分數為4或5的評論,以及字串長度為300個字元的評論。

從這個資料集,選取了簡短的評論,只包含92個字。 這裡的作者名稱已被取代 Xxx ,而且書籍標題取代 Yyy 為:

"Xxx at his best ! Yyy is one of Xxx's best yet! I highly recommend this novel."

範例審核文字的結果資料集

在此範例中,模組會產生下列資料行:

  • NumUniqueNgrams:在此92字組中,使用預設設定,11 n 字母表示已從範例評論中解壓縮。

    當 n 語法長度增加至3,且略過語法值設定為1時,就會找到15個 n 字母。

    將特徵選取套用至預設值時,不會解壓縮 n 字母。

  • NgramsString:使用預設設定時,會傳回下列 n 字母: ["" "" "" "" "" "," 最佳 "、" one "、" 強烈 "、" 建議 "、" this "、" 新穎 "、" his_best "、" highly_recommend "、" recommend_this "、" this_novel "]

    使用 n-將長度為3且略過語法值為1時,傳回的 n 字母是: ["他的"、"最佳"、"one"、"強烈"、"建議"、"this"、"新穎"、"his_best"、"highly_recommend"、"recommend_this"、"this_novel"、"best_one"、"one_best"、"highly_this"、"highly_recommend_this"]

  • N 語法出現次數的疏鬆陣列

    針對這項特殊評論,結果包含下列資料行:

    ReviewText.企圖 ReviewText.[and_highly] ReviewText.專門 ReviewText.[highly_recommend]
    0 0 0.301511 0.301511

    提示

    如果您在查看特定資料行時遇到問題,請將 資料集模組中的選取資料行 附加至輸出,然後使用搜尋函數依名稱篩選資料行。

範例評論文字的結果詞彙

詞彙包含實際的 n 語法字典,以及在分析過程中產生的「頻率分數」。 您可以儲存資料集,以重複使用一組不同的輸入,或用於稍後的更新。 無論其他選項為何,都會產生 DFIDF 分數。 當您合併詞彙時,這些儲存的值會當做您所選加權函數的輸入使用。

  • 識別碼:為每個唯一的 n 元所產生的識別碼。
  • Ngram: n 語法。 空格或其他文字分隔符號會由底線字元所取代。
  • DF:原始主體中 n 元的詞彙頻率分數。
  • IDF:原始主體中 n 元的反向檔頻率分數。

您可以手動更新此資料集;不過,請務必小心,因為您可能會引入錯誤。 例如:

  • 如果模組在輸入詞彙中找到具有相同索引鍵的重復資料列,則會引發錯誤。 請確定詞彙中沒有兩個數據列有相同的字組。
  • 詞彙資料集的輸入架構必須完全相符,包括資料行名稱和資料行類型。
  • 識別碼資料行和DF分數資料行必須是整數類型。
  • IDF資料行的類型必須是 FLOAT (浮點數) 。

技術說明

建議您嘗試使用不同範圍的值,以表示文字主體的維度,以及最佳的功能比,並使用特徵選取來判斷文字的維度。

如需 n 字母和 skip 字母的詳細資訊,請參閱下列資源:

預期的輸入

名稱 類型 說明
資料集 資料表 輸入資料
輸入詞彙 資料表 輸入詞彙

模組參數

名稱 類型 範圍 選擇性 預設 描述
非零元素的最少數目 整數 >=1 只有在使用下列方法時才適用:

以計數為基礎
1 指定輸出的特徵數目 (適用於 CountBased 方法)
文字資料行 資料行選取 必要 StringFeature 文字資料行的名稱或以一為基礎的索引
詞彙模式 詞彙模式 建立

ReadOnly

更新

合併
必要 建立 指定如何從主體建立 n 語法詞彙
N 字母大小 整數 >=1 必要 1 指出要建立的 n 字母大小上限
K-略過大小 整數 >=0 必要 0 指出 k-跳過的大小
加權函數 加權函數 二進位權數

TF 權數

IDF 權數

TF-IDF 權數

Graph 權數
必要 二進位權數 選擇要套用至每個 n 元值的加權函數
最小文字長度 整數 >=1 必要 3 指定要包含在 n 字母中的文字長度下限
最大文字長度 整數 >= 2 必要 25 指定要包含在 n 字母中的文字長度上限
最少 n 中繼檔絕對頻率 Float >= 1。0 必要 5.0 最少 n 中繼檔絕對頻率
最多 n 個檔比例 Float >= 0.0001 必要 1.0 最多 n 個檔比例
偵測詞彙中的資料列 Boolean 必要 true 偵測有不在 n # 語法詞彙中之單字的資料列 (OOV)
標記開始句子 Boolean 必要 false 指出是否應將開始句子標記新增至 n 字母
標準化 n 語法的特徵向量 Boolean 必要 標準化 n 語法的特徵向量。 若為 true,則會以其 L2 標準來分割 n 語法特徵向量。
使用以篩選器為基礎的特徵選取 True False 類型 True

False
必要 True 使用以篩選器為基礎的特徵選取來減少維度
特徵計分法 計分方法 皮耳森相關

相互資訊

肯德爾相關

史皮爾曼相關

卡方

費雪計分

以計數為基礎
僅適用于選項 [ 使用以篩選為基礎的特徵選取 ] 為 True 時 費雪計分 選擇計分方法
目標資料行 資料行選取 適用于使用下列其中一種方法:

皮耳森相關

相互資訊

肯德爾相關

史皮爾曼相關

卡方

費雪計分
指定目標資料行
所需的特徵數目 整數 >=1 適用于使用下列其中一種方法:

皮耳森相關

相互資訊

肯德爾相關

史皮爾曼相關

卡方

費雪計分
1 指定結果中輸出的特徵數目

輸出

名稱 類型 說明
結果資料集 資料表 解壓縮的功能
結果詞彙 資料表 結果詞彙

另請參閱

文字分析
機器學習模組的 a-z 清單