ZJF-Thunder/ChineseBert_text_analysis_system
0
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">2<html><head><title>Python: module Text_Classification</title>3<meta http-equiv="Content-Type" content="text/html; charset=utf-8">4</head><body bgcolor="#f0f0f8">5 6<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">7<tr bgcolor="#7799ee">8<td valign=bottom> <br>9<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>Text_Classification</strong></big></big></font></td10><td align=right valign=bottom11><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:f%3A%5Cworkspace%5C%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1%E5%92%8C%E6%AF%95%E4%B8%9A%E8%AE%BA%E6%96%87%5C%E6%AF%95%E8%AE%BE%5Ctext_classification.py">f:\workspace\毕业设计和毕业论文\毕设\text_classification.py</a></font></td></tr></table>12 <p><tt>功能:加载微博谣言数据集,微调预训练模型并以此进行判断是否为谣言</tt></p>13<p>14<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">15<tr bgcolor="#aa55cc">16<td colspan=3 valign=bottom> <br>17<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>18 19<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>20<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="datetime.html">datetime</a><br>21<a href="jieba.html">jieba</a><br>22<a href="json.html">json</a><br>23</td><td width="25%" valign=top><a href="logging.html">logging</a><br>24<a href="os.html">os</a><br>25<a href="matplotlib.pyplot.html">matplotlib.pyplot</a><br>26</td><td width="25%" valign=top><a href="random.html">random</a><br>27<a href="time.html">time</a><br>28<a href="torch.html">torch</a><br>29</td><td width="25%" valign=top><a href="zipfile.html">zipfile</a><br>30</td></tr></table></td></tr></table><p>31<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">32<tr bgcolor="#eeaa77">33<td colspan=3 valign=bottom> <br>34<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>35 36<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>37<td width="100%"><dl><dt><a name="-Text_predict"><strong>Text_predict</strong></a>(trained_model, tokenizer)</dt><dd><tt>功能:调用预测模型来预测文本类别,展示结果<br>38 <br>39:param trained_model: 训练好的模型<br>40:param tokenizer: 预训练模型的分词器<br>41:return: 无</tt></dd></dl>42 <dl><dt><a name="-compute_metrics"><strong>compute_metrics</strong></a>(y_true, y_pred)</dt><dd><tt>功能:定义计算模型性能指标函数<br>43 <br>44:param y_true: 真实的标签列表<br>45:param y_pred: 预测的标签列表<br>46:return:返回各项计算结果</tt></dd></dl>47 <dl><dt><a name="-create_data_list"><strong>create_data_list</strong></a>(data_list_path)</dt><dd><tt>:param data_list_path: 样本数字化文本的指定生成路径<br>48:return: 谣言和非谣言的数字化文本 文本向量化</tt></dd></dl>49 <dl><dt><a name="-create_dict"><strong>create_dict</strong></a>(data_path, dict_path)</dt><dd><tt>:param data_path: 样本数据路径<br>50:param dict_path: 生成字典路径<br>51:return: None</tt></dd></dl>52 <dl><dt><a name="-cuda_is_available"><strong>cuda_is_available</strong></a>()</dt><dd><tt>功能:检查GPU是否可用,不可用则退出程序</tt></dd></dl>53 <dl><dt><a name="-data_preprocessing"><strong>data_preprocessing</strong></a>(src_path, target_path)</dt><dd><tt>功能:<br>54解压原始数据集,将Rumor_Dataset.zip解压至data目录下,<br>55并解析出谣言和非谣言数据,并将所有数据写入all_data.txt<br>56 <br>57:param src_path: 需要解压的文件的路径<br>58:param target_path: 解压之后的文件存放路径<br>59:return: 所有数据写入all_data.txt</tt></dd></dl>60 <dl><dt><a name="-get_dict_len"><strong>get_dict_len</strong></a>(dict_path)</dt><dd><tt>:param dict_path: 字典的路径<br>61:return: 字典长度</tt></dd></dl>62 <dl><dt><a name="-get_rumor_norumor_num"><strong>get_rumor_norumor_num</strong></a>(data_path)</dt><dd><tt>功能:<br>63获取谣言和非谣言的数据条数<br>64 <br>65:param data_path: 扩充后的数据集地址<br>66:return: 无</tt></dd></dl>67 <dl><dt><a name="-log_config"><strong>log_config</strong></a>()</dt><dd><tt>功能:配置日志</tt></dd></dl>68 <dl><dt><a name="-main"><strong>main</strong></a>()</dt><dd><tt># 主函数入口</tt></dd></dl>69 <dl><dt><a name="-model_eval"><strong>model_eval</strong></a>(model, test_tensor)</dt><dd><tt>功能:测试训练好的模型的性能<br>70 <br>71:param model: 训练(微调)好的模型<br>72:param test_tensor: 输入的测试数据,数据类型为tensor<br>73:return: 无</tt></dd></dl>74 <dl><dt><a name="-model_train"><strong>model_train</strong></a>(model, train_tensor)</dt><dd><tt>功能:<br>75输入训练数据,训练(微调)模型<br>76 <br>77:param model: 定义的预训练模型<br>78:param train_tensor: 输入的训练数据,数据类型为tensor<br>79:return: 训练(微调)好的模型</tt></dd></dl>80 <dl><dt><a name="-one_hot_encoding"><strong>one_hot_encoding</strong></a>(label_ids, num_labels)</dt><dd><tt>功能:对标签进行独热编码<br>81 <br>82:param label_ids: 标签,一般是个list或者tensor<br>83:param num_labels: 标签数量<br>84:return: 独热编码之后的标签</tt></dd></dl>85 <dl><dt><a name="-predicted"><strong>predicted</strong></a>(text, model, tokenizer)</dt><dd><tt>功能:输入一条文本,调用模型,返回预测结果<br>86 <br>87:param text: 输入的文本,类型为str<br>88:param model: 训练好的模型<br>89:param tokenizer: 预训练模型的分词器<br>90:return: 返回预测的标签和概率</tt></dd></dl>91 <dl><dt><a name="-read_data"><strong>read_data</strong></a>(filename, tokenizer, max_seq_length=256)</dt><dd><tt>功能:<br>92读取数据并将其转换为模型所需的格式<br>93 <br>94:param filename: 需要转换的数据的路径<br>95:param tokenizer: 模型的分词器<br>96:param max_seq_length: 最长文本长度,大于则截断,小于则填充<br>97:return: 转换成模型所需格式的数据</tt></dd></dl>98 <dl><dt><a name="-show_animation"><strong>show_animation</strong></a>(train_losses)</dt><dd><tt>功能:展示训练损失的动态过程图<br>99 <br>100:param train_losses: 训练的总损失<br>101:return: 无</tt></dd></dl>102 <dl><dt><a name="-splitting_dataset"><strong>splitting_dataset</strong></a>(data_path, train_size=0.9)</dt><dd><tt>功能:<br>103按照特定比例划分数据集,默认比例为9:1<br>104 <br>105:param data_path: 需要划分的数据的地址<br>106:param train_size: 训练集的占比大小,默认为0.9<br>107:return: 训练集和测试集的数据地址<br>108train_data_path = './data/train_data.txt'<br>109test_data_path = './data/test_data.txt'</tt></dd></dl>110</td></tr></table>111</body></html>