基于django+mysql+js+bert文本分类模型(hugging face)的新闻文本分类系统

1.简介

1.1项目划分:

  • 登录
    在这里插入图片描述

  • 注册
    在这里插入图片描述

  • 主页
    在这里插入图片描述

  • 新闻页面(点击不同分类的会显示对应的分类新闻)
    在这里插入图片描述

  • 新闻内容
    在这里插入图片描述

  • 添加新闻
    在这里插入图片描述

1.2 技术栈:

前端:js+css+bootstrap框架搭建。
后端:python+django框架+mysql搭建。
分类模型:torch1.7.1 + bert模型(hugging face)

1.3 数据集:

数据集采用的是dbpedia数据集
在这里插入图片描述
在这里插入图片描述

通过分类模型算法可以自动将添加的新闻计算出对应的分类,并添加到的相应的类别中。

2.训练模型和测试模型

2.1部分训练模型代码:

tokenizer = AutoTokenizer.from_pretrained("pretrain_Model_path")
model = AutoModelForSequenceClassification.from_pretrained("pretrain_Model_path", num_labels=10)

label_dic = {
 'finance': 0,
 'realty': 1,
 'stocks': 2,
 'education': 3,
 'science': 4,
 'society': 5,
 'politics': 6,
 'sports': 7,
 'game': 8,
 'entertainment': 9}


def get_train_data(file, label_dic):
    content = []
    label = []
    with open(file, "r", encoding="utf-8") as f:
        for i in f.readlines():
            c, l = i.split("\t")
            content.append(re.sub('[^\u4e00-\u9fa5]', "", c))

            label.append(int(l.strip()))
    return content, label


content, label = get_train_data('data/train.txt', label_dic=label_dic)
data = pd.DataFrame({"content": content, "label": label})
# data = shuffle(data)
train_data = tokenizer(data.content.to_list()[:8000], padding="max_length", max_length=40, truncation=True,
                       return_tensors="pt")

train_label = data.label.to_list()[:8000]


batch_size = 16
train = TensorDataset(train_data["input_ids"], train_data["attention_mask"], torch.tensor(train_label))

train_sampler = RandomSampler(train)
train_dataloader = DataLoader(train, sampler=train_sampler, batch_size=batch_size)
# 定义优化器
from torch.optim import AdamW
optimizer = AdamW(model.parameters(), lr=1e-4)
# 定义学习率和训练轮数
num_epochs = 50
from transformers import get_scheduler
num_training_steps = num_epochs * len(train_dataloader)
lr_scheduler = get_scheduler(
    name="linear", optimizer=optimizer, num_warmup_steps=0, num_training_steps=num_training_steps
)

device = torch.device("cuda:0")
# device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model.to(device)

2.2 部分测试代码接口

def classify_text(text):
    test = tokenizer(text, return_tensors="pt", padding="max_length",
                     max_length=100)
    model.eval()
    with torch.no_grad():
        outputs = model(test["input_ids"].to(device),
                        token_type_ids=None,
                        attention_mask=test["attention_mask"].to(device))
    logits = outputs["logits"].cpu()

    pred_flat = np.argmax(logits, axis=1)
    pred_flat = pred_flat.cpu().numpy().squeeze()
    print(pred_flat.tolist())

2.3 测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于DjangoMySQL的管理系统是一种Web应用程序,用于管理和处理数据。Django是一个流行的Python Web框架,它提供了许多有用的功能,如ORM(对象关系映射)和模板系统,使得开发Web应用程序变得更加容易。MySQL是一个流行的关系型数据库管理系统,它可以存储和管理大量的数据。基于DjangoMySQL的管理系统可以帮助用户轻松地管理和处理数据,包括添加、修改、删除和查询数据等操作。此外,它还可以提供一些高级功能,如数据分析和报告生成等。 ### 回答2: 基于Django MySQL的管理系统是一种基于Web的管理系统,可用于管理各种类型的数据和信息。该系统的主要功能包括数据的输入、查询、修改和删除,以及数据的统计和分析等。基于Django MySQL的管理系统具有模块化、灵活性强、可扩展性高、易于维护和管理等诸多优点。 首先,基于Django MySQL的管理系统具有模块化的结构,在系统开发和维护时,可以分别开发各个功能模块,逐步集成到系统中,使得系统具有高度的可重用性。此外,该系统还提供了一些常用的数据操作接口,包括ORM、SQLAlchemy等,方便开发人员对数据进行访问和操作。 其次,该系统灵活性强,可以适应各种不同的数据和信息管理需求。用户可以自定义数据和模板,从而灵活地实现各种任务需求。同时,该系统还支持多种数据格式,包括CSV、Excel等,方便用户导入和导出数据。 再者,该系统可扩展性很高,可以根据用户需求进行功能扩展。例如,可以增加用户权限管理、数据备份、安全加密等功能,从而满足用户的各种需要。 最后,基于Django MySQL的管理系统易于维护和管理。该系统具有完善的用户权限管理系统和数据备份机制,同时还提供详细的日志记录和错误追踪功能,方便管理员及时发现问题并进行解决。 总之,基于Django MySQL的管理系统是一种十分可靠和灵活的数据管理系统,可用于各种数据和信息管理需求。同时该系统还具有高度的扩展性和易于维护和管理等优点,可以帮助企业和机构实现高效的数据管理。 ### 回答3: 基于DjangoMySQL的管理系统是一种开源的Web应用程序,它具有高效、可扩展、易于维护的特点,可用于管理任何类型的数据,如人员、客户、产品、订单等。Django是一种基于Python语言的高级Web框架,它可以使我们更加快速、简单地开发出高性能的Web应用程序。 使用DjangoMySQL开发管理系统,我们可以使用模型来定义数据模型,然后使用视图和模板系统来实现业务逻辑和用户界面。模型Django的重要组成部分,它们是用来描述数据的类,定义了数据对象的属性和方法。Django提供了ORM(对象关系映射)支持,使得我们可以用面向对象的方式来操作数据库,而不需要编写SQL语句,从而大大提高了开发效率。 在Django中,我们可以使用数据库迁移来管理数据库的变化。每当我们修改模型时,Django会自动创建相应的迁移文件,它们用来记录我们所做的更改。当我们需要迁移数据库结构时,只需要运行一个简单的命令就可以完成。 此外,Django中还有非常丰富的插件和组件,我们可以利用它们来实现自定义功能。Django的管理后台是其中之一,它可以帮助我们快速地创建后台管理界面。我们只需使用Django的管理模块,就可以轻松地创建一个完整的后台管理系统。 总体而言,基于DjangoMySQL的管理系统是一种强大而灵活的Web应用程序,它不仅适用于小型和中型企业,还适用于大型企业和组织。务必掌握好DjangoMySQL的相关知识,才能更好地开发出高质量的管理系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值