读入数据(JSON):train 为 [[text, label], ...],test 为 ["text1", ...]。
数据清洗:
" ".join(text.split()))。特征工程:
CountVectorizer(ngram_range=(1,2), min_df=1, token_pattern=r'(?u)\b\w+\b')在仅使用 numpy/ pandas / scikit−learn的前提下,完成一个英文短文本情感二分类流程:
1.数据清洗(统一大小写、去掉多余空字符)
2.特征工程:CountVectorizer(1−2gram,mindf=1) → TfidfTransformer
3.模型:LogisticRegression(penalty="12",C=1.0,solver="lbfgs", max_iter=500,random_state=42)
4.预测:概率≥0.5→正面1,否则0
1.读取数据
输入JSON格式
{
"train": [I"I love this movie", 1],
["Awful and boring", 0],
…]
"test" : ["Great plot!", "Terrible acting"]
}
train: 每行[text,label],labelE{0,1}”
test:仅文本列表
2.预处理
i.将文本统一转成小写
ii.去首尾空白、再单空格重连,消除多余空格
3.特征工程
使用CountVectorizer与TfidfTransformer{}处理特征,先fit+transform 训练集,再仅transform测试集
4.模型训练&预测
在训练TF−IDF特征上 fitLogisticRegression
对测试集计算正类概率;≥0.5→1 ,否则 0
{
"train": [["good movie",1].,["bad movie",0],["great acting",1),["terrible plot",0]].
"test": ["good acting", "bad plot"]
}
训练集每条数据一条文本,一个标签,训练数据量 ≥4 ,测试集只有文本
单行JSON数组,顺序与 test 对应,如 [1,0,1]
1.为确保通过测试用例,所有随机过程均设置randomstate=42
2.仅允许使用 numpy / pandas / scikit−learn
3.所有的整数类型应转换为 Python 原生 int 类型,以确保能够顺利进行 JSON 序列化
输入
{"train":[["good movie", 1],["great film",1],["bad movie",0],["terrible fiim",0]], "test":["good film", "bad film"]}
输出
[1,0]