点击诱导性标题识别:文本分类模型构建与评估
点击诱导性标题识别:文本分类模型构建与评估
在这个项目中,您将建立一个文本分类模型,用于识别'点击诱导性标题',即主要目的是吸引注意力并引导读者点击链接的文本标题。
您将使用其他NLP研究人员在GitHub上创建和共享的数据:
- 正面例子:https://github.com/pfrcks/clickbait-detection/blob/master/clickbait
- 负面例子:https://github.com/pfrcks/clickbait-detection/blob/master/not-clickbait
问题1 - 读取数据 (5 分)
• 使用Python,读取两个点击诱导性标题数据集(参见数据部分),并将它们合并成一个单一的、随机打乱的数据集。(一个用于打乱数据的函数是numpy.random.shuffle) • 接下来,将您的数据集分成训练集、测试集和验证集。使用 72% 训练集、8% 验证集和 20% 测试集的划分。(相当于 20% 的测试集,其余部分按 90%/10% 的比例划分成训练集和验证集)。 o 如果你愿意,你可以将每个划分保存为一个索引(行号列表),而不是创建三个单独的数据集。 • 每个数据集的'目标率'是多少?也就是说,测试集中有多少比例被标记为点击诱导性标题?在你的笔记本中展示你的结果。
问题2 - 基准性能 (10 分 - 在Blackboard中回答)
• 假设您有一个简单的基准分类器,它将呈现给它的所有文本都标记为点击诱导性标题。这种分类器在您的测试集上的精确度、召回率和 F1 分数是多少?您认为还有其他好的基准分类器可以提供更高的 F1 分数吗?
问题1 代码:
import numpy as np
import pandas as pd
# 读取点击诱导性标题数据
clickbait_data = pd.read_csv('clickbait_data.csv')
# 读取非点击诱导性标题数据
not_clickbait_data = pd.read_csv('not_clickbait_data.csv')
# 合并两个数据集
combined_data = pd.concat([clickbait_data, not_clickbait_data])
# 打乱数据集
shuffled_data = combined_data.sample(frac=1, random_state=42)
# 划分训练集、验证集和测试集
train_size = int(0.72 * len(shuffled_data))
val_size = int(0.08 * len(shuffled_data))
train_data = shuffled_data[:train_size]
val_data = shuffled_data[train_size:train_size+val_size]
test_data = shuffled_data[train_size+val_size:]
# 计算目标率
clickbait_rate = len(test_data[test_data['label'] == 'clickbait']) / len(test_data) * 100
not_clickbait_rate = len(test_data[test_data['label'] == 'not-clickbait']) / len(test_data) * 100
print("Clickbait rate:", clickbait_rate)
print("Not clickbait rate:", not_clickbait_rate)
问题2 代码:
# 假设每个文本都被分类为点击诱导性标题
predicted_labels = ['clickbait'] * len(test_data)
# 计算精确度
precision = len(test_data[test_data['label'] == predicted_labels]) / len(test_data)
# 计算召回率
recall = len(test_data[test_data['label'] == predicted_labels]) / len(test_data[test_data['label'] == 'clickbait'])
# 计算F1-score
f1_score = 2 * (precision * recall) / (precision + recall)
print("Precision:", precision)
print("Recall:", recall)
print("F1-score:", f1_score)
请注意,以上代码仅提供了一个示例,实际情况中可能需要根据数据的格式和结构进行适当的修改。
原文地址: http://www.cveoy.top/t/topic/bjLV 著作权归作者所有。请勿转载和采集!