基于NLP的虚假文本信息检测研究

该博客介绍了如何使用Doc2Vec模型预处理文本数据,并应用于朴素贝叶斯、SVM和LSTM分类器进行文本分类。首先,通过数据清理和构建TaggedDocument来准备数据。然后,训练Doc2Vec模型获取文本向量表示。接着,使用这些向量分别训练朴素贝叶斯和SVM模型,展示它们的准确率。最后,利用LSTM模型进行文本分类,同样报告了其精度。整个过程展示了从预处理到模型训练的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

数据:

链接: https://pan.baidu.com/s/1QvFWU1985u0sVDVJkWTr0w?pwd=myxm 提取码: myxm 复制这段内容后打开百度网盘手机App,操作更方便哦

 

 

# 1
import numpy as np
import re
import string
import pandas as pd
from gensim.models import Doc2Vec
from gensim.models.doc2vec import TaggedDocument
from gensim import utils
from nltk.corpus import stopwords
 
 
def textClean(text):
    text = re.sub(r"[^A-Za-z0-9^,!.\/'+-=]", " ", text)
    text = text.lower().split()
    stops = set(stopwords.words("english"))
    text = [w for w in text if not w in stops]
    text = " ".join(text)
    return (text)
 
 
def cleanup(text):
    text = textClean(text)
    text = text.translate(str.maketrans("", "", string.punctuation))
    return text
 
def constructTaggedDocuments(data):
    sentences = []
    for index, row in data.iteritems():
        sentences.append(TaggedDocument(utils.to_unicode(row).split(), ['Text' + '_%s' % str(index)]))
    return sentences
 
def getEmbeddings(path,vector_dimension=300):
    data = pd.read_csv(path)
    missing_rows = []
    for i in range(len(data)):
        if data.loc[i, 'text'] != data.loc[i, 'text']:
            missing_rows.append(i)
    data = data.drop(missing_rows).reset_index().drop(['index','id'],axis=1)
 
    for i in range(len(data)):
        data.loc[i, 'text'] = cleanup(data.loc[i,'text'])
 
    x = constructTaggedDocuments(data['text'])
    y = data['label'].values
 
    text_model = Doc2Vec(min_count=1, window=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值