哪个行业的数据分析岗位最香?
就这样,我们有结果了!冒险小说和浪漫小说最为相似,而社论则类似于新闻和政府。 应用3:情感分析 情感分析是将非结构化文本解释为正面、负面或中性。情感分析是分析评论、衡量品牌、构建人工智能聊天机器人等的有用工具。 与文档聚类不同,在情感分析中,我们不使用预处理。段落的标点符号、流程和上下文可以揭示很多关于情绪的信息,所以我们不想删除它们。 为了简单有效,我建议使用基于模式的情感分析。通过搜索特定的关键词、句子结构和标点符号,这些模型测量文本的积极消极性。以下是两个带有内置情感分析器的库: VADER 情感分析:
VADER 是 Valence Aware Dictionary and sEntiment Recognizer的缩写,是NLTK用于情感分析的扩展。它使用模式来计算情绪,尤其适用于表情符号和短信俚语。它也非常容易实现。 如果向量是二维的,我们可以像上面一样可视化文档。在这个例子中,我们看到文档A和B是紧密相关的,而D和F是松散相关的。即使这些向量是3维、100维或1000维,使用距离度量的话,我们也可以计算相似性。 下一个问题是如何使用非结构化文本输入为每个文档构造这些向量。这里有几个选项,从最简单到最复杂的:
Word2Vec和Doc2Vec非常复杂,需要大量的数据集来学习单词嵌入。我们可以使用预训练过的模型,但它们可能无法很好地适应领域内的任务。相反,我们将使用词袋、TF-IDF和LSI。 现在选择我们的库。GenSim是专门为这个任务而构建的,它包含所有三种算法的简单实现,所以让我们使用GenSim。 对于这个例子,让我们再次使用Brown语料库。它有15个文本类别的文档,如“冒险”、“编辑”、“新闻”等。在运行我们的NLTK预处理例程之后,我们可以开始应用GenSim模型。
首先,我们创建一个将标识映射到唯一索引的字典。 Scailable WebAssembly部署:除了上述方法以外,还可以将拟合模型转换为WebAssembly(使用与Scailable提供的服务类似的服务),并部署.WASM二进制文件,其中仅包含在最小的WebAssembly运行时中进行预测所需的逻辑。 自动生成的二进制文件将仅包含必要的逻辑函数和估计的参数。二进制文件可能部署在服务器上因此也类似地通过REST调用使用,但是,它可以兼容可用的运行时,它也几乎可以在任何边缘设备上运行。 显然,第一个部署过程接近数据科学家的"我们所知道的"。直接使用我们惯用的工具是非常方便的,并且在许多方面它都有效:我们可以使用对REST端点的调用来生成预测。第二种解决方案与我们的标准实践相距甚远,并且对于模型训练毫无用处(即,没有"WebAssembly软件包来训练模型……")。但是,我们仍然认为应该首选:第二种设置利用了训练和预测之间的差异,从而在几个方面使模型部署更好: 内存占用:上面两个选项中的第一个选项将需要至少75Mb的容器(要使容器变小需要大量的工程设计,使容器的大小接近1Gb更为常见)。在这种情况下,存储的模型本身很小(〜2Kb),因此容器占部署内存占用的最大块(请注意,例如大型神经网络可能不正确)。相反,WebAssembly运行时可以降至64Kb以下。 WebAssembly二进制本身本身大于存储的sklearn模型(〜50kb),但是现在它包含生成预测所必需的全部。因此,虽然第一个部署选项至少占用75Mb,但第二个部署选项占用不到0.1Mb。 速度:与高效的WebAssembly部署相比,消耗一个在Docker容器中运行的REST端点并不能在执行时间上取得优势,因为Docker容器启动了所有训练所需的东西。下面是一些针对不同模型的速度比较,但是,不必说,利用训练和预测之间的差异,并且仅仅将预测的基本需求投入生产,就可以通过一个数量级提高速度,从而生成这些预测。 因此,内存占用更小,执行速度更快。有几个原因;其中一个原因是,我们可能希望有效地部署模型,而不会在每次做出预测时浪费能源。但是,一个小的内存占用和快速的执行也是很吸引人的,因为这正是我们在将模型投入生产的边缘所需要的:好运部署你的Docker容器(例如,)在ESP32 MCU板上。使用WebAssembly,这是小菜一碟。
综上所述,你一定对WebAssembly十分感兴趣,那么看看这个代码吧,它包含了本文的所有内容 (编辑:甘孜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |