我假设您使用的是词袋,逗号和点是您的功能之一(X
矩阵中的一列)。
+-------------------------+-----------+-----------+----+
| Document/Features | Genuinely | unnerving | . |
+-------------------------+-----------+-----------+----+
| Genuinely unnerving . | 1 | 1 | 1 |
| Genuinely unnerving | 1 | 1 | 0 |
+-------------------------+-----------+-----------+----+
理想的算法应该了解这些特征是否相关。例如,在逻辑回归的情况下,您的算法会为相应的列分配一个非常小的权重,因此该列中的 a1
或 a0
不会改变预测的结果。所以你会有类似的东西:
"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
在您的情况下,它们看起来似乎有一些小的影响。这真的是个问题吗?您已经发现了一些特殊情况,它们看起来是错误的,但是通过查看数据,算法发现带点的句子比不带点的句子更消极。也许您应该相信从统计学上讲,一个点可以改变句子的含义。
也可能发生您有错误的训练数据或错误的过拟合模型。如果您真的认为有问题,那么您可以通过表示句子使它们无法区分,例如通过忽略一些标点符号,将这些知识强加到模型上。
我认为一次去掉所有标点符号是错误的,例如,a!
可能代表非常积极的情绪yes
,如果你把它从你的句子中去掉,你就会隐藏模型有价值的信息。但可能恰恰相反,!
在大多数情况下为负数,因此在训练后得到了很高的负权重,这在预测yes!!!
类似句子时会混淆模型。在这种情况下,您可以将句子表示为二元组,以便模型可以分别加权单个!
和(yes, !)
组合的效果。
所以在简历中,你应该尝试不同的模型和方法来表示你的数据,看看什么是有效的。