code: def numberize(
      self,
      text_row: Optional[List[str]],
      token_row: Optional[List[List[str]]],
      language_row: List[str],
  ) -> Tuple[List[int], List[int], int, List[int]]:
      per_sentence_tokens, per_sentence_languages = self.tokenize(
          text_row, token_row, language_row
      )
  
      token_ids: List[int] = []
      language_ids: List[int] = []
      max_seq_len: int = self.max_seq_len // len(per_sentence_tokens)
  
      # concatinate tokens from each text in the same row into a single list of tokens
      for idx in range(len(per_sentence_tokens)):
          lookup_token_ids, lookup_language_ids = self._lookup_tokens(
              per_sentence_tokens[idx],
              per_sentence_languages[idx],
              max_seq_len,
          )
          token_ids.extend(lookup_token_ids)
          language_ids.extend(lookup_language_ids)
      seq_len: int = len(token_ids)
      positions: List[int] = [i for i in range(seq_len)]
  
      return token_ids, language_ids, seq_len, positions
  
file_path: pytext/pytext/torchscript/tensorizer/xlm.py
imports: from typing import List, Optional, Tuple
  import torch
  from pytext.torchscript.utils import pad_2d_mask
  from pytext.torchscript.vocab import ScriptVocabulary
  from .tensorizer import ScriptTensorizer, VocabLookup
label_desc: Use image node_id 4 for calling the ScriptXLMTensorizer obj's underlying member method code with example usage: obj.numberize(text_row, token_row, language_row) and returns: token_ids,  language_ids,  seq_len,  positions