哪个网站可以做免费商业推广,网页设计作品田田田田田田田田田田田田田田,2017 如何做网站优化,北京搬家公司哪家最好python-pytorch实现lstm模型预测中文文本输出0.1.02 数据参考效果分词到数组获取word2index和word2index查看频次获取vacab生成训练数据训练测试连续预测 记录 2024年4月14日15:36:28----0.1.02 有问题还需要完善#xff0c;会重复生成一句话
数据
一篇新闻#xff1a;http… python-pytorch实现lstm模型预测中文文本输出0.1.02 数据参考效果分词到数组获取word2index和word2index查看频次获取vacab生成训练数据训练测试连续预测 记录 2024年4月14日15:36:28----0.1.02 有问题还需要完善会重复生成一句话
数据
一篇新闻https://news.sina.com.cn/c/2024-04-12/doc-inarqiev0222543.shtml
参考
https://blog.csdn.net/qq_19530977/article/details/120936391
# https://blog.csdn.net/qq_19530977/article/details/120936391效果 布林肯国务卿
布林肯国务卿同王毅
布林肯国务卿同王毅主任
布林肯国务卿同王毅主任以及
布林肯国务卿同王毅主任以及其他
布林肯国务卿同王毅主任以及其他国家
布林肯国务卿同王毅主任以及其他国家敦促
布林肯国务卿同王毅主任以及其他国家敦促伊朗
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容侵犯
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容侵犯
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容侵犯布
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容侵犯布林肯
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容侵犯布林肯国务卿
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容侵犯布林肯国务卿同王毅
布林肯国务卿同王毅主任以及其他国家敦促伊朗驻叙利亚使馆的安全不容侵犯布林肯国务卿同王毅主任导入包
import torch
import torch.nn as nn
import torch.optim as optim
import torch.utils.data as Data
from torch.autograd import Variable
import jieba
分词到数组
复制文章到txt文档
allarray[]
with open(./howtousercbow/data/news.txt,encodingutf-8) as afterjieba:linesafterjieba.readlines()print(lines)for line in lines:resultlist(jieba.cut(line,False))for r in result:allarray.append(r.replace(\n,))allarray,len(allarray)
获取word2index和word2index
word2index{one:i for i,one in enumerate(allarray)}
index2word{i:one for i,one in enumerate(allarray)}
word2index[ ]len(allarray)-1
index2word[len(allarray)-1]
word2index[ ]查看频次
from collections import Counter
Counter(allarray)获取vacab
vocab_size len(allarray)
vocab_size生成训练数据
# 生成输入数据
batch_x []
batch_y []
window1
seq_lengthvocab_size
for i in range(seq_length - window 1):x word2index[allarray[i]]if i window seq_length:y word2index[ ]else:y word2index[allarray[i 1]]batch_x.append([x])batch_y.append(y)# 训练数据
batch_x, batch_y Variable(torch.LongTensor(batch_x)), Variable(torch.LongTensor(batch_y))# 参数
embedding_size 100
n_hidden 32
batch_size 10
num_classes vocab_sizedataset Data.TensorDataset(batch_x, batch_y)
loader Data.DataLoader(dataset, batch_size, shuffleTrue)# 建立模型
class BiLSTM(nn.Module):def __init__(self):super(BiLSTM, self).__init__()self.word_vec nn.Embedding(vocab_size, embedding_size)# bidirectional双向LSTMself.bilstm nn.LSTM(embedding_size, n_hidden, 1, bidirectionalTrue)self.lstm nn.LSTM(2 * n_hidden, 2 * n_hidden, 1, bidirectionalFalse)self.fc nn.Linear(n_hidden * 2, num_classes)def forward(self, input):# embedding_input是10x1x100embedding_input self.word_vec(input)# embedding_input调换后的size是1x10x100embedding_input embedding_input.permute(1, 0, 2)bilstm_output, (h_n1, c_n1) self.bilstm(embedding_input)lstm_output, (h_n2, c_n2) self.lstm(bilstm_output)fc_out self.fc(lstm_output[-1])return fc_outmodel BiLSTM()训练
print(model)
criterion nn.CrossEntropyLoss()
optimizer optim.Adam(model.parameters(), lr0.001)# 训练
for epoch in range(300):cost 0for input_batch, target_batch in loader:pred model(input_batch)
# print(pred,pred)
# print(target_batch,target_batch)loss criterion(pred, target_batch)cost loss.item()optimizer.zero_grad()loss.backward()optimizer.step()print(Epoch: %d, loss: %.5f % (epoch, cost))测试
def test(str):test_text strtest_batch [word2index[str]]
# print(test_batch)test_batch torch.LongTensor([test_batch])
# print(test_batch,test_batch)
# print(test_batch)out model(test_batch)predict torch.max(out, 1)[1].item()
# print(test_text,后一个字母为, index2word[predict])return index2word[predict]
连续预测
import time
s布林肯
while True:fencijieba.cut(s,False)fenciListlist(fenci)sstest(fenciList[-1:][0])time.sleep(1)print(s)