| 揚聲器 |
抄本 |
| 史考特·懷斯 |
調查性文本探索。我叫 Scott Wise,是 JMP 教育團隊的高級經理。 |
| |
今天我有一個非常有趣的演示給大家看,這個演示的目的是讓大家更加熟悉 |
| |
借助 JMP 和 JMP Pro 的功能以及進行文字探索的簡單性,我們還可以向您展示一種不同的文字探索方式,例如,我可以像偵探一樣調查某件事嗎? |
| |
好的,讓我們來聊聊我奶奶做的辣椒,以及它和德州辣椒烹飪大賽有什麼關係。開始之前, |
| |
讓我們來揭秘一些關於文本探勘的術語。對我來說,它實際上有五個簡單的步驟。你需要花時間總結數據,確切地說,就是找出文本中哪些詞出現得最頻繁,甚至哪些詞的組合出現得最頻繁。 |
| |
所以??? 稱之為瀏覽非結構化文本,然後這個,可以是任何東西。這可能是客戶給你的一句話,關於你的產品或服務的表現。也可能是… |
| |
可能是社群媒體,對吧,你可以根據評論了解人們喜歡什麼或不喜歡什麼, |
| |
有關您的產品或服務的一些東西,或者可能是這個人的一些東西,例如食譜。 |
| |
我什至看到在專利上這樣做,當人們研究人們申請專利的熱門事物是什麼以及我們是否應該這樣做時。 |
| |
所以,實際上,就是總結一下,找出其中哪些字是最重要的。接下來需要做一些準備,也就是列出你關心的單字的簡短清單。 |
| |
當然,如果我們不打算將其視覺化、分析,甚至不進行建模,那麼我們就不能稱之為 JMP。我們甚至可以進行一些高級建模。所以我將使用 JMP Pro 15.1 版本來做這件事。 |
| |
我一定會指出您可以在 JMP 中做什麼,以及我實際上在哪裡加入一點 Pro 來幫助進一步回答我的問題。 |
| |
文件、語料庫和術語。文檔將是那些… |
| |
你分析的內容,基本上就是文字的主體,文字的每一行。所以,這是我的食譜範例。 |
| |
這可能是不同的客戶對您的產品或服務所做的評論。語料庫實際上是您要處理的非結構化文本,即您要分析的文本主體。 |
| |
然後,術語就是那些你關心的、能幫助你回答問題的字詞或字詞組合。那麼,我們來談談這個故事。你知道,我為什麼想到要研究辣椒食譜嗎?嗯,這又回到了 |
| |
大約 25 年前,當我第一次搬到德克薩斯州並來到一家大公司工作時,和德克薩斯州的大多數大公司一樣,他們舉辦了一場大型德克薩斯辣椒烹飪比賽。 |
| |
我被邀請參加。每個人都參加了。但我還被要求做更多的事情,我被邀請擔任評審。 |
| |
所以我本來應該拒絕法官的。我以為這是給新人的榮譽,但我覺得他們只能給我這個機會,我找到了原因。 |
| |
先說說大家對我帶來的辣椒的反應。我家一直用的辣椒食譜,來自我的祖母莉蓮奶奶。 |
| |
這不是辣椒。這不是德克薩斯人認為的辣椒。 |
| |
現在好消息是,我得帶點東西回家,因為我喜歡吃辣椒。他們除了辣椒,還考慮了別的東西。他們的辣椒裡沒有豆子。他們的辣椒味道不濃鬱。非常辣,湯汁很濃。 |
| |
我的是牛肉。他們的主要是豬肉。他們全是豬肉。這是另一件讓我惹麻煩的事。他們不但不喜歡我奶奶做的辣椒,我差點沒能通過評審。 |
| |
因為真正的德克薩斯人真正的榮譽是做出最辣的辣椒。所以你想打敗你的鄰居。你想打敗你的同事。所以他們把各種辣得要命的辣椒和香料都丟了進來。 |
| |
我當時就想,光是嚐嚐味道就差點把我的胃弄破了,而且你還喝了那麼多牛奶,想把熱氣散發出去。所以 |
| |
這簡直是一場嚴峻的考驗。所以我的建議是,除非你喜歡這種高溫,否則就別來當評審了,對吧?這可不是什麼好主意。但我想拿名次;這一直困擾著我。 |
| |
怎麼,為什麼我奶奶做的辣椒賣不好?辣椒真的有好幾種嗎?它們又是從哪裡來的? |
| |
事實證明,辣椒的歷史真的很酷。你可以看到一些關於辣椒的很酷的歷史部落格和論文,它很可能來自 |
| |
中美洲,主要是墨西哥。也有一些清淡的菜餚,但在聖安東尼奧,它第一次出現在該州,我們現在知道它是辣椒, |
| |
在阿拉莫附近的老聖安東尼奧廣場上。它被用來趕牛,後來開始流行起來,然後傳到了美國中部,一直到中西部。 |
| |
我聽說,聖路易斯世界博覽會上有很多創新食品,它們一展出就引起了轟動,這就是其中之一。辣椒被列入 |
| |
聖路易斯世界博覽會確實很受歡迎。 |
| |
所以有很多不同的種類。所以我的想法是…我能不能用文字探索食材和食譜?把整個食譜放進去,看看會發生什麼。 |
| |
我要把它跟什麼比較呢?於是我查了一下傳統產區,從德州一直到密西根州,有好幾個。 |
| |
在德克薩斯州,我們有不同的品種。我品嚐的是德州碗紅辣椒醬。那是辣椒肉醬。 |
| |
玉米片派是橄欖球賽上常見的食物,但非常受歡迎,路易斯安那州也有自己的版本。新墨西哥州也有自己的版本,裡面有青辣椒和雞肉。俄克拉荷馬州、堪薩斯市、斯普林菲爾德… |
| |
伊利諾州的辛辛那提有天際線辣椒,人們把它淋在義大利麵上。密西根州的科尼島有熱狗,你知道,他們放的辣椒醬可是貨真價實的辣。 |
| |
白辣椒,不知道產地。素辣椒。不過現在市面上有很多種口味。 |
| |
所以我說,如果我從每種風格中選取三種食譜並將其與我奶奶的辣椒進行比較,我能找到我想要的嗎? |
| |
所以我們要這樣做,當我逐步介紹這些步驟時,我將向您展示這些步驟的摘要,然後我將直接向您展示如何在 JMP 中執行此操作。 |
| |
第一步是匯總資料。我們想找到我們關心的字。 |
| |
現在當你輸入 |
| |
任何文本分析,這些文本數據,就像我的成分,進入文本瀏覽器,它將通過庫運行它 |
| |
正規表示式,並思考像常規這樣的詞,它們只是日常用語的一部分。 |
| |
而且它們也沒什麼用。如果我的清單中有“the”和“and”,它就沒用了。所以它會試著幫你找出你不關心的單字。沒錯,它可以自訂。 |
| |
它已經內建了一個非常強大的工具,我使用的就是這個。然後是詞幹提取。詞幹擷取就是你去 |
| |
說出你想如何處理單字 - 所以“dice”是“dice”,“dicing”,你得到了複數,不同......不同...... |
| |
詞根的不同版本。你是想把所有字根都算進去,還是想把它們分開算?所以這是一個需要考慮的問題。 |
| |
然後我們總結一下。我來把這些字拿出來。你看,我這裡有一個單字表。後面的單字是未經編輯的,前面的單字是 |
| |
實際上,我們已經仔細研究過並精簡了那個單字表。所以,你要做的就是,找出你不關心的詞,我們稱之為停用詞,簡單來說,就是刪除它們。把它們放回我不關心的字庫裡。 |
| |
你也可以帶一些真正重要的短語。有了這些短語之後,我們就能把它們視覺化了。 |
| |
就我而言,我對食材非常感興趣。這樣我們就能知道哪些食材出現得最頻繁。 |
| |
您經常會在這裡看到詞雲,詞雲中的詞越大,出現的頻率就越高。 |
| |
你可以把它看成雲狀,就像一個…零散的佈局,或者你也可以看一個順序,你知道,最上面的那個是最大的字。就像 |
| |
投影片前面的圖表。之後,我們要用它來做一些事情。這樣我們就可以創造一些基本的模型。 |
| |
最簡單的方法之一就是,一旦我們知道了清單中哪些單字是我們關心的, |
| |
我們可以把它加回資料表。這叫做保存文檔詞條矩陣。在這種情況下,一個簡單的方法是使用二進位。所以我在這裡有一個單獨的列,你可以在我的右邊看到,其中 |
| |
「洋蔥」在食譜那行裡,對應「1」。如果不在,對應著“0”,對應著“0”。所以,你可以在列裡找到0和1。這樣你就能看到什麼是最重要的了。 |
| |
很多時候,你會試著模擬一些事情,例如,如果我被困住了, |
| |
也許我已經根據這個評分了,我可以說,嗯,這是每個食譜對應的數字分數。我想看哪些成分 |
| |
很常見,能帶來高分。我可能正在這樣做,所以盡量做得更有預測性一些。 |
| |
但在這種情況下,我會研究分組。我對分組很感興趣,例如把食譜分組,看看我奶奶做的辣椒屬於哪一種。所以我會向你們展示如何做到這一點。不過,我們先去 JMP 軟體上看看如何在 JMP 中完成這些步驟。 |
| |
這是我的原始數據。 |
| |
在這裡的每個文檔中,每一行都是...得到了我的非結構化文本,在我的案例中,它只是原始成分。 |
| |
如果我點擊這裡的任何一個單元格,你會看到它實際上是複製的配料。所以這是…第一個來自路易斯安那州的卡真辣椒。 |
| |
其中有一些我關心的詞,像是「番茄」、「辣椒粉」和「蜂蜜」。還有一些我不關心的詞,像是「罐頭」。 |
| |
我可能不太在意食材的計量單位,像是「一」、「兩磅」、「茶匙」。那我們該如何處理這個問題呢?我們該怎麼做呢? |
| |
我們要去分析,然後去文字資源管理器,把這些成分放入文字列中。 |
| |
我要問一下詞幹提取的問題,如何提取所有詞幹。我覺得這很有幫助。然後我會用內建的正規表示式。 |
| |
我說好的,現在這是我的初始清單。 |
| |
所以我現在能做的就是,選擇那些我不關心的內容。我不關心數字。所以我可以在這裡高亮顯示它們,右鍵點擊,然後添加停用詞,這樣它就會被添加到我不關心的內容列表中。 |
| |
那「辣椒粉」呢?聽起來像是需要單獨添加的單字。所以我右鍵點擊這個短語,然後點“添加短語”,它就會把它加進去。 |
| |
所以你繼續這樣做直到你得到一個精簡的縮小清單。 |
| |
我只是要去跑我的 |
| |
我最終的清單就是用它做的。這是所有用正規表示式找到的單詞,還有 |
| |
我添加的東西 |
| |
以及停用詞。現在,這是我完成的術語和短語清單。我添加了這些我關心的短語。所以“洋蔥”的得分最高,然後是“鹽”,然後是“孜然”,最後是“辣椒粉”。 |
| |
正如你所猜測的,這看起來確實很棒,而且我們確實有詞雲。這是所有內容的詞雲。同樣,在紅色三角形選項下,我可以將其變更為順序,以便更清晰地顯示結果。 |
| |
如果我讓它居中,這是一件很有趣的事。你知道你可以為資料添加過濾器,有時你可以直觀地找到答案,而無需執行任何其他操作。在這種情況下,我將深入探討這個問題。 |
| |
紅色三角形。我要取得本機資料過濾器。我只需要查看類型,然後說,好吧,讓我們看看 |
| |
莉蓮奶奶做的辣椒長什麼樣子?你知道「西紅柿」、「芸豆」、「牛肉」之類的。那跟卡真辣椒比起來怎麼樣? |
| |
他們分享的是辣椒粉和牛肉,不過,你知道,裡面可能有些不同的東西。你知道,這和青辣椒醬相比怎麼樣? |
| |
你知道,更多的是青辣椒。裡面有生辣椒、墨西哥辣椒、雞湯,所有這類的東西,雞湯。 |
| |
這確實很有趣,但可能還不足以讓我弄清楚發生了什麼事。所以我去了 |
| |
(這是另一個……你的紅色三角形下有所有的選項)我確實去確保(我可能需要在這裡確保)我關閉了本地數據過濾器,確保選擇了所有內容,我正在查看所有的條款。 |
| |
我這裡得到了 299。我要右鍵點擊,然後選擇“儲存文件術語矩陣”。 |
| |
當我這樣做的時候,它會詢問我想要以什麼方式保存它,使用什麼權重,什麼樣的權重。它基本上是二進制的,我可以使用頻率,多少個字,你知道,在資料表中實際佔有一席之地的最小詞頻。我已經完成了這些。 |
| |
所以如果我滑過去看看… |
| |
事實上 |
| |
我先繼續操作,然後給你們看效果。我只需要說“保存文檔術語矩陣”,然後點擊“確定”。 |
| |
現在,正如我在幻燈片上展示的那樣,我得到了所有我關心的詞條。這是第一個「洋蔥」的詞條。這是「辣椒粉」的詞條,以及它們各自的 |
| |
你知道,食譜就是一排排的。 |
| |
所以我知道哪裡有這種辣椒,我知道這種卡真辣椒裡面有辣椒粉。 |
| |
為零時, |
| |
這個看起來像俄克拉荷馬辣椒,或者不是,抱歉,新墨西哥辣椒沒有辣椒粉,所以就是這樣。這可以用於建模。所以你可以去 JMP 的“分析擬合模型”,然後…把它實際應用到某種模型中。 |
| |
但我要做的是,因為我其實不想預測哪些成分會給我更高的分數。我沒有任何… |
| |
你知道這裡的輸出數據。我真的很想把它們組合在一起,我聽說在 JMP Pro 中,我實際上可以做到這一點。所以我要回到我的幻燈片了。 |
| |
我將討論數據分析。為了進行進一步的分析 |
| |
在 JMP Pro 中,它使您能夠執行一些非常好的分組技術,這些技術是多變量方法,它們專門用於處理文字分析和處理那些與文字相關的文件術語矩陣。 |
| |
它使用了一種稱為潛在類別分析的方法。這是其中一個術語。如果你熟悉主成分分析,它和主成分分析類似。但基本上它會 |
| |
問我們想查看多少個資料組或群集。它會查看整個多維空間 |
| |
在這些列中的所有內容和你的模型中重要術語的文檔術語矩陣之間,我們得到的關於這個詞的重要術語 |
| |
單字表,對吧?它會把它們分組。就我而言,我能夠把它們分成三組。 |
| |
因此有一個集群,其中似乎有很多辣椒食譜,包括碎牛肉、番茄醬、辣椒粉和豆類。 |
| |
還有第二組,跟雞肉、青辣椒、生辣椒有很大關係。 |
| |
然後是第三組,其中也有很多辣椒,但它們更多的是紅辣椒,並且是以豬肉為基礎的,這很有道理。 |
| |
好的,當我創建這些聚類時,我能夠使用逐行的聚類機率,這給了我這些個體的強度 |
| |
配方,我文檔裡的行,對,這些原始的…我的控製配方,它們落在哪裡,它們的強度如何。我為什麼要把它們分配到那個集群裡?當我這樣做的時候, |
| |
22 是我奶奶的聚集…也是我奶奶的對照。我發現她和其他一些食譜(包括來自密蘇裡州堪薩斯城的食譜)一起被聚類到了第一類。 |
| |
24號有一個非常接近。第三組的德州食譜裡有辣椒、香料……很多香料,而且經常用豬肉,沒有豆子,對吧?豆子出現在第一組裡,但沒有出現在第三組裡,然後… |
| |
集群二 |
| |
更適合,你知道,更適合青辣椒, |
| |
更多的是在新墨西哥州看到的東西,你知道,雞肉辣椒,青辣椒。 |
| |
好吧,事情是這樣的,我成功配對了,也找到了食譜。密蘇裡州的三個代表性食譜之一 |
| |
那其實叫做堪薩斯城辣椒,它幾乎與莉蓮奶奶的辣椒完全一樣。 |
| |
所以當我問媽媽這件事時,我說:「嗯,為什麼會發生這種事?我不認為它來自密蘇裡州。」她說:「這一切都說得通。」她說:「莉蓮奶奶, |
| |
她在密蘇裡州聖約瑟夫的一個農場長大,是家裡唯一的女孩,還有11到12個兄弟。所以她做了很多飯菜。 |
| |
順便說一句,她是唯一一個受過大學教育的人,所以在她生活的那個年代,她算是比較進步的,也是我最喜歡的親戚之一,而她的食譜就充分體現了這一點。那就讓我們現場示範一下吧。 |
| |
所以如果我去... |
| |
在此刻, |
| |
我回到之前創建的數據,在那個熱點下,我會請求 JMP Pro 提供的這些附加模型。有一個使用該方法的潛在類別分析聚類文檔, |
| |
基於二進位方式記錄術語矩陣。所以它確實使用了一個文件……確實使用了那個文檔術語矩陣,是的,所以你甚至不需要保存它,它會自動生成。 |
| |
還有一種潛在語義分析,它……它涉及更多的數學運算,採用更高級的方法,但兩者基本上做的是同一件事。我特別喜歡這種潛在類別分析。所以我選擇了它。 |
| |
我要求的是三個聚類,你可以試試看效果如何。我嘗試了更多聚類,最後還是回到了三個。 |
| |
並且在其範圍內 |
| |
選項,您可以按行查看聚類機率。 |
| |
在所有輸出中,這是最合理的。記住,回到我的幻燈片,這幫助我找到了我奶奶的辣椒掉落的位置, |
| |
也就是22, |
| |
第22行。然後它還能和什麼結合得很好呢?這就是我進行這項分析的方法。 |
| |
就這麼簡單。 |
| |
所以, |
| |
這真的快速介紹了 JMP 文字探索的功能,以及我如何使用 JMP Pro 和 |
| |
找到這些串,放上我奶奶做的辣椒,然後找到相應的食譜。如果你想了解更多,我有一個部落格鏈接 |
| |
在簡報中,你可以點擊,或直接進入社區,輸入“奶奶的辣椒”,就能找到那個部落格。我也會提供一些其他信息,我們也會提供一些 |
| |
食譜。所以你也可以做莉蓮奶奶的辣椒。 |
| |
因此我們很高興今天能夠向您展示這一點。 |
| |
請務必在問答中留下任何我們可以解答的問題。試試這個,試試其他方法 |
| |
您在工作中、在家中或任何具有非結構化文字資料的地方,如果您想探索並提出問題,您會發現這是一種非常棒的方法,非常強大,並且真正可以幫助您攻擊資料的第三維度。 |