# NLP2022-最终项目介绍及代码说明
#### 介绍
2022NUK NLP大作业
#### 中文10类别单一文本分类
数据集采用gaussic的数据集,https://github.com/gaussic/text-classification-cnn-rnn<br />
链接: https://pan.baidu.com/s/1hugrfRu 密码: qfud<br />
下载所有文件,放到cnews目录下即可<br />
其中 cnews.vocab.txt 为字典文件。
源代码链接:https://github.com/Alic-yuan/nlp-beginner-finish/tree/master/task2
#### FP-Net
通过特征投影网络提高文本分类准确率
源代码链接:https://github.com/Qqinmaster/FP-Net/
#### 代码具体说明
通过对 torch_model.py 的修改可以将模型在 CNN、LSTM、GRU 中进行切换。
LSTM 和 GRU 同为 RNN 模型,代码区别如下:
```python
# LSTM模型
self.rnn = nn.LSTM(input_size=64, hidden_size=128, bidirectional=True)
# GRU模型
self.rnn = nn.GRU(input_size=64, hidden_size=128, num_layers=1, bidirectional=True)
```
```python
x, (h_n, c_n)= self.rnn(x) # LSTM模型
x, h_n = self.rnn(x) # GRU模型
```
cnews_loader 读取数据集,并将数据集转化为向量表示,x_val 和 y_val 分别代表段落的 id 表示向量和标签的 one-hot向量。
由于FP-Net中对数据集格式有特定要求,本人修改了部分代码,将 gaussic 数据集转化为该特定格式,在前面三个模型中,段落向量表示长度为 600 ,在 FP-Net 中,由于训练速度过慢,将长度改为 35 ,并在首部加上类别 id ,尾部加上长度,故长度为37。
具体修改部分代码如下:
```python
def process_file(filename, word_to_id, cat_to_id, max_length=600):
"""将文件转换为id表示"""
contents, labels = read_file(filename)
data_id, label_id = [], []
listtt=[]
for i in range(len(contents)):
ll=0
listt=[cat_to_id[labels[i]]]
for x in contents[i]:
if x in word_to_id:
listt.append(word_to_id[x])
ll=ll+1
if (ll >= max_length+1):
listtt.append(ll)
break
if ll < max_length+1:
listtt.append(ll)
data_id.append(listt)
label_id.append(cat_to_id[labels[i]])
# data_id.append(cat_to_id[labels[i]])
# 使用keras提供的pad_sequences来将文本pad为固定长度
x_pad = kr.preprocessing.sequence.pad_sequences(data_id, max_length+2,padding='post',truncating='post',value=1)
for _ in range(len(listtt)):
x_pad[_][max_length+1]=listtt[_]
y_pad = kr.utils.to_categorical(label_id, num_classes=len(cat_to_id)) # 将标签转换为one-hot表示
return x_pad, y_pad
```
最后将该表示存储为 .npy 文件,文件我已经一并上传,位于 FP-Net 的 data\c35 路径下。
由于 FP-Net 实用 tensorflow 1 版本,对于 2 版本向运行,需要进行兼容性调整:
```python
import tensorflow._api.v2.compat.v1 as tf
tf.disable_v2_behavior()
import tensorflow as tf2
```
然后因为之前的正则化器由于冗余被删除,要实用keras中定义的正则化器:
```python
regularizer = tf2.keras.regularizers.l2(cf.regularizer)
```
通过以上修改代码就可以运行了。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
NLP大作业:基于深度学习的文本分类python代码(完整项目代码).zip,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 NLP大作业:基于深度学习的文本分类python代码(完整项目代码).zip,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 NLP大作业:基于深度学习的文本分类python代码(完整项目代码).zip,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 NLP大作业:基于深度学习的文本分类python代码(完整项目代码).zip
资源推荐
资源详情
资源评论































收起资源包目录











































共 33 条
- 1
资源评论


yava_free
- 粉丝: 7353
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2022年C语言程序设计A课程形成性考核作业.doc
- 五章系统安全评价技术.pptx
- 中信数码冲印网络营销策划书.doc
- 医疗行业无线网络解决方案.docx
- 软件资产管理在企业中的应用.pptx
- 软件工程图书管理系统(2).doc
- 中国智慧城市体验中心分析报告PPT课件.ppt
- 计算机基础知识试题6.doc
- 基于工程应用的VB与ANSYS接口问题及二次开发.docx
- 硕士本科论文办公自动化系统的设计与实现.pdf
- 建设工程项目管理工作用表.doc
- 2022年下半年软件设计师模拟真题与答案解析上午选择与下午案例计算机软考.doc
- 智慧交通应用解决方案.docx
- 数据库使用协议.doc
- 电力二次系统安全防护方案.doc
- 项目管理九大管理工具.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
