|
扬声器
|
脚本
|
| 斯科特怀斯 |
调查性文本探索。我叫 Scott Wise,是 JMP 教育团队的高级经理。 |
| |
今天我有一个非常有趣的演讲要给大家看,这个演讲的目的是让大家更熟悉 |
| |
介绍 JMP 和 JMP Pro 的功能以及进行文本探索的简易程度,同时向您展示一种不同的文本探索方式,例如,我可以用它像侦探一样调查某件事吗? |
| |
好的,我们来谈谈我奶奶做的辣椒,以及它和德克萨斯辣椒烹饪大赛有什么关系。在我们开始之前, |
| |
让我们来揭穿一些有关文本挖掘的术语,对我来说,这其实有五个简单的步骤。你花时间总结数据,实际上是找出文本中出现频率最高的单词,甚至单词组合出现频率最高的单词。 |
| |
所以??? 称之为浏览非结构化文本,然后这个,这可能是任何东西。这可能是你的客户给你的关于你的产品或服务表现的一句话。它可能是... |
| |
可能是社交媒体,你可以根据评论了解人们喜欢什么或不喜欢什么, |
| |
有关您的产品或服务的一些东西,或者可能是这个人的一些东西,比如食谱。 |
| |
当人们研究人们正在申请专利的热门事物是什么以及我们应该这样做时,我甚至看到过它在专利上完成。 |
| |
所以,实际上,总结一下,找出其中哪些词是最重要的。现在,接下来需要做一些准备,也就是列出你关心的单词的较小列表。 |
| |
当然,如果我们不打算可视化和分析它,并且我们也不能对其进行建模,那么我们就不会使用 JMP。我们甚至可以进行一些高级建模。所以我将使用 JMP Pro 15.1 版来做到这一点, |
| |
我一定会指出您可以在 JMP 中做什么,以及我实际上在哪里加入一点 Pro 来帮助进一步回答我的问题。 |
| |
文档、语料库和术语。文档将是那些... |
| |
你要分析的内容基本上是文本的主体,文本的每一行。所以这是我的示例的食谱。 |
| |
可能是不同的客户对您的产品或服务进行了评论。语料库实际上是您要处理的非结构化文本,您要分析的是该文本的主体。 |
| |
然后,术语就是那些你关心的单词或单词组合,它们可以帮助你回答问题。那么,让我们来谈谈这个故事。你知道,我为什么要研究辣椒食谱?好吧,这又回到了 |
| |
大约 25 年前,我刚搬到德克萨斯州,为一家大公司工作,和德克萨斯州的大多数大公司一样,他们举办了一场大型德克萨斯辣椒烹饪比赛。 |
| |
我被要求参与。每个人都参与了。但我还被要求做更多的事情,我被要求担任评委。 |
| |
所以我应该拒绝法官的任命。我原以为这是对新人的荣誉,但我认为他们只能授予我这个荣誉,我知道原因了。 |
| |
但是我们先来谈谈大家对我带来的辣椒的反响。我有一个我家人一直使用的辣椒食谱,它来自我的祖母,莉莲奶奶。 |
| |
这不是辣椒。这不是德克萨斯人认为的辣椒。 |
| |
现在的好消息是我必须带一些回家,因为我喜欢吃它。他们考虑除了辣椒之外还有别的东西。他们的辣椒里没有豆子。他们的辣椒不浓。它很辣,很浓。 |
| |
我的菜是牛肉。他们的菜主要是猪肉。他们全都放了。这是让我惹上麻烦的另一件事。他们不仅不喜欢我奶奶做的辣椒,我差点没能通过评审 |
| |
因为真正的德克萨斯人真正的荣誉是做出最辣的辣椒。所以你想打败你的邻居。你想打败你的同事。所以他们把各种辣得要命的辣椒和香料扔在这里。 |
| |
我当时就想,我差点就把胃弄破了,只是想尝尝味道,然后喝掉所有的牛奶,试图把热量散发出去。所以 |
| |
这是一场严峻的考验。所以我的建议是,除非你喜欢高温,否则不要以评委的身份参赛,对吧。这不是一个好主意。但我想获得名次;这总是困扰着我。 |
| |
怎么,我奶奶做的辣椒为什么卖得不好?辣椒真的有不同种类吗?它们来自哪里? |
| |
事实证明,辣椒有着非常酷的历史。你可以看到一些关于辣椒的非常酷的历史博客和论文,它很可能来自 |
| |
中美洲,主要是墨西哥。还有一些清淡的菜肴,但在圣安东尼奥,它第一次出现在该州,我们现在知道它是辣椒, |
| |
在阿拉莫附近的老圣安东尼奥广场。它被用来赶牛,开始流行起来,然后传到了美国中部,一直到中西部。 |
| |
我听说,圣路易斯世界博览会上出现了许多食品创新,它们在展出后真的大受欢迎,这就是其中之一。辣椒被列入 |
| |
圣路易斯世界博览会确实很受欢迎。 |
| |
所以有不同的种类。所以我的想法是,如果我……我可以使用文本探索成分和食谱吗?只需将整个食谱倒入其中,看看会发生什么。 |
| |
那么我要将它与什么进行比较呢?因此我查了一下传统地区;我们有几个地区,从德克萨斯州一直到密歇根州。 |
| |
在德克萨斯州,我们有不同的品种。我品尝的是德克萨斯碗红辣椒。那是辣椒肉酱。 |
| |
玉米片派是足球比赛中吃到的,非常受欢迎,路易斯安那州有自己的版本。新墨西哥州有自己的版本,里面有青辣椒和鸡肉。俄克拉荷马州、堪萨斯城、斯普林菲尔德、 |
| |
伊利诺伊州的辛辛那提有天际线辣椒,他们把它放在意大利面条上。密歇根州的科尼岛有热狗,你知道,他们放的辣椒酱是真正的辣椒。 |
| |
白辣椒,不知道从哪里来的。素食辣椒。但现在有很多款式。 |
| |
所以我说,如果我从每种风格中选取三种食谱,并将其与我奶奶的辣椒进行比较,我能找到我想要的吗? |
| |
所以我们要这样做,我将向您展示,当我逐步介绍这些步骤时,我将向您展示这些步骤的摘要,然后我将直接向您展示我是如何在 JMP 中执行此操作的。 |
| |
第一步是总结数据。我们想找到我们关心的那些词。 |
| |
现在当你输入 |
| |
任何文本分析,这些文本数据,比如我的材料,都放入文本浏览器中,它会通过一个库来运行它 |
| |
正则表达式,并将“常规”一词视为日常用语的一部分。 |
| |
而且它们也没什么用。如果我的列表中有“the”和“and”,它就没用了。所以它会尝试帮你找出你不关心的单词。是的,它可以自定义。 |
| |
它已经内置了一个非常强大的词干提取器,我就是使用它的。然后是词干提取。词干提取就是你去提取 |
| |
说出你想如何处理单词 - 所以“dice”是“dice”,“dicing”,你得到复数,不同...不同...... |
| |
词根的不同版本。您是想将所有内容都计入词根中,还是将其分开?所以这是一个需要考虑的问题。 |
| |
然后我们总结一下。让我把这些词拿出来。你可以看到我这里有一个单词列表。后面的单词是未经编辑的,然后是前面的单词 |
| |
实际上,我们已经仔细检查过并缩小了单词列表。所以你要做的是,查找你不关心的单词,你称它们为停用词,基本上就是删除它们。将它们重新添加到我不关心的词库中。 |
| |
您还可以带上真正重要的短语。一旦您有了这些,我们就可以将其形象化。 |
| |
就我而言,我们可以看到我对食材非常感兴趣。所以我们将能够看到哪些食材出现得最频繁。 |
| |
您经常会在这里看到词云,词云中的词越大,出现的频率就越高。 |
| |
你可以把它看成云,就像一个零散的布局,或者你可以看一个顺序,你知道,第一个是最大的词。就像 |
| |
幻灯片前面的图表。之后,我们将对其进行一些操作。这样我们就可以创建一些基本模型。 |
| |
最简单的方法之一就是,一旦我们知道了列表中我们关心的单词, |
| |
我们可以将其添加回我们的数据表。这称为保存文档术语矩阵。在这种情况下,一种简单的方法是二进制。所以我这里有一个单独的列,你可以在我的右边看到, |
| |
“洋葱”在食谱的行中有一个 1。如果不在,则为 0,因此您可以在列中得到 0 和 1。您可以看到什么是最重要的。 |
| |
很多时候,你会试图模拟一些事情,比如,如果我被困住了, |
| |
也许我通过这个得到了评判分数,我可以说,好吧,这是与每个食谱相关的数字分数。我想看看什么成分 |
| |
很常见,可以得到高分。这可能是我正在做的事情,所以尝试做得更有预测性一些。 |
| |
但在本例中,我将研究分组。我对分组很感兴趣,比如将食谱放在一起,看看我奶奶的辣椒属于哪一种。所以我将向你们展示我们将如何做到这一点。但我们首先转到 JMP,向你们展示我们如何在 JMP 中执行这些步骤。 |
| |
这是我的原始数据。 |
| |
在这里的每个文档中,每一行都是……得到了我的非结构化文本,在我的案例中,它只是原始成分。 |
| |
如果我点击这里的任何一个单元格,你会看到它只是复制的成分。所以这是第一个……路易斯安那州的卡真辣椒。 |
| |
其中有些词我比较在意,比如“番茄”、“辣椒粉”和“蜂蜜”,有些词我不在意,比如“可以”。 |
| |
我可能不太关心成分计量单位,比如“一”、“两磅”、“茶匙”。那么我们该如何处理呢?那么我们要怎么做呢 |
| |
我们要去分析,然后进入文本资源管理器,把这些成分放入文本列中。 |
| |
我要询问如何提取所有词干。我发现这非常有用。然后我要使用内置正则表达式。 |
| |
我说好的,现在这是我的初步清单。 |
| |
所以我现在能做的就是选择那些我不关心的东西。我不关心数字。所以也许我可以在这里突出显示它们,右键单击,然后添加一个停用词,然后它就会被添加到我不关心的事情列表中。 |
| |
那“辣椒粉”呢?听起来像是需要单独添加的东西。所以我要右键单击该短语。然后我要说添加短语,它就会将其添加进去。 |
| |
如此反复进行,直到获得精简后的缩小版清单。 |
| |
我要去跑我的 |
| |
我最终的列表就是通过它得到的。下面是所有从正则表达式中找到的单词,还有 |
| |
我添加的东西 |
| |
和停用词。现在,这是我完成的术语和短语列表。所以我添加了这些短语。我关心。所以“洋葱”排名最高,然后是“盐”,然后是“孜然”,然后是“辣椒粉”。 |
| |
正如您所猜想的那样,这确实非常便于可视化,而且我们确实有一个词云。所以这是这个图中所有内容的词云。同样,在我的红色三角形选项下,我可以将其更改为顺序,以使其更清晰地显示出来。 |
| |
如果我让它居中,这是一件很有趣的事情。你知道你可以为你的数据添加过滤器,你可以做的是,有时你可以直观地找到答案,而不需要做任何其他事情。所以在这种情况下,我将深入讨论这个问题 |
| |
红色三角形。我将获得本地数据过滤器。我只需要查看类型,然后说,好吧,让我们看看 |
| |
莉莲奶奶做的辣椒长什么样,你知道“西红柿”、“芸豆”和“牛肉”之类的。那和卡真辣椒相比怎么样? |
| |
他们分享了辣椒粉和牛肉,但你知道,那里面可能有些不同。你知道,这与辣椒绿相比如何, |
| |
你知道,更多的是青辣椒。里面有生辣椒和墨西哥胡椒、鸡汤、所有这类的东西,鸡汤。 |
| |
这确实很有趣,但可能还不足以让我弄清楚发生了什么。所以我去了 |
| |
(这是另一个……您在红色三角形下看到了所有选项)我确实确保(并且我可能需要在这里确保)我关闭了本地数据过滤器,确保选择了所有内容,我正在查看所有条款。 |
| |
我这里得到了 299。我要右击并选择“保存文档术语矩阵”。 |
| |
当我这样做时,它会询问我想要以何种方式保存它,使用何种权重,什么样的权重。它基本上是二进制的,我可以使用频率,有多少个词,你知道,最小词频实际上可以在数据表中占有一席之地。我已经这样做了。 |
| |
所以如果我滑过去看看...... |
| |
事实上 |
| |
我将继续执行此操作并向您展示它是什么样子。所以我只需说“保存文档术语矩阵”并说“好的”。 |
| |
现在,正如我在幻灯片上展示的那样,我得到了我关心的所有术语。这是第一个“洋葱”的术语。这是“辣椒粉”的术语,以及它们各自的 |
| |
食谱,您知道的,行。 |
| |
所以我知道哪里有这种辣椒,我知道这种卡真辣椒里有辣椒粉。 |
| |
当为零时, |
| |
这个看起来像俄克拉荷马辣椒,或者不是,对不起,新墨西哥辣椒没有辣椒粉,所以这就是它的工作原理。这可以用于建模。因此,您可以转到 JMP 中的分析拟合模型并采取...并将其实际应用于某种类型的模型。 |
| |
但我要做的是,因为我并不是真的想预测哪些成分会给我更高的分数。我没有任何像,你知道, |
| |
你知道这里的输出数据。我真的想把它们组合在一起,我听说在 JMP Pro 中,我实际上可以做到这一点。所以我要回到这里的幻灯片。 |
| |
我要讲的是数据分析。为了做进一步的分析 |
| |
在 JMP Pro 中,它使您能够执行一些非常好的分组技术,这些是多元方法,它们专门用于处理文本分析和处理有关文本的文档术语矩阵。 |
| |
它使用一种称为潜在类别分析的方法。这是其中一个术语。如果你习惯使用这种技术,它类似于主成分。但基本上它会 |
| |
问我们要查看多少组数据或集群。它将查看多维空间 |
| |
在这些列中的所有内容和你的模型中重要术语的文档术语矩阵之间,我们得到的关于这个词的重要术语 |
| |
单词列表,对吧?它会对单词进行分组。在我的例子中,我能够将其分为三组。 |
| |
因此有一个集群,其中似乎有很多辣椒食谱,包括碎牛肉、番茄酱、辣椒粉和豆类。 |
| |
第二组与鸡肉、青辣椒、生辣椒有很大关系。 |
| |
然后是第三组,其中也有很多辣椒,但更多的是红辣椒,并且是以猪肉为基础的,这非常合理。 |
| |
好的,当我创建这些聚类时,我能够按行使用聚类概率,这给了我这些个体的强度 |
| |
配方,我的文档中的行,对,这些是原始的……我的控制配方,它们落在哪里,它们的强度如何。我为什么要将它们分配到任何集群中?当我这样做时, |
| |
22 是我奶奶的聚类...是我奶奶的对照。我发现她和其他一些菜谱一起聚类在了第一类中,包括来自密苏里州堪萨斯城的菜谱。 |
| |
24 号有一个非常接近。现在,第三组的德克萨斯食谱中,有辣椒、香料……里面有很多香料,而且经常是猪肉,没有豆类,对吧?豆类出现在第一组中,但没有出现在第三组中,然后…… |
| |
集群二 |
| |
更适合,你知道,更适合青辣椒, |
| |
更多的是在新墨西哥州看到的东西,你知道,鸡肉辣椒,青辣椒。 |
| |
好吧,事情是这样的,我能够匹配,我找到了一个食谱。密苏里州的三个代表性食谱之一 |
| |
那实际上叫做堪萨斯城辣椒,它几乎与莉莲奶奶的辣椒完全匹配。 |
| |
所以当我问妈妈这件事时,我说:“嗯,为什么会发生这种事。我不认为它来自密苏里州。”她说:“这一切都说得通。”她说:“莉莲奶奶, |
| |
她在密苏里州圣约瑟夫的一个农场长大,是家里唯一的女孩,还有 11-12 个兄弟。所以她做了很多做饭的事情。” |
| |
顺便说一句,她是唯一一个接受过大学教育的人,所以在她生活的那个时代,她是一个相当进步的人,也是我最喜欢的亲戚之一,而她的食谱非常能说明这一点。所以让我们现场展示一下这是什么样的。 |
| |
所以如果我去... |
| |
在此刻, |
| |
我回到我制作的数据,在那个热点下,我将请求 JMP Pro 可以提供的这些附加模型。有一个使用该方法的潜在类别分析聚类文档, |
| |
基于二进制方式记录术语矩阵。因此它确实使用文档...确实使用文档术语矩阵,是的,所以您甚至不必将其保存出来,它会自动生成它。 |
| |
还有一种潜在语义分析,它需要更多的数学知识,采用更高级的方法,但这两种方法基本上都在做同样的事情,我特别喜欢这种潜在类别分析。所以我选择了它。 |
| |
我要求三个集群,你可以尝试一下看看是否有区别。我确实尝试了更多集群,最后又回到了三个。 |
| |
并且在其内部 |
| |
选项,您可以逐行查看聚类概率。 |
| |
在所有输出中,这是最有意义的。所以记住,回到我的幻灯片,这帮助我查看我奶奶的辣椒掉在哪里, |
| |
也就是22岁, |
| |
第 22 行。然后它还能与什么很好地结合。这就是我能够进行此分析的方法。 |
| |
就这么简单。 |
| |
所以, |
| |
以上就是我快速了解 JMP 文本探索功能的方法,以及我如何使用 JMP Pro 和 |
| |
找到这些集群,放上我奶奶的辣椒,然后找到一个匹配的食谱。所以如果你想了解更多,我确实有一个博客链接 |
| |
在演示文稿中,您可以……您可以点击,或者您可以直接进入社区,只需输入“奶奶的辣椒”,您就可以找到该博客。我还会给你,我们也会给你 |
| |
食谱。所以你也可以做莉莲奶奶的辣椒。 |
| |
所以我们很高兴今天能够向您展示这一点。 |
| |
请务必在问答中留下我们可以回答的任何问题。试试这个,试试其他东西 |
| |
您在工作时、在家里或任何有非结构化文本数据的地方,如果您想探索并提出问题,您会发现这是一个非常棒的方法,非常强大,确实可以帮助您攻克数据的第三维度。 |