【nlp】天池学习赛-新闻文本分类-深度学习1

目录

1、FastText

 1.1、FastText网络结构

1.2、基于fastText的文本分类

2、word2vec训练词向量及使用

2.1、用jieba对语料进行分词处理 

2.2、用LineSentence类来读文件

2.3、词向量的训练

2.4、词向量的使用

2.5、词向量可视化

 3、TextCNN

3.1、导入数据 

3.2、构建词向量权重矩阵 


1、FastText

FastText是一种典型的深度学习词向量的表示方法,它非常简单通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作。 

在这里插入图片描述

 1.1、FastText网络结构

#FastText网络结构

from keras.models import Sequential
from keras.layers import Embedding
from keras.layers import GlobalAveragePooling1D
from keras.layers import Dense
import faxt

vocab_size = 2000
embedding_dim = 100
max_word = 500
class_num = 5

def build_fastText():
    model =  Sequential()
    model.add(Embedding(vocab_size,embedding_dim,input_length = max_word))
    model.add(GlobalAveragePooling1D())
    model.add(Dense(class_num,activation = 'softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='SGD',metrics = ['accuracy'])
    return model

if __name__ == '__main__':
    model = build_fastText()
    print(model.summary())
Model: "sequential_1"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 embedding_1 (Embedding)     (None, 500, 100)          200000    
                                                                 
 global_average_pooling1d_1   (None, 100)              0         
 (GlobalAveragePooling1D)                                        
                                                                 
 dense_1 (Dense)             (None, 5)                 505       
                                                                 
=================================================================
Total params: 200,505
Trainable params: 200,505
Non-trainable params: 0
_________________________________________________________________
None

1.2、基于fastText的文本分类

#基于fastText的文本分类
import pandas as pd
from sklearn.metrics import f1_score
import fasttext.FastText

train_df = pd.read_csv('新建文件夹/天池—新闻文本分类/train_set.csv', sep='\t', nrows=15000)
train_df['label_ft'] = '__label__' + train_df['label'].astype(str)
train_df[['text', 'label_ft']].iloc[:-5000].to_csv('train.csv', index=None, header=None, sep='\t')

model = fasttext.train_supervised('train.csv', lr=1.0, wordNgrams=2,
                                  verbose=2, minCount=2, epoch=25,
天池是国内知名的数据科学竞平台,零基础入门NLP - 新闻文本分类是其中的一项比任务。这个任务的目标是利用机器学习自然语言处理的方法,对给定的新闻文本进行分类,即根据新闻内容判断其所属的类别。这个任务对于初学者来说是一个很好的入门项目。 在解决这个问题的过程中,我们需要首先对提供的训练数据进行探索性数据分析,了解数据的分布,词频以及类别的平衡情况。然后,我们可以进行文本预处理,包括分词、去除停用词、词干化等。接下来,可以构建特征表示,可以使用TF-IDF、Word2Vec或者其他词嵌入模型来提取文本的向量表示。在构建特征表示后,可以选择合适的机器学习算法,如朴素贝叶斯、支持向量机、深度学习等,来训练分类模型。 在进行模型训练之前,可以将数据集分为训练集验证集,用于模型的评估调优。我们可以使用交叉验证,调整模型的超参数,选择表现最好的模型。在模型训练完成后,可以使用测试集对模型进行评估,计算准确率、召回率F1值等指标。最后,我们可以利用模型对给定的未知新闻文本进行分类预测。 在解决这个问题的过程中,还可以进行一些方法的优化改进。比如,可以使用集成学习的方法,如随机森林、XGBoost或者LightGBM等,结合多个分类器的结果来提高整体的分类准确率。此外,可以尝试使用预训练的模型,如BERT等,来获得更好的特征表示。此外,还可以尝试使用深度学习网络,如卷积神经网络或者循环神经网络,来提取文本的高级语义特征。 总之,零基础入门NLP - 新闻文本分类是一个很好的机会,可以学习应用自然语言处理的知识技术。通过解决这个问题,我们可以深入了解文本分类的基本概念方法,提升自己在数据科学领域的能力竞争力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值