Should I apply 1D or 2D CNN on binary text classification?
The standard way would be to apply 1D convolution.

While technically there is nothing preventing you to implement a 2D convolution over your textual representations, they would be "less expressive" than normal 1D convolutions:


In a normal 1D convolution, the kernel would have depth 100 and the width you choose (e.g. 3, 5). The kernel is slid through the "time" dimension and is computed over the whole channel dimension:





In order to compute a 2D convolution over your text, the 2 dimensions would be time and channels. You could have the kernel height be 100 and therefore take the whole channel dimension, but this would be analogous to a 1D convolution, no there is no point in doing so. Therefore, for having a 2D convolution, you would have a kernel that does not cover the whole channel dimension at a time:




Therefore, while it is possible to have a 2D convolution over text, it would be less expressive that the 1D convolution kernel, which covers the whole channel dimension and can, therefore, express any computation a 2D convolution can

So the answer is that you should use a 1D convolution. This is what makes sense and what people do.

(Images were taken from here and here)