我花了一些時間,大概兩個小時,嘗試使用 JMP 培訓信息,但我一定遺漏了一些東西。
我有非結構化的調查問題並進行了基本的文本分析。從這些短語中,我可以看出大約五個意思相同的短語。我想將這些詞組歸為一個且唯一的一個詞組進行分析。在 JMP 中,我可以選擇短語並輕鬆創建“超級短語”嗎?我已經嘗試了幾次,但不知道該怎麼做。
“請求測試”
“要求測試”
“請求測試”
“測試請求”
“測試請求”
“測試請求”
所有這些都將被歸類為“請求測試”,因為它們都具有該含義。
我了解到這是 JMP 14 Pro 中的兩步過程。文本資源管理器... 首先,通過在標題為短語的右側框中選擇多個詞幹短語來創建一個新短語。然後,完成後,轉到標題為“術語和短語列表”的左側框。查找並右鍵單擊新短語。選擇“重新編碼”並為您分組的每個短語提供一個描述性名稱。隨著新名稱的出現,這些消失了。然後,在那個左邊的框中,您將看到新的“superphrase”,您可以在 pareto 中查看它。
我可能弄錯了,但在我看來,要處理的短語的各種形式都可以在文本資源管理器的短語列表中找到。 這些短語不是文本數據列中的原始字符串值。 我認為這種情況是非結構化文本,而不是結構化字符值。 因此,必須在解析和終止後在文本資源管理器中重新編碼。
您沒有提到您正在使用的 JMP 版本。 如果 JMP12 或更高版本,則有一個名為 Recode 的列實用程序。
下面的腳本創建一個虛擬表並為 User1 的用戶調用 Recode。
ex= {"request tests", "request a test", "request testing", "test requests", "test request",
"testing requests"};
dt= New Table("Survey", add rows(50), NewColumn("User1", character,
<< set each value(ex[Random integer(1,6)]) ) );
dt << Go To (:User1);
dt << Recode;隨附的屏幕截圖顯示了表格和交互式界面。 公式周圍的紅色框是一個菜單選項,用於創建新列(值)、公式(列)或就地(替換值)。我選擇了公式並命名該列重新編碼用戶 1 . 接下來,選擇所有選項並單擊鼠標右鍵,然後會出現一個選項的彈出菜單。 選項是使用眾多短語之一,或使用新值。 進行選擇並按下重新編碼按鈕。
注意:如果有多個答案組,您可以通過不同的選項選擇組,指定常用術語。 完成後按重新編碼。

此操作創建的公式是
Match( :User1,
"request a test", "request tests",
"request testing", "request tests",
"test request", "request tests",
"test requests", "request tests",
"testing requests", "request tests",
:User1
)
我會使用以下公式
t0 = Trim( Lowercase( :User1 ) );
If( Contains( t0, "request" ) & Contains( t0, "test" ),
"request test",
:User1
);
這些函數都不能處理拼寫錯誤和拼寫錯誤。JMP 有一個稱為最短編輯距離的函數,我有一個用於計算 Levenshtein 距離的腳本,還有其他算法可以對級別匹配(或不匹配)或單詞和短語進行“評分”。
但是,如果您以交互方式處理數據,Recode 非常好用。
抬頭重新編碼數據在網上的書使用 JMP .(主菜單 > 幫助 > 書籍 > 使用 JMP)。
哦,我們還沒有 Text Explorer 的培訓。 我們將在 10 月份的 JMP 發現峰會上推出一門新課程!
]我不明白為什麼“a”在您的術語列表中,因此在您的短語列表中。 一個字符的標記真的能提供信息嗎? 此外,停用詞包括“a”,它應該已被自動刪除。
你可以先為要求/要求並為測試/測試所以你只有兩個短語,請求測試和測試請求. 您可以將它們添加到術語列表中,然後將它們重新編碼到所需的級別。
可能有更優雅的方法來做到這一點(如果有人知道我會很感興趣),但您可以通過使用帶有多個 OR 子句的公式 IF 創建一個新列來完成此操作,這些子句說明該文本字段是否包含“您列出的每個短語”,然後是 1,否則為 0。如果您使用“行”、“選擇位置”選項並添加多個條件,這會更容易,每個條件都是文本字段“包含”並列出您的短語列表(確保檢查“是否滿足任何條件”)。選擇這些行後,在“行”下,“列中的名稱選擇”將創建與公式相同的列。