如何更好地在单个单词上训练情感类型模型?

How do I better train a sentiment-type model on single words?

提问人:nm313 提问时间:11/13/2023 最后编辑:desertnautnm313 更新时间:11/13/2023 访问量:33

问:

我正在尝试制作一个模型来预测一个句子是否“健康”、“昂贵/便宜”和/或“多样”。

示例数据

Text,Healthy,Expensive,Varied
"Apple",1,0,0
"Truffle",1,1,0
"Pizza",0,0,0
"I love to eat Apples",1,0,0
"I hate to eat Pizza",1,0,0
"I cooked with Apples, Bananas, and Truffles",1,1,1

想象一下,我有数以千计的单独评分的食物和句子,我希望预测我的文本是健康的(没有不健康的食物或否定的不健康食物)、昂贵(至少一种昂贵的食物)和/或多样的(多个项目)。

一些示例代码:

df = pd.read_csv("../data/scored_data.csv", usecols=['text', 'healthy'], sep='\,', encoding='utf-8').replace('"','', regex=True)

...
X = d["text"]
y = d["healthy"]
X_train, X_valid, y_train, y_valid = train_test_split(
    X,
    y,
    test_size=0.33,
    stratify=y
)

sentiment_classifier = Pipeline(steps=[
('pre_processing',TfidfVectorizer(lowercase=False)),
('naive_bayes',MultinomialNB())
])


sentiment_classifier.fit(X_train,y_train)

y_preds = sentiment_classifier.predict(X_valid)

我试图简单地从“健康”开始,但没有得到我期望的结果。

我以为当我输入“苹果”时,我会看到健康,但它很少起作用,除非我有一个更长的过度修饰的句子,例如“我喜欢吃苹果、梨和胡萝卜,每天吃更多的苹果”。

不太确定我做错了什么。我知道正常的情感分析最适合单词的关联而不是单个单词,但我仍然希望在我的训练集中为这些单个单词获得更准确的结果。

我试过了

  • 创建评分数据集
  • 训练模型
  • 测试模型

预期 “苹果”->健康 (1)

结果 “Apple” -> 不健康 (0)

python pandas 机器学习 scikit-learn 情感分析

评论


答: 暂无答案