Cohere 教程:使用 Cohere 的文本分类器

Cohere 教程:使用 Cohere 的文本分类器

自然语言处理是计算机科学和语言学的一个领域,关注计算机与人类(自然)语言之间的交互。在最简单的形式中,NLP 是关于开发可以自动理解和产生人类语言的算法。NLP 的长期目标是创建可用于执行各种任务的人类语言计算模型。这些任务包括自动翻译、摘要、问答、信息提取等。NLP 研究是高度跨学科的,涉及语言学、认知科学、人工智能和计算机科学等领域的研究人员。

自然语言处理中使用了许多不同的方法,包括基于规则的方法、统计方法和神经计算方法。基于规则的方法通常基于 NLP 专家编写的手工规则。这些方法对于特定的任务可能非常有效,但它们通常在范围上受到限制,并且需要大量的努力来维护。统计方法基于使用大量数据来训练计算模型。然后可以使用这些模型自动执行各种 NLP 任务。神经网络是一种特别适合 NLP 任务的机器学习算法。神经网络已被用于为机器翻译和分类等任务创建最先进的模型。

💬公司:在这里

Co:here 是一个强大的神经网络,可以生成、嵌入和分类文本。在本教程中,我们将使用 Co:here 对描述进行分类。要使用 Co:here,您需要在 Co:here 上创建帐户并获取 API 密钥。

Cohere 教程:使用 Cohere 的文本分类器

我们将用 Python 编程,所以我们需要安装coherepip

pip install cohere

首先,我们必须实施cohere.Client. 在 Client 的参数中应该是您之前生成的 API 密钥和版本2021-11-08。我将创建该类CoHere,它将在接下来的步骤中派上用场。

class CoHere:    def __init__(self, api_key):        self.co = cohere.Client(f'{api_key}', '2021-11-08')        self.examples = []

💾 数据集

每个神经网络的主要部分是一个数据集。在本教程中,我将使用一个包含 10 个类的 1000 个描述的数据集。如果你想使用相同的,你可以在这里下载。

下载的数据集有 10 个文件夹,每个文件夹有 100 个files.txt带有描述。文件名是描述的标签,例如sport_3.txt.

在这个领域,任务是从文件中读取描述和标签,并创建数据,其中包含描述和标签作为数据的一个样本。Cohere分类器需要样本,其中每个样本都应该设计成一个列表[description, label]

示例加载路径

一开始,我们需要加载所有数据来做到这一点。我们创建函数load_examples。在此函数中,我们将使用三个外部库:

os.path进入包含数据的文件夹。代码在 python 的路径中执行file.py。这是一个内部库,所以我们不需要安装它。

numpy这个库对于处理数组很有用。在本教程中,我们将使用它来生成随机数。你必须通过 pip 安装这个库pip install numpy

glob帮助我们读取所有文件和文件夹名称。这是一个外部库,因此需要安装 – pip install glob.

下载的数据集应解压缩到文件夹中data。通过os.path.join我们可以获得文件夹的通用路径。

folders_path = os.path.join('data', '*')

在 Windows 中,返回等于data\*.

然后我们可以使用glob方法获取所有文件夹的名称。

folders_name = glob(folders_path)

folders_name是一个列表,其中包含文件夹的窗口路径。在本教程中,这些是标签的名称。

['data\\business', 'data\\entertainment', 'data\\food', 'data\\graphics', 'data\\historical', 'data\\medical', 'data\\politics', 'data\\space', 'data\\sport', 'data\\technologie']

训练数据集的大小Co:here不能大于 50 个示例,每个类必须至少有 5 个示例。使用循环for我们可以获得每个文件的名称。整个函数看起来像这样:

import os.pathfrom glob import globimport numpy as npdef load_examples():    examples_path = []    folders_path = os.path.join('data', '*')    folders_name = glob(folders_path)    for folder in folders_name:        files_path = os.path.join(folder, '*')        files_name = glob(files_path)        for i in range(50 // len(folders_name)):            random_example = np.random.randint(0, len(files_name))            examples_path.append(files_name[random_example])    return examples_path

最后一个循环是随机取每个标签的 5 条路径并将它们附加到一个新列表中examples_path

载入描述

现在,我们必须创建一个训练集。为此,我们将使用load_examples(). 在每个路径中是一个类的名称,我们将使用它来创建示例。描述需要从文件中读取,长度不能太长,所以在本教程中,长度将等于100。listtexts是追加的list [descroption, class_name]。因此,返回就是那个列表。

def examples():    texts = []    examples_path = load_examples()    for path in examples_path:        class_name = path.split(os.sep)[1]        with open(path, 'r', encoding="utf8") as file:            text = file.read()[:100]            texts.append([text, class_name])    return texts

🔥 Co:here 分类器

我们回到CoHere课堂。我们必须添加两个方法——加载示例和对输入进行分类。

第一个很简单,co:here示例列表必须使用附加的cohere方法创建 – cohere.classify.Example

def list_of_examples(self):        for e in examples():            self.examples.append(Example(text=e[0], label=e[1]))

第二种方法是从分类方法cohere。该方法有几个参数,例如:

model模型的大小。

inputs要分类的数据列表。

examples带有示例的训练集列表

所有这些你都可以在这里找到。

在本教程中,该cohere方法将作为我们类的一个方法来实现CoHere。此方法的参数是要预测的描述列表。

def classify(self, inputs):        return self.co.classify(            model='medium',            inputs=inputs,            examples=self.examples        ).classifications

返回是inputprediction输入,和列表confidenceConfidence是每个类的似然列表。

cohere.Classification {        input:        prediction:         confidence: []}

CoHere班级

import coherefrom loadExamples import examplesfrom cohere.classify import Exampleclass CoHere:    def __init__(self, api_key):        self.co = cohere.Client(f'{api_key}', '2021-11-08')        self.examples = []    def list_of_examples(self):        for e in examples():            self.examples.append(Example(text=e[0], label=e[1]))    def classify(self, inputs):        return self.co.classify(            model='medium',            taskDescription='',            outputIndicator='',            inputs=inputs,            examples=self.examples        ).classifications

📈 Web 应用程序 – Streamlit

要创建一个应用程序,其中将有一个文本输入框和一个可能性显示,我们将使用Stramlit. 这是一个简单且非常有用的库。

安装

pip install streamlit

我们需要两个文本输入用于co:hereAPI 密钥和要预测的文本。

在 streamlit 的文档中我们可以找到方法:

st.header()在我们的应用程序上制作标题

st.test_input()发送文本请求

st.button()创建按钮

st.write()显示连贯模型的结果。

st.progress()显示进度条

st.column()拆分应用程序

st.header("Your personal text classifier - Co:here application")api_key = st.text_input("API Key:", type="password")        #text box for API key description = [st.text_input("Description:")]               #text box for text to predictcohere = CoHere(api_key)                                    #initialization CoHerecohere.list_of_examples()                                   #loading training set if st.button("Classify"):       here = cohere.classify(description)[0]                  #prediction     col1, col2 = st.columns(2)    for no, con in enumerate(here.confidence):              #display likelihood for each label        if no % 2 == 0:                                     # in two columns            col1.write(f"{con.label}: {np.round(con.confidence*100, 2)}%")            col1.progress(con.confidence)        else:            col2.write(f"{con.label}: {np.round(con.confidence * 100, 2)}%")            col2.progress(con.confidence)

运行 streamlit 应用程序使用命令

streamlit run name_of_your_file.py

创建的应用程序看起来像这样

Cohere 教程:使用 Cohere 的文本分类器

💡 结论

Co:here 模型不仅可以用于生成文本,还可以用于分类。在本教程中,我们能够使用小型数据集对短文本进行分类。10 个班级有 50 个例子。这足以将预测的可能性保持在较高水平。某些场景下的大数据集可能很难生成,因此 Co:here 模型可能是一个很好的解决方案。

确定您周围的问题并构建 cohere 应用程序来解决它。

请继续关注AIHubPro未来百科的教程!此代码的存储库可以在此处查看。

谢谢你!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站

声明:本站部分文章来源于网络,如有侵犯您的合法权益,请您即时与我们联系,我们将在第一时间处理。如需转载本站文章,请在转载时标明出处并保留原文链接,否则我们将保留追究法律责任的权利。

给TA打赏
共{{data.count}}人
人已打赏
AI教程

Midjourney AI 艺术教程:Midjourney 是一个交互式机器人,用于从文本生成图像。

2023-5-4 20:52:09

AI教程

Cohere 教程:使用 Cohere 构建产品描述生成器 API

2023-5-4 20:52:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧