python-pytorch 利用word2vec实现lstm模型预测中文文本输出0.1.00

前言

使用pretrained word embeddings word2vec 替代nn.Embedding,过程还存在问题,最明显的是预测会不停循环一句话

  1. 要使用替代word2vec,核心代码两步
sentences = LineSentence(dataset_path)
model = word2vec.Word2Vec(sentences, sg=1, window=5, min_count=1, workers=4,epochs=2000)
  1. 要使用到LineSentence函数,文本格式有要求
    一是,需要文本内容是使用空格分好,内容如:ZooKeeper 定义 的 存储 目录 不 正确 或 ZooKeeper 的 存储 规划 变化 时
    二是,一行一个句子

源数据

一篇新闻:https://news.sina.com.cn/c/2024-04-12/doc-inarqiev0222543.shtml

导入包

import logging
import sys
import gensim.models as word2vec
from gensim.models.word2vec import LineSentence, logger
import jieba

import torch
import torch.nn as nn
import torch.optim as optim
import torch.utils.data as Data
from torch.autograd import Variable

加载数据分析后写入新文件

要把源文件一行一行的,使用jieba分词后用空格分开,才能使用word2vec的LineSentence

with open("./howtousercbow/data/news.txt","r",encoding="utf-8") as f:
    lines=f.readlines()
    for line in lines:
        jiebacutresult=list(jieba.cut(line.replace(",","").replace("。","").replace("\n","").replace(",","").replace("、","").replace("?","").replace(":",""),False))
        
        sttr=""
        for jb in jieba
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CNN-LSTM-BiGRU分类模型是一种用于文本分类任务的深度学习模型。它结合了卷积神经网络(CNN)、长短期记忆网络(LSTM)和双向门控循环单元(BiGRU)的特性,能够有效地捕捉文本中的局部和全局信息,提高分类性能。 下面是CNN-LSTM-BiGRU分类模型实现步骤: 1. 数据预处理:首先,需要对文本数据进行预处理,包括分词、去除停用词、构建词汇表等操作。 2. 构建词嵌入层:将文本数据转换为词嵌入表示,可以使用预训练的词向量模型(如Word2Vec、GloVe)或者随机初始化的词向量。 3. 卷积神经网络(CNN)层:通过多个卷积核对词嵌入进行卷积操作,提取文本中的局部特征。可以使用不同大小的卷积核来捕捉不同长度的特征。 4. LSTM层:将卷积层的输出作为LSTM的输入,利用LSTM网络来学习文本中的长期依赖关系。 5. 双向门控循环单元(BiGRU)层:将LSTM层的输出作为BiGRU的输入,BiGRU能够同时考虑前向和后向的上下文信息。 6. 池化层:对BiGRU层的输出进行池化操作,将文本的全局信息进行提取。 7. 全连接层:将池化层的输出连接到全连接层,进行分类任务。 8. 输出层:使用softmax函数将全连接层的输出转换为概率分布,得到最终的分类结果。 在Python中,可以使用深度学习框架如TensorFlow、Keras或PyTorch实现CNN-LSTM-BiGRU分类模型。这些框架提供了丰富的API和工具,可以方便地构建和训练深度学习模型

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值