尝试用bert做文本聚类

创新实训(10)-提取式文本摘要之bert聚类 创新实训(10)-提取式文本摘要之bert聚类 1. 思路 使用bert作为预训练模型,利用bert生成的词向量进行下游任务的处理,在这篇论文中使用的是k-means计算词向量分布的重心作为文本摘要的候选句子。可以看作是聚类的一种形式。 2.代码分析 基于Pytorch的Transformers框架,使用预训练的Bert模型或者是其他的预训练模型生成词向量,然后使用k-means或者expectation-maximization算法进行聚类。 2.1 简单使用 首先先来测试一下readme里给的例子: f 阅读详情

                                               尝试用bert做文本聚类

以前文本聚类多以TF-IDF构建词权重的方法进行,在本文中尝试用bert提取的向量做文本聚类。对于bert模型,尝试提取不同层的特征,尝试对bert做fun-tune,观察相应特征对应的文本聚类的效果

数据

数据使用的是百度2020语言比赛的数据,该数据是标注并分类好的,所以在聚类的情况下,省去了聚类时对k值的搜索,同时可以可以根据标注好的数据和聚类得到的数据比较,从侧面评价聚类的效果

下载地址

https://pan.baidu.com/s/1hIiGutDm73vo7lw31H-tfw  提取码 4gqn

 

工具和环境

python3 ,bert4keras 0.7.5

强烈推荐苏剑林大佬的bert4keras https://github.com/bojone/bert4keras

 

使用bert提取特征

 


from bert4keras.backend import keras
from bert4keras.models import build_transformer_model
from bert4keras.tokenizers import Tokenizer
import numpy as np

config_path = '/root/kg/bert/chinese_L-12_H-768_A-12/bert_config.json'
checkpoint_path = '/root/kg/bert/chinese_L-12_H-768_A-12/bert_model.ckpt'
dict_path = '/root/kg/bert/chinese_L-12_H-768_A-12/vocab.txt'

tokenizer = Tokenizer(dict_path, do_lower_case=True)  # 建立分词器
model = build_transformer_model(config_path, checkpoint_path)  # 建立模型,加载权重

# 编码测试
token_ids, segment_ids = tokenizer.encode(u'语
使用bert4keras进行关系抽取的代码 三元组抽取任务,基于“半指针-半标注”结构 文章介绍:https://kexue.fm/archives/7161 数据集:http://ai.baidu.com/broad/download?dataset=sked 最优f1=0.82198 换用RoBERTa Large可以达到f1=0.829+ 说明:由于使用了EMA,需要跑足够多的步数(5000步以上)才生效,如果你的数据总量比较少,那么请务必跑足够多的epoch数,或者去掉EMA。 2. 数据加载 3. 加载模型 4. 预测出S Dense 阅读详情

相关推荐

文本聚类之Supporting Clustering with Contrastive Learning(SCCL)论文复现【代码纠错及完善】

本文的文本聚类更确切地说是短文本聚类(short text clustering),这是一个并不火热的方向,可以看到这篇论文是两年前发表的,SCCL是一篇很不错的工作。文本数据这块比较火热的是基于自监督、对比学习的NLP,聚类常被作为一个下游子任务,文本数据方面的主要任务还是学习文本的语义表征。不过,这个方向也未尝不是一个值得探索的方向(有着训练时间短,对显卡资源要求低的优点,算法稳定性强),没准哪天也像对比学习那样迎来一个春天。

weixin_43594279的博客 3676

语义相似度、句向量生成超强模型之SBERT《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》

1 前言 随着18年底Bert的面世,NLP进入了预训练模型的时代。各大预训练模型如GPT-2,Robert,XLNet,Transformer-XL,Albert,T5等等层数不穷。但是几乎大部分的这些模型均不适合语义相似度搜索,也不适合非监督任务,比如聚类。而解决聚类和语义搜索的一种常见方法是将每个句子映射到一个向量空间,使得语义相似的句子很接近。说到这,可能有的人会尝试将整个句子输入预训练模型中,得到该句的句向量,然后作为句子的句向量表示。但是这样得到的句向量真的好吗?在论文《Sentence-BER

Lisen’s blog 3万+

深度聚类:将深度表示学习和聚类联合优化

经典聚类即数据通过各种表示学习技术以矢量化形式表示为特征。随着数据变得越来越复杂和复杂,浅层(传统)聚类方法已经无法处理高维数据类型。结合深度学习优势的一种直接方法是首先学习深度表示,然后再将其输入浅层聚类方法。但是这有两个缺点:i)表示不是直接学习聚类,这限制了聚类性能; ii) 聚类依赖于复杂而不是线性的实例之间的关系; iii)聚类和表示学习相互依赖,应该相互增强。...

weixin_48262500的博客 5392

避坑指南:用BERT-base-chinese做文本聚类时,[CLS]向量和KMeans参数怎么调?

本文深入解析了使用BERT-base-chinese进行文本聚类时的关键调优技巧,包括[CLS]向量的适用场景与局限、KMeans参数的科学调优方法,以及中文文本聚类的特殊处理策略。通过对比不同池化方式、优化k值选择和领域自适应技巧,帮助开发者提升聚类效果,避免常见陷阱。

weixin_27066963的博客 181

Bert文本聚类实践

文本聚类探索与实践,文本分类用于聚类能行么?

NLP与推荐算法 1767

[Python人工智能] 三十三.Bert模型 (2)keras-bert库构建Bert模型实现文本分类

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章开启了新的内容——Bert,首先介绍Keras-bert库安装及基础用法,这将为后续文本分类、命名实体识别提供帮助。这篇文章将通过keras-bert库构建Bert模型,并实现文本分类工作。基础性文章,希望对您有所帮助!

杨秀璋的专栏 8142

6.6 BERT家族02——sentence-BERT、BioBERT

文章目录sentence-BERTBioBERT参考 sentence-BERT 各大预训练模型如GPT-2,Robert,XLNet,Transformer-XL,Albert,T5等等层数不穷。但是几乎大部分的这些模型均不适合语义相似度搜索,也不适合非监督任务,比如聚类。而解决聚类和语义搜索的一种常见方法是将每个句子映射到一个向量空间,使得语义相似的句子很接近。 说到这,可能有的人会尝试将整个句子输入预训练模型中,得到该句的句向量,然后作为句子的句向量表示。但是这样得到的句向量真的好吗?在论文123就指

炫云云 880

BERT文本分类实战项目源码

在自然语言处理(NLP)领域,BERT(Bidirectional Encoder Representations from Transformers)模型自2018年面世以来,已经成为理解和处理文本信息的基石。BERT基于Transformer的架构,采用了双向的Transformer编码器,能够更好地捕捉语言的上下文信息。模型通过在大规模语料库上进行预训练,能够学习到深层次的语言特征,并在多种NLP任务中取得了突破性的效果。

weixin_35734408的博客 731

uniapp+ucharts折线图toolTip不显示?别慌,手把手教你用showToolTip方法精准修复

本文详细解析了uniapp+ucharts折线图中toolTip不显示的常见问题,提供了showToolTip方法的精准修复方案。从底层原理到实战代码,帮助开发者解决触摸事件冲突、坐标计算偏差等问题,确保折线图交互提示功能稳定运行。

weixin_30316097的博客 399

solidworks vba二次开发配合问题

solidworks vba二次开发配合问题二次开发装配的步骤 二次开发装配的步骤 solidworks可以使用宏录制配合过程从而得到配合的vba代码,步骤如下: 1.选择两个配合的面(点、线等) 2. 建立配合 例如将两个圆柱面同心(图中高亮): 配合后 我们看一下宏录制的代码: Sub main() //激活solidworks接口 Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc //选择两个圆柱面,注意此处是根据坐标选择,不

Alejandro123的博客 3399

FMCW雷达基本原理(通俗易懂)篇2

FMCW雷达(Frequency Modulated Continuous Wave Radar)是一种使用频率调制连续波的雷达系统。它使用一个发射器发射一个连续波,但是这个连续波的频率会在一定的范围内不断变化。当这个连续波遇到一个目标物体并被反射回来时,接收器会检测到这个反射波的频率变化,并计算出目标物体的距离和速度等信息。FMCW雷达的原理可以理解为:1.发射器发射一个连续波,这个波的频率会从一个固定的起始频率开始,逐渐变化至一个固定的终止频率。

研二小学鸡的博客 7676

乐企增值税及附加税费预缴申报表填报能力说明文档V1.004

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 350

【AI智能体】全场景AI智能体工作台WorkBuddy实战操作详解

全场景AI智能体工作台WorkBuddy实战操作详解

congge 5426

MIT液态神经网络(LNN)深度研究:原理、应用与未来

液态神经网络(Liquid Neural Networks, LNNs)代表了人工智能领域,特别是神经网络架构设计中的一次范式转移。它从根本上挑战了传统深度学习模型依赖大规模参数和静态架构的惯例,转而寻求一种更为动态、高效且受生物神经系统启发的计算范式。LNN的核心创新在于其将神经网络的计算过程从离散的、基于时间步的更新,转变为连续的、由微分方程驱动的动态系统演化。这种转变不仅赋予了模型前所未有的适应性和鲁棒性,还使其在处理复杂的时序数据和因果推断任务时表现出色。本章节将深入剖析LNN的技术原理,从其核心的

步子哥的博客 2571

拉曼光谱入门:7.拉曼光谱仪光学系统结构详解

本文系统拆解了拉曼光谱仪从激光器输出经聚焦照明、二向色镜/陷波滤光片组滤除瑞丽散射、衍射光栅色散至CCD探测的完整光路,阐述了各光学模块在微弱非弹性散射信号提取、杂散光抑制及高分辨光谱成像中的工程原理与技术参数要求。

qq_53529450的博客 215

Python 爬虫教程:美食网站 + 社交平台餐馆评论抓取(评分提取 + 情感分析)

在当今数字化时代,数据无处不在,而爬虫技术则是获取数据的强大工具之一。无论是市场调研、学术研究还是个人兴趣探索,爬虫都能帮助我们从海量的网络信息中提取有价值的数据。本文将通过一个实战案例,带领大家学习如何使用 Python 爬虫技术抓取美食网站和社交平台上的餐馆评论,并进行评分提取与情感分析。通过这个项目,你将掌握爬虫的基本原理、数据解析、以及如何结合情感分析技术来挖掘数据背后的洞察。

u014481728的博客 304

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: Windows环境 tensorflow 2.1 安装及问题解决
下一篇: 使用python更精确的解析PDF文件
HGlyh
博客等级 码龄10年 25粉丝 17原创
评论 39
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值