我正在研究Kaggle电影情感分析,我发现电影评论已经使用斯坦福解析器进行了解析。在探索数据集时,我发现相同的陈述给出了不同的信息-
their parents , wise folks that they are , 2
their parents , wise folks that they are 3
Genuinely unnerving . 3
Genuinely unnerving 1
其中英语是解析的数据,数字属于情感。现在,如果您检查该行,只需逗号和一个点,则其余部分的差异是相同的,但两者都属于不同的情绪,这给我分类带来了很多麻烦。
在文本分类中我应该怎么做才能避免这样的问题,如果我忽略重复并使用已经添加的情绪,我的分类出了可怕的错误,那么应该有什么方法来解决这种情况。
我假设你正在使用单词袋,逗号和点是你的特征之一(X
矩阵中的一列)。
+-------------------------+-----------+-----------+----+
| Document/Features | Genuinely | unnerving | . |
+-------------------------+-----------+-----------+----+
| Genuinely unnerving . | 1 | 1 | 1 |
| Genuinely unnerving | 1 | 1 | 0 |
+-------------------------+-----------+-----------+----+
理想的算法应该了解这些特征是否相关。例如,在逻辑回归的情况下,您的算法会为相应的列分配一个非常小的权重,因此该列中的1
或0
不会更改预测的结果。所以你会有这样的东西:
"Genuinely unnerving ." -> 0.5*1 + -2.3*1 + 0.000001*1 -> Negative
"Genuinely unnerving " -> 0.5*1 + -2.3*1 + 0.000001*0 -> Also negative
在您的情况下,它们似乎产生了一些小影响。这真的是一个问题吗?您发现了一些特殊情况,这似乎是错误的,但是通过查看数据,该算法发现带点的句子比没有点的句子更消极。也许你应该相信,从统计学上讲,一个点可以改变一个句子的含义。
也可能发生训练数据错误或过度拟合模型错误的情况。如果你真的认为有什么问题,那么你可以通过表示句子来将这些知识强加给模型,使它们无法区分,例如通过忽略一些标点符号。
我认为一次省略所有标点符号是错误的,例如,当伴随着单词yes
时,!
可以代表非常积极的情绪,如果您将其从句子中删除,您将隐藏模型有价值的信息。但可能恰恰相反,!
在大多数情况下是负的,所以它在训练后会得到很高的负权重,这在预测类似句子yes!!!
时会混淆模型。在这种情况下,您可以将句子表示为双字母,以便模型可以分别加权单个!
和(yes, !)
组合的效果。
因此,在简历中,您应该尝试不同的模型和方法来表示您的数据,看看哪些有效。