I want to apply this paper : Text Classification Improved by Integrating Bidirectional LSTM with Two-dimensional Max Pooling; for multi-class text classification problem (news classification). But **I don’t know how to create the architecture**.

please if you know how to build it I will be so pleasure to see how.

Any help or advice will appreciated.

Here is my code if some one want a good starter:

```
from torch import nn
from torch.nn import functional as F
import torch
class Model(nn.Module):
def __init__(self, vocab_size, embedding_dim, hidden_size, n_filters, n_layers, output_size, p):
super().__init__()
self.Embedding = nn.Embedding(vocab_size, embedding_dim)
self.LSTM = nn.LSTM(embedding_dim, hidden_size, num_layers=n_layers, bidirectional=True, batch_first=True, dropout=p)
self.Conv2d = nn.Conv2d(hidden_size, n_filters, kernel_size=2)
self.MaxPool2d = nn.MaxPool2d(2)
def forward(self, x, features=None):
Embedding = self.Embedding(x)
output, (hidden, cell) = self.LSTM(Embedding)
print(self.Conv2d(hidden))
vocab_size = 5
embedding_dim = 55
hidden_size = 300
n_filters = 25
n_layers = 2
output_size = 2
p = 0.5
clf = Model(vocab_size, embedding_dim, hidden_size, n_filters, n_layers, output_size, p)
a = torch.ones((1, 5), dtype=torch.long)
print('a: ', a)
print('clf: ', clf(a))
```