我们正在简化我们的产品提供,并已禁用文本分析平台的新帐户创建。2020年7月7日之前注册的用户不受影响。

文本分析平台-用户指南

欢迎来到艾连文本分析平台,简称TAP。使用TAP,您可以轻松地构建自定义自然语言处理模型,而无需离开浏览器,然后像任何其他API一样调用您的模型。

通过TAP,您可以利用AYLIEN的文本分析API的底层技术,并为您自己的特定用例构建工具,无论该用例是什么。因此,如果您有一个可以用文本分析简化的任务,但找不到合适的API,那么现在可以在TAP中轻松构建自己的API。

无论您是想根据团队最能回应的信息来对组织的传入消息进行分类,还是想为您的细分市场构建一个专门的情绪分析模型,TAP都是一个先进但易于使用的平台,您可以从该平台构建自己的自定义NLP解决方案。

从TAP开始

登录后,您可以从主页上进行TAP的交互式游览,或者您可以直接进入并开始构建您的第一个自定义模型。

构建一个准确的模型包括三个阶段:首先,您需要上传一个数据集,然后在该数据集上训练您的模型,最后测试您的模型的准确性。所有这些都是一个迭代的过程,所以在你测试了你的模型之后,你很可能会看到通过调整你的数据集和重新训练你的模型来提高精确度的地方。

数据集

为了构建自定义模型,您需要在相关的、标记的数据集上训练它。这个标记的数据由文档(如推文、电子邮件、评论——模型将在现实世界中分析的任何东西)组成,每个文档都附加了标签(您希望模型为现实世界的数据分配的任何标签)。在您的模型在您的数据集上训练之后,它将能够分析新数据,并根据从数据集学到的知识预测给它分配什么标签。

TAP简化了数据集构建过程,它允许您在TAP应用程序中收集标记数据,然后根据您的规范将其转换为数据集。这意味着您可以从一个源或多个源的组合构建数据集。

你可以从以下三个来源构建数据集:

  • 在CSV文件中上传带有标签的文本数据样本,
  • 将示例文本数据作为文本文件上传,并在TAP应用程序中标记这些数据,
  • 如果没有示例文本数据,可以利用TAP的知识库,这是一个包含数百万个标记文本文档的存储库。

您还可以分叉另一个TAP用户的数据集(如果他们已经公开了它),或者浏览市场,看看是否有适合您用例的数据集。

创建一个数据集

要开始构建你的数据集,点击创建数据集按钮,你可以在我的数据集页面和你的TAP主页上找到它。

这将带您进入创建数据集的设置阶段,在这里您可以选择是使用已准备好的CSV文件还是在TAP中创建新的数据集。
如果您已经在一个CSV文件中准备好了创建整个数据集所需的所有标记数据,则可以使用上传CSV按钮创建数据集。但您也可以从文本文件、TAP的知识库或三者的混合创建Dataset。如果您想通过这些方式创建数据集,请选择“创建新数据集”选项。这实际上将创建一个空的Dataset,您可以用来自其他来源的数据填充它。

无论此时选择哪个选项,TAP都允许您在任何时刻向数据集添加来自任何源的更多数据。

从CSV文件

TAP允许您从单个带标签的示例文本文档的CSV文件创建Dataset。在上传您的CSV文件时,您需要确保您的数据被正确地标记为正确的格式,这样TAP就可以轻松而有效地训练您的模型。您的CSV文件应该由一列收集的文本文档和一列希望Model与每个文档关联的标签组成。

点击上传CSV按钮并从计算机上选择CSV文件后,您会注意到正在运行的Jobs图标在嗡嗡作响,文件上传完成后会弹出一个窗口。当它发生时,单击Convert,这将带您到数据集预览页面,在那里您将能够看到数据的一些示例行。



你需要完成三个动作在“数据集预览”页面中:

  1. 您需要指定每一列的角色——它是文档、标签还是其他东西(属性)。注意,如果在CSV文件中包含标题行,仍然需要声明哪一列是文档,哪一列是标签——TAP将标题简单地视为另一行数据。



  2. 您需要声明数据的第一行是否是Header row(也就是说,它是否包含示例数据或列的标题)。



3.在“列数据类型”选项中,选择每列中的数据类型。确保Document和Label列选择了"String"(默认情况下将选择此类型)。

从文本文件

如果输入数据是单个文本文件的形式,也可以使用这些文件创建新的数据集,或添加到现有的数据集。由于文本文件不允许像CSV文件那样为文档标记,因此需要首先创建分类法并将文本文件上传到分类法中。

因此,要从TAP中的文本文件创建Dataset,只需为分类法中的每个标签创建一个文件夹,然后用与该标签对应的文本文档填充每个文件夹。例如,如果我们要构建一个带有“positive”和“negative”两个标签的数据集,我们将创建一个名为“positive”的文件夹和一个名为“negative”的文件夹。然后,我们将用包含积极文档的文本文件填充“积极”文件夹,用包含消极文档的文本文件填充“消极”文件夹。

要从文本文件开始创建数据集,请在“设置”页面上选择“创建新数据集”选项。在为数据集命名之后,您将被带到Build页面,在那里您的分类法显示为单个根文件夹。

要向分类法中添加标签,请选择文件夹并单击add a Label。这将允许您在这个标签/文件夹中创建标签/子文件夹,您应该用您希望对文档进行分类的标签来命名该文件夹。

构建分类法之后,可以通过单击页面的File upload部分的任意位置,将文本文件从计算机上上传到相应的子文件夹中。上传文本文件后,一旦上传了文本文件,就会在子文件夹中看到它们作为CSV文件。TAP已将它们转换为CSV文件,因为它已将子文件夹的标题作为标签添加到其中的每个文档。

在添加文件和文件夹之后,您可以添加、删除或重命名它们,所有操作都可以通过选择它们并单击分类法上面的按钮,或者右键单击每个文件或文件夹来完成。

您还可以预览和检查已上传的每个文件的详细信息,以确保每个节点包含正确的数据。选择一个文件,信息将出现在右侧,然后单击Preview file按钮查看文档和标签的示例。

从知识基础

如果您没有足够的数据来构建一个好的数据集,或者甚至您根本没有任何数据,您可以使用知识库来来源标记数据。知识库是TAP的数百万标记文本文档的存储库,您可以利用这些文档构建或添加到您的数据集。

在分类法中选择子文件夹创建数据集后,可以访问知识库。点击Launch Knowledge Base后,它将在弹出窗口中启动。

要搜索Knowledge Base,首先需要选择要搜索的文档存储库,因为每个源中的元数据和文档是不同的。你可以使用布尔表达式从多个参数中构建一个查询,所以搜索包含“Camera”和“Lens”但不包含“Canon”的Amazon评论将会读为:“Camera and Lens not Canon”。

通过单击位于搜索栏下方的这些参数,您可以使用其他参数构建搜索,具体取决于存储库。

一旦缩小了所需的结果范围,就可以挑选适合数据集的文档,或者为数据集的每个节点批量导入最多10,000个文档,然后可以预览数据集,以确保其有序。

分支的数据集

如果您不想从头创建自己的数据集,您可以从另一个用户派生一个数据集,前提是该用户已将数据集公开。分支数据集允许您将数据集的副本复制到您的TAP帐户,从中可以添加或删除文件和节点,或添加、删除或更改这些节点中的数据。

要分叉数据集,请在。中找到要开始处理的数据集市场,单击数据集的名称,然后单击屏幕右上角的Fork按钮。

为训练和测试模型准备数据集

为了构建一个模型,我们需要在标记的数据上训练它,但是在这个训练期之后,我们还需要在一些其他类似的数据上测试模型。机器学习中评估模型的一种常见做法是,在整个标记数据集(通常称为“测试集”)中留出一部分模型在训练过程中永远不会看到的内容。一旦对标记数据集的训练部分进行了训练,就会要求模型对测试集中发现的数据进行预测。然后将这些预测与测试集中的已知标签进行比较,并用于计算训练过的模型的性能。

TAP允许您在指定训练和测试数据的两种方法中进行选择:集合和拆分。使用集合,您可以手动指定数据集的哪些部分应该用于训练和测试,而使用TAP的Splitter,您可以让TAP随机选择数据的一个子集作为您的测试集,并使用其余的部分进行训练。

集合

将集合分配给数据集中的文档有两种方法。

如果你上传的是一个CSV文件,你可以添加一个列,由“测试”或“培训”标签组成,用“测试”标记你想保留测试的每个例子。上传CSV文件后,在“数据集预览”页面上选择此列的“集合”属性。

如果您正在使用文本文件或从知识库导入数据,则需要有一个(或多个)包含测试示例而不包含训练示例的文件。将该文件上传到Dataset并在分类法中单击它之后,就可以在Collection选项中选择Test。

将你的数据集

拆分数据集将根据指定的比率随机选择训练测试数据。因此,如果您选择90%的分割率,TAP将随机选择数据集中所有标签的10%的文档,并保留它们以进行测试。

TAP通过直观的滑块功能可以轻松地选择拆分比率,该功能显示在每个比率下将使用多少文档进行训练和测试。一旦你对比例感到满意,点击拆分数据集和TAP将带你进入下一个阶段-训练你的模型。

我应该把我的数据集分成什么比例?

为数据集选择合适的训练:测试分割比率取决于几个不同的因素。如果您想要尽可能精确的模型,建议使用更高的训练:测试比率(例如,90%的训练数据对10%的测试数据)。但是如果你想看看你的模型在多大程度上可以推广到现实世界的数据,你应该指定一个较低的训练:测试比率(大约50:50)。

然而,在选择你的训练时要记住一个重要的因素:测试比率是你的数据集的大小。如果您有一个小数据集(几千个文档或更少),使用一个低的训练:测试比率可能会使您的模型没有足够的数据进行适当的训练,这将产生一个不准确的模型。

这里使用的一个有用的测试是测试一个模型在按每个比率训练时的性能——首先训练一个训练:测试比率高的模型,然后训练一个比率低的模型。如果这些模型实现了相当的性能,您就可以说您拥有了一个精确的模型,它可以很好地推广到现实世界的数据。

模型

在自然语言处理中,我们利用机器学习技术来构建统计模型,模拟我们理解和使用语言的能力。这些模型经常根据手头的任务对大量的文本数据进行“训练”,这些数据被标记为标签。训练过程包括构建训练示例的抽象表示,并将它们映射到指定的标签,然后使用这些学习到的映射来预测新的、未见文档的标签。

TAP允许您利用这种自然语言处理(Natural Language Processing)技术来构建自定义语言分析模型,并在您正在构建的任何东西中使用它们,所有这些都是从浏览器内部进行的。

在训练了自己的NLP模型之后,可以通过将其作为基于web的API公开,在应用程序中使用它。

训练模型

在构建数据集并为训练做好准备之后,训练模型的第一步是为训练过程选择参数。参数决定了您的模型将如何被训练,并且可以决定您的模型的性能和整体质量。

这些参数可以非常高级,所以TAP用户可以从简化的参数设置中进行选择,这些参数设置针对较短的社交媒体风格的内容或较长的新闻文章风格的内容进行了优化。高级用户可手动选择各参数的设置。

TAP允许您调整一些常见的训练参数:

语法的大小

在分析示例文档时,您的Model将把所有文本分解为字母和单词的字符串,并像这样分析文本数据——尽管人类读者可能无法理解这些数据。这允许您的模型更加熟悉数据中的模式。

通过设置每个字符串(gram)中的字符数(N),用户可以在更多的短字符串或更少的长字符串上训练他们的模型。

较长的n-grams允许模型捕获较长的单词序列,例如多单词表达式。这在构建区分主题的模型时很有帮助。例如,当n克大小为1时,“Real Madrid”将被模型视为两个相当常见且没有区别的单词,而当n克大小为2时,模型将看到整个短语,这非常具有体育类的特征。

删除stopwords

“Stopwords”指的是没有太多含义的常用词,比如“the”、“a”和“and”。删除停止词意味着你的模型将看不到这些词,并将在一个更干净的数据集上进行训练。TAP基于一个手动策划的、全面的列表来识别停止词,但是由于定义停止词的内容可能因上下文而异,TAP用户可以根据特定的行业或小众用例修改这个列表。

由于像tweet这样较短的文档包含如此少的文本,所以在训练Model时最好不要排除。这是因为在较短的文档中,stopwords通常包含有用的信息,也因为剩下的文本数据很少。

将所有文本转换为小写

通过降低文档中所有字母的大小写,您可以规范化语料库中单词的不同大写方式(例如,将“Books”和“Books”转换为“Books”),从而使您的模型更容易地了解这些单词,而不管它们是如何书写的。

  • 设置最大词汇表大小:使用最大词汇表大小参数,可以限制模型在分析文档时考虑的惟一单词的总数。这个限制应用于语料库中所有单词的频率排序列表,这意味着如果将其设置为5000,它将只从语料库中选择5000个最频繁使用的单词来训练Model。
  • 设置训练周期的数量:训练周期表示模型将遍历整个训练数据的次数。训练次数越多,Model的性能越好。

设置学习率

在训练Model时,它将分析示例文档并学习语言数据中的模式。学习率指的是模型学习这些模式的速度——学习率越小,模型的进度越慢,但越准确;学习率越大,模型的进度越快,但最终可能会对数据产生严重的误解。

如果有噪声数据,最好设置较小的学习率,因为您的模型可能需要一些时间来识别数据中的正确模式。

评估模型

训练模型是一个迭代过程,在此过程中测试新训练的模型,使用这些测试的结果通知要对数据集进行的更新,然后在此数据集上重新训练模型。这个过程将继续,直到您对模型的准确性感到满意为止。

在数据集中,您已经将标记的数据分离为训练数据和测试数据,可以通过手动选择用于测试的数据,也可以通过随机分离数据集。单击训练模型后,TAP将在数据集上训练模型,然后通过向模型显示已分配为测试数据的数据、收集其预测并将其与测试集中的实际标签进行比较来测试模型。

当您的模型完成训练和测试时,您将看到评估结果页面,在这里您将看到模型对测试数据样本的预测结果。

评估结果页面由四个部分组成,每个部分都有关于您的模型准确性的统计数据:

  • 模型的性能
  • 混淆矩阵
  • 样本的预测
  • 生活的评价

模型的性能

模型性能表向您展示了您的模型在三个主要指标上的表现:

精度

准确性是精确预测除以不准确预测的简单度量。如果您的文档均匀地分布在不同的标签上,并且您需要快速度量模型的准确性,但如果您需要关于模型性能的详细信息,则需要查看Precision、Recall和F1分数,那么这是非常有用的。

精度

精确度分数显示了您的模型所做预测的准确性。更具体地说,它衡量的是它做出的预测中有多少是正确的。

想象一下,例如,我们在1000条我们知道是正面的推文和1000条我们知道是负面的推文上测试我们的模型。有时我们的模型会将积极的推文归类为“积极的”,将消极的推文归类为“消极的”。但它也会犯错误,把积极的推文归类为“消极的”,反之亦然。精确得分衡量的是,在所有“积极”的预测中,有多少是真正积极的。换句话说,它衡量的是它做出的预测有多精确。

精确度是在0到1的范围内测量的,0表示完全不准确,1表示完全准确。

回忆

召回分数显示了您的模型的准确预测有多全面。再一次,想象我们有1000条积极的推文和1000条消极的推文。记住,我们的模型会做出一些正确的预测,也会做出一些错误的预测。召回评分衡量的是我们的模型正确识别为该标签的每个标签的百分比,以及它遗漏的百分比。换句话说,在我们数据集中的所有积极的推文中,模型回忆为“积极的”有多少?

在0到1的范围内,0.2分表示模型只将20%的积极推文归类为“积极”,而0.9分表示所有积极推文中,我们的分类器将90%的积极推文归类为“积极”。

F1

F1分数是Precision和Recall分数的加权平均值。我们之所以包含这一点,是因为同时测量两者是很重要的——如果你的模型非常精确,但召回率非常低,这是没有好处的。换句话说,如果您的模型做了一个预测并预测了正确的分类,它将有一个完美的预测得分为1(意味着它是完全准确的),但可能有数百个具有相同标签的文档没有正确预测,因此召回得分将很糟糕。

例如,在情绪分析模型中,精确度分数是这样问的:“在所有积极的预测中,有多少是实际积极的?”回忆评分是这样的:“在所有正面的文档中,我的模型识别出多少是正面的?”F1分数将这两个问题合并为一个分数。

此外,F1分数还考虑了文档在标签间的分布,将更多的权重分配给具有较少训练数据样本的标签分类。因此,如果您的模型在预测这些标签中有问题,您的F1分数将比Accuracy分数更清楚地显示这一点。

混淆矩阵

混淆矩阵是一种简单的方法,用于检查您的模型如何预测每个标签附加到每个真实标签上的数据。这允许您快速发现您的模型难以识别或与其他标签区分的标签。

“真实标签”指的是你附加到数据上的标签,而“预测标签”指的是你的模型预测附加到数据上的标签。在混淆矩阵中,真实标签和预测标签形成坐标轴,并创建对应于每个轴的单元格。如果将每行中的每个单元格的值加在一起,就会得到测试数据集中文档的总数。

生成的单元格允许您查看模型在预测每个标签时的准确性。例如,下面是99个文档的测试数据集的混淆矩阵,这些文档被标记为“正面”或“负面”。左上角的单元格显示了测试数据中有多少样本被标记为“阴性”,而我们的模型预测为“阴性”。下面您将看到来自我们的测试数据的样本数量,我们的模型预测为“阳性”,等等。

样本的预测

在评估结果页面的样本预测部分,您可以看到您的模型对来自数据集的测试数据样本所做的预测。

样本预测实际上是混淆矩阵中相同评估的更细粒度的视图。您可以看到真实的和预测的标签,并看到计算机在哪些地方做出了不准确的预测,但您还可以看到这些标签所对应的文档,让您自己看到您的模型的预测是基于什么。

生活的评价

使用Live Evaluation小部件,您可以输入任何文本,并接收您的Model对应该给它分配哪个标签的预测。这允许您尝试模型将在现实世界中接收的输入类型,并查看它预测标签的效果。

这里一个非常有用的工具是解释结果功能。使用此工具,您可以更好地了解在进行预测时,模型赋予输入文本的哪些特征更高的权重。

这允许您确保您的模型选取了正确的特征,例如,不会对训练数据中可能存在的无意义但具有高度指示性的特征进行过拟合。

例如,Text with高亮显示的单词部分返回您的示例输入,以及根据它们对预测输入标签的模型的贡献大小高亮显示的单词。

解释部分还包括从输入文本中图形化显示模型赋予最重权重的单词——也就是说,模型在做出预测时认为最重要的单词(或单词的组合)。

提高准确性

你的模型的准确性取决于一个普遍的原则:你的模型需要训练大量的高质量的,相关的数据分布在你的数据集中的所有标签。

如果您没有足够的标记数据,您的模型将没有足够的信息来识别该数据中的模式,因此当您测试模型时,它将无法识别测试数据中的相同模式。当您测试您的模型时,您将看到您的模型对这些标签的识别能力很差。

所谓高质量数据,我们指的是包含足够多的区分特征的数据,您的模型可以使用这些特征来识别标签之间的差异。您应该能够轻松地区分不同标签下的数据之间的区别。如果您不能这样做,您的模型也将很难区分它们之间的区别。

部署模型

一旦对模型的准确性感到满意,就可以将模型部署到生产环境中,并像调用任何其他API一样调用它。当您训练和测试您的模型时,它驻留在TAP的沙盒中,在那里没有其他软件可以访问它,所以您可以构建和测试您的模型,直到您对它的准确性感到满意。部署您的模型意味着它可以从TAP应用程序外部访问,并且您不能调整或重新训练您的模型,直到您将其移回沙盒。

您可以在TAP上存储多个模型,而无需部署它们。您将能够在您的模型页面上浏览所有存储的模型。您可以同时生产的型号的数量取决于您的定价计划。

使用市场上

使用公共数据集和模型

在TAP中,可以使用AYLIEN团队和其他TAP用户构建的数据集和模型,前提是这些资源已经公开。您可以通过单击Explore选项卡查看可用资源的列表,并将数据集或模型分叉到您自己的帐户。

发布您的数据集和模型到市场

在TAP中,可以与其他用户共享模型。

标签

为了使您的模型能够被其他用户发现,您可以通过单击模型页面上的Manage tags按钮向其添加相关的标签。

利用API

一旦部署了模型,就可以像调用任何其他API一样调用它。您构建的每个模型都有自己的端点,作为用户,您将拥有自己的API密钥。

你的API密匙

注册TAP后,您将收到一个API密钥,您可以在用户名下拉菜单的API密钥部分看到它。

从应用程序调用模型

要从应用程序调用模型,需要在代码中包含模型的端点和API键。这些细节可以查看每个模型的页面:

HTTP请求

您的模型充当RESTful API,将支持GET和POST请求。

  • 得到https://api.tap.www.daredevilro.net/v1/models/ model_id
  • 文章https://api.tap.www.daredevilro.net/v1/models/ model_id

一定要更换: model_id使用您打算向其发出请求的模型的ID。

旋度- x帖子- h“x-aylien-tap-application-key: YOUR_API_KEY”——data-urlencode“文本=你的文本”https://api.tap.www.daredevilro.net/v1/models/:model_id
进口请求model_id“YOUR_MODEL_ID”url“https://api.tap.www.daredevilro.net/v1/models/”+model_id有效载荷“文本=你的文本在这里。”“x-aylien-tap-application-key”“YOUR_API_KEY”“内容类型”“应用程序/ x-www-form-urlencoded”响应请求请求“职位”url数据有效载荷打印响应文本
需要“uri”需要“net/http”urlURI“https://api.tap.www.daredevilro.net/v1/models/YOUR_MODEL_ID”http::HTTPurl宿主url港口httpuse_ssl真正的httpverify_modeOpenSSL::SSL::VERIFY_NONE请求::HTTP::帖子url请求“x-aylien-tap-application-key”“YOUR_API_KEY”请求“内容类型”“应用程序/ x-www-form-urlencoded”请求身体“文本=你的文本在这里。”响应http请求请求响应read_body
var客户端RestClient“https://api.tap.www.daredevilro.net/v1/models/YOUR_MODEL_ID”);var请求RestRequest方法帖子);请求AddHeader“内容类型”“应用程序/ x-www-form-urlencoded”);请求AddHeader“x-aylien-tap-application-key”“YOUR_API_KEY”);请求AddParameter“应用程序/ x-www-form-urlencoded”“文本=你的文本在这里。”ParameterTypeRequestBody);IRestResponse响应客户端执行请求);
var请求需要请求);var选项方法帖子urlhttps://api.tap.www.daredevilro.net/v1/models/YOUR_MODEL_ID内容类型应用程序/ x-www-form-urlencodedx-aylien-tap-application-keyYOUR_API_KEY},形式文本你的文本。};请求选项函数错误响应身体如果错误错误错误);控制台日志身体);});
<?php美元的请求HttpRequest();美元的请求->setUrl“https://api.tap.www.daredevilro.net/v1/models/YOUR_MODEL_ID”);美元的请求->setMethodHTTP_METH_POST);美元的请求->setheader数组“内容类型”= >“应用程序/ x-www-form-urlencoded”“x-aylien-tap-application-key”= >“YOUR_API_KEY”));美元的请求->setContentType“应用程序/ x-www-form-urlencoded”);美元的请求->setPostFields数组“文本”= >“你的文本在这里。”));试一试美元的反应美元的请求->发送();回声美元的反应->getBody();textbox美元的前女友回声美元的前女友? >
HttpResponse<字符串>响应Unirest帖子“https://api.tap.www.daredevilro.net/v1/models/YOUR_MODEL_ID”“x-aylien-tap-application-key”“YOUR_API_KEY”“内容类型”“应用程序/ x-www-form-urlencoded”身体“文本=你的文本在这里。”asString结尾();
主要进口“fmt”“弦”"net/http”“io / ioutil”函数主要()url: =“https://api.tap.www.daredevilro.net/v1/models/YOUR_MODEL_ID”有效载荷: =字符串NewReader“文本=你的文本在这里。”要求的事情_: =httpNewRequest“职位”url有效载荷要求的事情添加“x-aylien-tap-application-key”“YOUR_API_KEY”要求的事情添加“内容类型”“应用程序/ x-www-form-urlencoded”res_: =httpDefaultClient要求的事情推迟res身体关闭()身体_: =ioutilReadAllres身体fmtPrintlnresfmtPrintln字符串身体))

身份验证

在请求的头部以以下格式提供TAP与API密钥:

“x-aylien-tap-application-key”:“YOUR_API_KEY”

参数

TAP中的每个模型都可以有自己的特定参数,您应该参考Model页面来检索这些参数。下面我们展示了许多TAP模型公开的默认参数:

参数名称 数据类型 描述
文本 字符串 文本分析
url 字符串 URL来分析
top_k 整数 返回的预测数量(默认为1,可以与数据集中的标签数量一样大)

请注意,对于某些模型,请求参数可能是不同的,因此最好参考模型页面的Usage Details部分来理解它的请求格式。

返回JSON

在查询时,您的自定义分类模型将返回一个JSON对象,其中包含预测的标签和这个预测的置信度分数。请注意,响应格式对于某些模型可能是不同的,因此最好参考模型页面的Usage Details部分来理解其响应格式。

“文本”约翰是一个伟大的足球运动员。“版本”“1.0”“解释”""“类别”[{“基线”0.0“信心”0.9“棒子”0.0“id”“w52c38jm-fd29-8t1h-ad31-56bw2300fl9c”“标签”“运动§”})

账单&分析

计划&账单

目前TAP处于公测阶段,所以我们提供了免费计划,您可以免费构建和部署一个模型。升级到我们的启动计划将允许您将4个模型部署到生产环境中,并使您对API的调用数量翻倍。

在测试期间,订阅计划的任何更改将至少提前一个月通知您。

计费设置

在TAP中管理您的账单设置很容易。通过单击用户名下方下拉菜单中的支付方法,然后单击Add Payment Method,您可以设置和管理您的信用卡支付。

您可以在“我的发票”下访问您的TAP帐户收到的每一张发票。

监控您的使用

Analytics页面提供了随时间推移对每个模型的调用的详细分解。您可能会注意到,您的Models是在未部署的情况下被调用的——请记住,在实时评估期间进行的调用将计入您的使用。

常见的工作流

从谷歌电子表格调用TAP模型

要从谷歌工作表调用TAP模型,只需通过导航到将以下脚本添加到工作表工具>脚本编辑器并复制粘贴以下代码片段来替换内容Code.gs.别忘了更换YOUR_API_KEY在脚本的顶部与你的API键从TAP:

函数getAppKey()返回YOUR_API_KEY函数getApiUrlmodel_id返回https://api.tap.www.daredevilro.net/v1/models/+model_id函数validateURL价值返回/ ^https?| ftp\ \ / (((((无所不包的|\ d|-|\。~ | _ | |[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])|(\ df] {2})|美元\&’\ \ \ * \ +, =|:* @)?(((\ d|1 - 9] \ d| 1\ \ d| 20 - 4] \ d| 250 - 5\])。(\ d|1 - 9] \ d| 1\ \ d| 20 - 4] \ d| 250 - 5\])。(\ d|1 - 9] \ d| 1\ \ d| 20 - 4] \ d| 250 - 5\])。(\ d|1 - 9] \ d| 1\ \ d| 20 - 4] \ d| 250 - 5)))|((((无所不包的|\ d|[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])|(((无所不包的|\ d|[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF)) ((无所不包的|\ d|-|\。~ | _ | |[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])([无所不包的|\ d|[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF\])))。)+(((无所不包的|[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])|(((无所不包的|[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF)) ((无所不包的|\ d|-|\。~ | _ | |[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])([无所不包的|[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF\])))。?)(\ d)?)(\/((([无所不包的|\ d|-|\。~ | _ | |[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])|(\ df] {2})|美元\&’\ \ \ * \ +, =|: | @+(\ / (((无所不包的|\ d|-|\。~ | _ | |[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])|(\ df] {2})|美元\&’\ \ \ * \ +, =|: | @) ? ? (\ ?((((无所不包的|\ d|-|\。~ | _ | |[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])|(\ df] {2})|美元\&’\ \ \ * \ +, =|: | @|[\ uE000 -\ uF8FF|\ /|\ ?))?(\#((([无所不包的|\ d|-|\。~ | _ | |[\ u00 a0 -\ uD7FF\ uF900 -\ uFDCF\ uFDF0 -\ uFFEF])|(\ df] {2})|美元\&’\ \ \ * \ +, =|: | @|\ /|\ ?))?美元/我测验价值);函数detect_type文本如果validateURL文本)) {返回url其他的返回文本函数callTap参数个数var有效载荷{};varmaxTries3.如果参数个数价值||参数个数价值].修剪()==返回[];参数个数价值参数个数价值].修剪();var类型detect_type参数个数价值]);如果类型==url有效载荷url参数个数价值其他的有效载荷文本参数个数价值有效载荷top_k方法用于参数个数top_k||1).toString();var结果var0varcatch_count0真正的varapi_urlgetApiUrl参数个数model_id]);var选项方法帖子x-aylien-tap-application-keygetAppKey()},有效载荷有效载荷muteHttpExceptions真正的};结果UrlFetchApp获取api_url选项);varstatus_code结果getResponseCode();如果status_code= = !200公用事业公司睡眠5000+1));如果++==maxTriesTAP中出现错误其他的打破var响应JSON解析结果);返回响应类别/** *返回来自文本或URL的TAP模型的分析结果。* * @param {text} value要分析的文本或URL(链接)* @param {text} model_id要运行的TAP模型的ID * @param {number} top_k要返回的预测数量* @return来自TAP的分析结果为' label '和' confidence '(2列)* @customfunction */函数TAPResults价值model_idtop_k如果价值地图返回价值地图TAPResults);其他的var响应callTap({价值价值model_idmodel_idtop_ktop_k});var类别[];varj0j<响应长度j++类别响应j].标签);类别响应j].信心);返回类别];

将上面的代码片段添加到Code.gs保存文件后,你可以在电子表格中使用如下公式调用脚本:

= TAPResults (A1,“YOUR_MODEL_ID”,1)

其中A1是包含您要分析的文本或URL的单元格,而“YOUR_MODEL_ID”是您的TAP模型的ID,这是后面的位https://api.tap.www.daredevilro.net/v1/models/在你的模型的端点(例如:3 baf3bc0 - c0bb - 4503 bdd5 d22341ff209f).在尝试从谷歌表调用模型之前,请确保已部署模型。

资源

常见问题

什么是文本分析平台(TAP)?文本分析平台是构建高级自然语言处理工具的一种简单方法。它允许您构建自定义语言模型,您可以使用该模型生成您心中的解决方案所需的见解。TAP允许您轻松地构建针对您的用例定制的自己的API。

如果我正在使用文本或新闻API,为什么我应该考虑使用TAP ?来自任何供应商的开箱即用的api都不是为特定的任何人优化的,它们是为每个人设计的。你可能会发现自己属于以下两类:

  • 您无法从当前使用的API获得您想要的结果,您需要为您的解决方案提供一个经过微调的模型。

  • 没有一个API可以直接解决您所面临的问题,因此您不能正确地利用NLP来生成见解。

TAP是如何工作的?TAP允许您在标记的数据上训练自定义模型,这些数据是您想要使用它的数据的一个很好的示例。在训练过程中,您的新模型使用AYLIEN的深度学习支持的NLP来识别数据集中的模式。当您完成对模型的训练后,您可以将它部署到您正在构建的任何解决方案中,它将在新数据中识别相同的模式。

如何使用TAP创建自定义NLP API?创建自定义NLP API包含三个步骤。首先,您将收集样例数据,并使用您希望模型使用的标签对其进行标记。其次,让TAP在此数据集上训练模型,并重复这前两个步骤,直到您对模型的准确性感到满意。这涉及到调整你的数据集,使你的模型理解足够准确地预测每个标签。最后,单击Deploy并将模型的端点粘贴到代码中。在此之后,您可以像任何其他API一样调用自定义模型。

我如何注册开始使用TAP?开始使用TAP是很容易的,您可以免费构建和测试一个模型——您只需要在部署您的模型之后转移到付费计划。

TAP的定价是多少?TAP的定价是基于订阅的,每个订阅层允许您一次部署不同数量的模型。您可以免费构建、测试和存储任意数量的模型。TAP目前处于公测阶段,所以我们提供了两种订阅计划:

  • 免费计划允许您免费部署模型。
  • 初学者计划(€49.99/月)允许你一次部署最多四个模型,并提供更高的费率限制。

如果您想一次部署四个以上的模型,请与sales@www.daredevilro.net

术语表

API密匙

API Key是一个由32个字母和数字组成的字符串,它可以让我们的服务器识别你,并让你使用API。作为AYLIEN用户,您将收到创建的每个模型的API Key,然后将其插入到代码中以访问该模型。您可以通过单击TAP站点右上角的用户名并从下拉菜单中选择API Key选项来查找API Key。

布尔搜索

布尔搜索是一次搜索多个关键字或参数。该搜索是通过在查询中使用“AND”、“NOT”和“OR”等操作符来执行的。这些操作符扩展或改进搜索结果。AND和NOT查询允许您通过排除概念或使搜索词更详细来改进搜索,而or查询通过包含更广泛的结果来扩展搜索。

例如,这是布尔搜索在TAP知识库中的工作原理:

  • "camera AND lens," =同时包含"camera"和"lens "的文档。
  • "camera NOT lens" =包含"camera"但不包含"lens "的文档。
  • "camera OR lens" =包含"camera"和"lens "的文档。

分类

文本分类是指自动化语言模型如何根据经过训练的分类法对文档进行分类。这可能包括对新闻报道的主题进行分类或对评论的情绪进行分类。当模型对文档进行分类时,它是在预测给文本数据分配什么标签,比如给经常提到体育的报道分配“体育”标签,或者给包含积极词汇的评论分配“积极”标签。该模型的预测是基于它在过程中所了解到的信息培训

使用TAP,用户决定给数据分配哪些标签,并训练语言模型来理解他们所处理的文本,从而允许无限的应用程序。例如,他们可以对收到的通信进行分类,并将其发送给正确的工作人员,而不是按主题对新闻报道进行分类。

集合

在上传CSV文件以创建数据集并训练模型之前,还需要精确地定义模型将在哪些行上进行训练以及将在哪些行上进行测试。这个过程可以通过分割数据自动执行,或者在本例中手动执行,将数据分割为“训练”或“测试”部分。

  • 训练:“训练”标签只是告诉你的模型对这些行进行训练,而忽略其他数据。
  • Test:“Test”标签告诉您的模型要忽略哪些文档,直到它被训练,这时它将尝试预测附加到这个测试集合中的文档的标签。

混淆矩阵

混淆矩阵显示了你的模型在预测每个类别的每个标签时的准确性。例如,如果用五个标签对训练数据进行分类:“a”、“b”、“c”、“d”和“e”,那么您的模型就可以用这五个标签中的任何一个对每个数据点进行分类。在训练和测试模型之后,混淆矩阵会显示有多少文档被标记为“a”而模型正确地标记为“a”,以及有多少文档被标记为“b”而模型预测为“a”,以此类推。

混淆矩阵本质上是一个非常详细的准确性评分,它以网格的形式呈现给你,这样你就可以一次清楚地看到所有的数据。查看这些数据将帮助您识别模型正在犯的常见错误。

CSV文件

逗号分隔值文件是一种用逗号分隔值(如文本或数字)的文件类型。这允许计算机轻松地将数据排列成行,然后我们可以将其视为电子表格,并一次分析大量的条目。

数据集

在TAP中,数据集是文本文档的集合,每个文本文档都有一个标签,用户可以在这些文档上训练新的语言模型。TAP允许用户以CSV格式上传自己的数据集,或者使用知识库创建自己的数据集。

部署模型

在您训练了您的模型之后,部署它仅仅意味着将它从生产阶段(在那里您构建、训练和测试您的模型)转移到部署阶段(在那里您可以从您正在构建的任何解决方案访问它)。您的模型仍然在云中,唯一的区别是您现在可以像任何其他API一样调用您的模型,使用您已经收到的该模型的API键。

分叉

在TAP中,用户可以分叉其他用户的模型或数据集(如果它已经公开):这意味着通过单击fork按钮,您可以将该数据集复制到您自己的TAP帐户中供自己使用,而不影响原始数据集。

F1

F1分数是Precision和Recall分数的加权平均值。我们之所以包含这一点,是因为同时测量两者是很重要的——如果你的模型非常精确,但召回率非常低,这是没有好处的。换句话说,如果你的模型做了一个预测并预测了正确的分类,它将有一个完美的预测分数1(意味着它是完全准确的),但可能有数百个其他的数据点它没有预测,所以召回分数将是糟糕的。回忆评分衡量模型准确预测的全面程度,并与预测过程中所犯错误的数量相互参照。

例如,在情绪分析模型中,精确度分数是这样问的:“在所有积极的预测中,有多少是实际积极的?”回忆评分是这样的:“在所有正面的文档中,我的模型识别出多少是正面的?”

F1分数是两个分数的加权平均值,以便在一个分数中为您提供一个快速但准确的度量。

Hyperparameters

在训练模型时,超参数精确指定如何在所训练的数据集上训练模型。它们是模型将用于识别数据中的模式的特定方法,TAP用户可以在“训练模型”页面的高级设置选项卡中确定这些方法。

这些参数可能相当高级,因此用户还可以从两个预先设置的超参数中选择一个,这两个超参数针对较长的新闻内容和较短的社交媒体内容进行了优化。

迭代

迭代指的是重复某些步骤以改进设计的设计过程,通常基于来自测试的证据。迭代过程不是在一开始就计划开发的每个阶段,而是包括设计测试,并允许基于这些测试的结果更改设计。这个过程在构建语言模型时工作得很好,因为它允许用户改进他们的模型并训练它产生最准确的预测。

知识库

在TAP中,我们的知识库是一个包含数亿个文档的数据库,我们用标签对这些文档进行了标记,以便您可以在这些文档上训练模型。这些文件来自不同的来源,并带有不同的标签。它们包括我们的新闻API收集的最近的新闻文章,来自纽约时报的历史新闻文章,来自维基百科的百科词条,以及来自亚马逊的产品评论。这些来源中的每个文档都包含由人生成的文本,我们用与文本相关的标记标记了每段文本。

例如,有超过8000万的亚马逊产品评论包含评论的文本,每条评论都有标签,比如评论者留下的评级(从1星到5星)。由此,你可以用一星的评论来训练模型识别负面情绪,用五星的评论来训练模型识别积极情绪。您还可以搜索关于特定主题的文档,以训练模型识别关于该主题的文本。

标签

在处理数据时,标签是我们或我们的语言模型分配给单个数据块的标记。例如,用户可以将关于足球的文档标记为“football”,或将积极的Tweet标记为“positive”。在训练过程中,模型分析与每个标签相关联的数据,在部署模型之后,它将根据所学到的内容将其中一个标签分配给新数据。

模型

自定义模型是一种工具,用户可以使用它从文本内容中提取见解。TAP允许用户轻松地构建自己的模型,以准确地提取与他们的需求相关的内容。在TAP中,用户通过使用预先标记了相关标签的数据来训练模型,并测试它在新数据上预测这些标签的准确性。当用户对模型的准确性感到满意时,他们可以使用该模型用训练过的用于分类的标签为新文本标记。这允许用户自动分析任何类型的文档,并提取已告知模型相关的信息。

模型状态

  • 停止(sandbox):此状态消息报告您的模型已停止。
  • 没有准备好(sandbox):当您的模型正在接受训练时,将显示此状态消息。此时,您的模型正在使用AYLIEN的技术来分析训练数据。
  • 运行(sandbox):此状态表明您的模型处于沙盒阶段,但目前没有被训练。
  • 运行(生产):在您完成对模型的训练并部署它之后,此状态将显示为绿色,以显示您的模型已经为实际数据做好了准备。

节点

节点类似于包含某种类型数据的文件夹。附加到节点的所有数据文件都包含定义该节点的标签,就像标记为“football”的文件夹中的文件将包含关于足球的文档。就像子文件夹可以存在于另一个文件夹中一样,节点可以在结构化关系中链接到另一个节点。

参数

参数确定查询或调查的范围。例如,如果你在我们的新闻API中搜索“唐纳德·特朗普”,它会返回所有关于唐纳德·特朗普的新闻。然而,如果你将语言参数设置为"language[]=English",它将忽略所有非英语语言的文章。这是因为参数定义了进行搜索的范围。

精度

在测试您的模型时,精确度分数显示了您的模型所做预测的准确性。更具体地说,它衡量的是它做出的预测中有多少是正确的。

想象一下,例如,我们在1000条我们知道是正面的推文和1000条我们知道是负面的推文上测试我们的模型。大多数时候,我们的模型会把积极的推文归类为“积极的”,把消极的推文归类为“消极的”。但它也会犯错误,有时将积极的推文归类为“负面”,反之亦然。精确得分衡量的是,在所有“积极”的预测中,有多少是真正积极的。换句话说,它衡量的是它做出的预测有多精确。

精确度是在0到1的范围内测量的,0表示完全不准确,1表示完全准确。

回忆

当测试你的模型时,回忆评分显示你的准确预测有多全面。再一次,想象我们有1000条积极的推文和1000条消极的推文。大多数时候,我们的语言模型会将积极的推文归类为“积极的”,将消极的推文归类为“消极的”。但它也会犯错误,有时会把一些积极的推文归类为“消极”,把消极的推文归类为“积极”。回忆评分衡量的是,在我们已知的所有正面推文中,有多少条被模型归为“正面”?它漏了多少?换句话说,在所有积极的推文中,模型回忆起的是“积极”的有多少?

在0到1的范围内,0.2分表示模型没有将许多积极的推文归类为“积极”,而0.9分表示在所有积极的推文中,我们的分类器将90%的推文归类为“积极”。

运行作业

TAP上的Running Jobs页面显示了当前正在AYLIEN的远程存储上进行训练的模型。此时,您的模型正在分析您提供给它的训练数据。在训练任何模型时,屏幕右上角会有一个小通知。当培训工作完成后,您可以在My Models页面上访问您的模型。

沙盒

沙盒指的是TAP站点的部分,在这里用户可以开发模型,而无需将其部署到站点的该部分之外。这样,软件中的任何bug或错误都不会影响沙盒之外的任何东西,而且沙盒之外的任何数据或输入都不会干扰软件的开发。

情绪分析

情感分析模型通过主观性(一段文本是主观的还是客观的)和极性(如果是主观的,它表达的是积极的、消极的还是中性的情感)来预测文本片段的情感。TAP允许用户定制特定于自己领域的情绪分析模型,方法是使用与它将要分析的数据尽可能相似的数据对它们进行训练。

分裂

当您拆分数据集时,您将分配一定百分比的数据来训练模型,并保留剩余的数据,以便在训练后测试模型。这允许您在与训练数据尽可能相似的数据上测试模型,这意味着您的测试将给出关于模型准确性的最清晰的图像。

例如,如果您将数据分为90%的训练数据和10%的测试数据,那么您的模型将通过使用前90%的数据来学习文档和标签之间的关系,然后它将尝试预测剩下10%的标签。然后你可以回顾你的模型预测这10%的例子有多准确。

训练数据

训练数据就是你收集到的用来训练你的模型上。这些数据被标记——例如,带有积极语气的推文将被标记为“积极”,而带有消极语气的推文将被标记为“消极”。这些数据存储在CSV文件中,因此它看起来像一个电子表格,其中一个单元格将有一个积极的Tweet,旁边的单元格将显示“积极”。这允许您的模型分析推文并了解积极和消极的推文是什么样子的。当它完成训练后,你可以向它展示非机密推文,它会告诉你这是正面的还是负面的。

在TAP中,你可以带你自己标记的训练数据,或者你可以使用我们的知识库选择已为您标记的数据。