[python]本科毕业设计基于神经网络的虚假评论识别系统源码实现细节

基于神经网络的虚假评论识别系统

备注

数据处理时,应该以utf-8编码,不然读出来的数据较乱,修改数据形式,读取Excel文件,以utf-8编码

打乱数据集使得最后的结果更加合理

添加测试集验证模型

测试集:训练集=2:8

在训练集的过程中添加验证集,比例为1:9

最后的下面如下图所示。

数据比例

模型结构

模型指标

建议

词向量的维度太大,句子太短,导致句子向量比较稀疏,可以修改句子维度大小;

同时可以修改代码生成训练过程中的acc和loss折线图,类似下面的loss图(80块钱优化上述建议代码)

代码流程说明:

主要函数:

  1. corpusprocess原始语料处理函数

2.train_word2vec生成word2vec向量

3.generate_id2wec获得索引的w2id,和嵌入权重embedding_weights

4.prepare_data 数据预处理

代码流程:

训练过程:

1.train_word2vec生成word2vec词向量模型,train_word2vec中会调用corpusprocess对中文文本进行预处理和切词操作)

2.generate_id2wec会根据此向量模型,生成w2id,和嵌入权重embedding_weights

3.prepare_data根据w2id划分训练集x_train, y_trian和验证集 x_val , y_val

4.w2idembedding_weights根据定义LSTM模型Senti

5.调用train()方法训练,保存算法模型。

预测过程:

1.加载已经生成word2vec模型

2.generate_id2wec会根据此向量模型,生成w2id,和嵌入权重embedding_weights

3.定义 Sentiment设置参数

4.加载训练好的LSTM模型

5.调用predict方法预测结果

预测流程:

from LSTM import Sentiment
from gensim.models.word2vec import Word2Vec
from dataPreprocess import generate_id2wec

model = Word2Vec.load('word2vec.model')

w2id,embedding_weights = generate_id2wec(model)
label_dic = {0:"假评",1:"真评"}


#设置模型参数
senti = Sentiment(w2id,embedding_weights,100,200,2)



#在sen_new_list列表中替换你想测试的评论,可以是一条和多条
sen_new_list = [
    "特别特别满意,超级好看,客服很有礼貌,很客气,良心商家,支持!?质量很好,买的很合我心意?,棒棒哒!?需要的亲们可以放心购买真的推荐啊,快递速度特别的快,爱了爱了宝贝收到了,质量很不错,包装精致,材质优秀,比想象中好,送礼自用非常合适,下次继续购买产品包装精致美观大气,目前用着非常不错,真实评价,希望可以帮到集美们"
    "棒棒哒!?需要的亲们可以放心购买真的推荐啊",
    "目前用着非常不错,真实评价"
    ]

#预测代码
#加载模型并进行预测
# print("输入了",len(sen_new_list),"条评论")
# for i in  range(len(sen_new_list)):
#     sen_new = sen_new_list[i]
#     pre, confidence = senti.predict("./sentiment.h5", sen_new)
#     print("评论",i)
#     print("评价内容:", sen_new)
#     print("评价判断:", label_dic[pre])
#     print("置信度(可信度):", confidence)



while 1:
    sen_new_list = input('''请输入你要检测的评论(一个或多个,多个评论时评论用#号隔开):\n''').split("#")

    #sen_new = input()
    for sen_new in sen_new_list:
        res = senti.predict("./sentiment.h5", sen_new)  # 预测结果为输入句子是假和真两种评论的概率,保存到res中
        index = res.index(max(res))  # 返回概率数组res中最大值的下标
        label = label_dic[index]  # 预测的结果标签
        if index == 1: #此时label标签值为真
            confidence = res[1]  # 置信度,此时评价预测为真,则其为真的概率就为是置信度
            Fakedegrees = str(round(res[0] * 100, 2)) + "%"  # 虚假程度,此时评价预测为真,则其为假的概率就为是虚假度
        else: #此时label标签值为假
            confidence = res[0]  # 置信度,此评论为假时,其为假的概率就是置信度
            Fakedegrees = str(round(res[0], 2) * 100) + "%"  # 虚假程度,此评论为假时,其为假的概率就是虚假度
        print("评论:", sen_new)
        print("预测结果:", label)
        print("置信度:", confidence)
        print("虚假度:", Fakedegrees)

完整源码下载:

https://download.csdn.net/download/FL1768317420/89232194

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1768317420

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值