import numpy as np
import torch
# max_seq_length = 3
# max_ngram_in_seq = 2
ngram_positions_matrix = np.array([[10, 12],
[10, 3],
[2, 3]])
ngram_positions_matrix = torch.from_numpy(ngram_positions_matrix.astype(np.float))
ngram_positions_matrix = torch.div(ngram_positions_matrix, torch.stack(
[torch.sum(ngram_positions_matrix, 1)] * ngram_positions_matrix.size(1)).t() + 1e-10)
ngram_positions_matrix = ngram_positions_matrix.numpy()
print(ngram_positions_matrix)