07|文本聚类与摘要,让AI帮你做个总结
07|文本聚类与摘要,让AI帮你做个总结
讲述:徐文浩
时长09:17大小8.49M
基于 Embedding 向量进行文本聚类
使用提示语对文本进行总结
利用文本摘要支持无限轮数的聊天
小结
课后练习
本文介绍了如何利用OpenAI的GPT模型进行文本聚类和摘要生成。作者首先通过Embedding将文本转换为向量,然后使用K-Means算法进行文本聚类,并在20 newsgroups数据集上进行了实验,结果显示大部分聚类结果能够对应到原始新闻组的分类。接着,文章介绍了如何利用提示语(Prompt)进行文本的总结,展示了聚类结果的统计数据,说明了聚类效果还算不错。整个过程涉及到数据预处理、Embedding向量获取、聚类算法应用和结果分析。通过本文,读者可以了解到如何利用OpenAI的接口进行文本聚类和摘要生成,以及相关技术的应用和效果评估。文章还展示了如何利用OpenAI的Completion接口让AI给聚合出来的类起一个名字,并通过代码示例展示了如何进行文本翻译。这些技术应用可以帮助读者快速了解文本内容并进行有效的文本处理和分析。文章还介绍了如何在对话中让AI记住尽量多的上下文,以及如何利用AI总结对话内容并继续对话。整体而言,本文涵盖了文本聚类、摘要生成和对话管理等多个方面的应用,为读者提供了丰富的技术知识和实践经验。
赞 36
提建议
全部留言(26)
- 最新
- 精选
- Geek_d8a8802023-03-30 来自北京随着对话的轮数越来越多,文本摘要也会越来越抽象,能保留的上下文信息也会越来越少吧
作者回复: 是的,所以实际运用中,还需要考虑保留哪些记忆信息。哪些存储在外部,可以继续往后看。
共 5 条评论10 - Geek20142023-04-09 来自北京请问徐老师,chatgpt 给出的文本摘要,我们能够用什么方法来评估给出的摘要是好或不好呢?可以通过哪些指标来测试呢?
作者回复: 来自ChatGPT的回答在下面,大家都买了这个课了还是有问题可以多问ChatGPT啊。不过新时代下,很多自动评价指标其实已经不一定合适了,值得研究一下有什么新的评价方法 常用的文本摘要评价指标有: 1. ROUGE(Recall-Oriented Understudy for Gisting Evaluation):用于衡量自动文本摘要与参考摘要之间的匹配程度,在召回率(recall)的基础上计算精确率(precision)和 F1 值。 2. BLEU(Bilingual Evaluation Understudy):基于 n-gram 的统计方法,用于衡量自动文本摘要与参考摘要的相似度。 3. METEOR(Metric for Evaluation of Text with Explicit ORdering):结合了语义模型和短语表征的评价指标,能够处理同义词、语法变化等问题。 4. NIST(NIST Information Retrieval):基于语言模型的自动摘要评价指标,使用统计的方法获取参考摘要中的关键词信息,将这些信息与自动摘要进行比对。 5. CIDEr(Consensus-based Image Description Evaluation):最初是用于评价图像描述的指标,也可以应用于文本摘要评价上,能够捕捉到多样性和流畅性等方面。
8 - Kevin2023-04-02 来自澳大利亚请教一下徐老师,chatpdf的实现也是基于embedding来对上传的pdf建立一个index么?chatpdf自己回答所不是基于embedding建立的index,顾左右而言他,说是用了其他技术,比如提了part-of-speech tagging 和 named entity recognition。所以它用其他技术对pdf做了一个摘要文件对么?使用chatgpt api是为了更好的理解自然语言(把用户语言转换成可以part-of-speech或者其他专用库的操作,类似于embedding的cosine-similarity操作,然后再把答案用自然语言回复)?非常好奇如何实现,请徐老师分享一下洞见,谢谢!以下是chatpdf回复: In order to analyze the text of a PDF file, a PDF reader is used to extract the text from the file. This text is then passed to me as input, and I use natural language processing (NLP) techniques to analyze it. first step in my analysis involves breaking down the text into smaller units such as words or phrases. This is done using a process called tokenization, which involves splitting the text into individual tokens based on whitespace and punctuation. Once the text has been tokenized, I use various NLP techniques to extract meaning from it. For example, I might use part-of-speech tagging to identify the grammatical structure of sentences, or named entity recognition to identify specific entities such as people, places, or organizations.展开
作者回复: 因为ChatPDF没有开源,所以具体它是怎么做的我不知道。 其实最合理的方式,是既使用Embedding,也可以用其他的NLP技术,包括找一些关键字(利用POS分词),做命名实体识别等等,来做段落的搜索(召回)。 然后通过ChatGPT的API再根据内容做问答。其实要做好索引还是有很多技巧的。
6 - 嗯哼😬2023-03-30 来自广东😰糟糕,没有 NLP 基础的普通开发人员越看越迷糊。
作者回复: 先把代码跑起来有点体感。
共 2 条评论6 - 陈鹏2023-05-19 来自立陶宛老师好,我理解第5和第7节说的是:利用openai大语言模型的api,将数据embedding,用embedding的结果去训练其他的模型,比如聚类模型或分类模型。 我不太理解这里的“训练”是什么意思? 把embedding后的数据集给到小模型算法,小模型会得出分类或聚类的结果,课程中,老师说这样做的效果比较好。那么这里的“训练”体现在哪里呢? 用embedding后的数据给到小模型,小模型就自动优化内部参数了?还是说课程中没有涉及到模型训练的内容? 如果这样就是训练了小模型,那么训练后的参数是如何存储的?下次调用后,这次训练的参数还存在吗? 谢谢老师解惑展开
作者回复: 这个训练,是指传统的机器学习模型训练。 有额外的一组“参数”,这个参数很少,比如1537个(正好和我们的Embedding的维度数量+1),将embedding再映射到我们想要的分类问题。 小模型训练的过程就是自动优化这组额外参数的问题,参数想存在哪里都可以。下次要用的时候加载这组参数就可以了。
2 - gc2023-05-04 来自上海老师,本人小白,问个别的问题,如何对书籍进行分类聚合呢,比如一本书拆出一些分类标签,能提供一些思路吗?这种大文本的好像本章节方式并不适合?
作者回复: 你想要什么样的标签? 根据书的介绍,而不是全文来打标签一般就足够了吧。
共 2 条评论2 - 卖烧烤夫斯基2023-04-10 来自广东请问老师,面对大量随机文本,聚类的个数如何确定呢?
作者回复: 一般都是试几个值然后比较一些评价指标。 来自chatgpt的回答,不理解指标的定义可以进一步问他。大家一定要习惯起来有问题可以不断追问ChatGPT来回答 聚类算法的聚类数量是一个非常重要的参数,对聚类结果影响很大。以下是几种测试聚类数量合适的方法: 1. Elbow method(肘部法则):随着聚类数量的增加,聚类效果不断增加,但是聚类数量达到一定程度后,聚类效果不再明显提高,这个点称为“拐点”,也称为肘部点。通过在不同的聚类数量下计算聚类误差并绘制成图表,找到聚类误差开始骤降的点作为聚类数量的参考。 2. Silhouette method(轮廓系数法):通过计算每个样本的轮廓系数,得到平均轮廓系数,通过不同聚类数量下的平均轮廓系数来确定最合适的聚类数量。 3. Gap statistic method(间隔统计法):与随机数据比较得到理论上最佳聚类数目,原理是用原始数据与随机数据比较得到一个统计值,随着聚类数量的增加,统计值先增加后减少,取的值与随机数据的差距最大的点为最佳聚类数。 4. DBSCAN(基于密度的聚类算法):该算法本身是没有聚类数量的限制,会自动根据数据样本的密度来确定聚类数量。可以通过调整聚类半径和样本密度参数来调整聚类数量。 需要注意的是,不同的数据集和聚类算法可能适用不同的方法,寻找最合适的聚类数量需要进行一定的尝试和比较。
2 - Hugh2023-05-16 来自上海display(new_df) 没有引入 from IPython.display import display
作者回复: 啊,对。因为我用 Colab 或者 VSCode 内置的默认不需要import,我和编辑同步修改一下
1 - Geek_32772e2023-04-27 来自北京第一段代码403Forbidden了,报错如下:urllib.error.HTTPError: HTTP Error 403: Forbidden
作者回复: 感觉是网络或者源IP在国内的问题?OpenAI目前大陆和香港应该都不让访问
共 3 条评论1 - suzg2023-04-12 来自北京有没有可能是这个newsgroup数据集就在openai的训练数据中,所以效果好
作者回复: 有可能,你也可以拿自己的数据集试一下呀。
1