


"""simple docstring"""

import os

# Precomputes a list of the 100 first triangular numbers
UpperCAmelCase__  							=[int(0.5 * n * (n + 1)) for n in range(1, 101)]


def lowerCAmelCase_      (				):






 """simple docstring"""







 __lowercase									=	os.path.dirname(os.path.realpath(SCREAMING_SNAKE_CASE_ ) )
 __lowercase									=	os.path.join(SCREAMING_SNAKE_CASE_				,   """words.txt""" )

 __lowercase									=	""""""
 with open(SCREAMING_SNAKE_CASE_ ) as f:
  __lowercase									=	f.readline()

 __lowercase									=	[word.strip("""\"""" ) for word in words.strip("""\r\n""" ).split(""",""" )]
 __lowercase									=	[
     word
     for word in [sum(ord(SCREAMING_SNAKE_CASE_ ) - 64 for x in word ) for word in words]
     if word in TRIANGULAR_NUMBERS
 ]
 return len(SCREAMING_SNAKE_CASE_ )


if __name__ == "__main__":
       print(solution())




"""simple docstring"""

import argparse
import logging
import pickle
from collections import Counter


logging.basicConfig(
    format="%(asctime)s - %(levelname)s - %(name)s - %(message)s", datefmt="%m/%d/%Y %H:%M:%S", level=logging.INFO
)
UpperCAmelCase__  							=logging.getLogger(__name__)

if __name__ == "__main__":
       UpperCAmelCase__  							=argparse.ArgumentParser(
           description="Token Counts for smoothing the masking probabilities in MLM (cf XLM/word2vec)"
       )
       parser.add_argument(
           "--data_file", type=str, default="data/dump.bert-base-uncased.pickle", help="The binarized dataset."
       )
       parser.add_argument(
           "--token_counts_dump", type=str, default="data/token_counts.bert-base-uncased.pickle", help="The dump file."
       )
       parser.add_argument("--vocab_size", default=3_0522, type=int)
       UpperCAmelCase__  							=parser.parse_args()

       logger.info(f"""Loading data from {args.data_file}""")
       with open(args.data_file, "rb") as fp:
              UpperCAmelCase__  							=pickle.load(fp)

       logger.info("Counting occurrences for MLM.")
       UpperCAmelCase__  							=Counter()
       for tk_ids in data:
              counter.update(tk_ids)
       UpperCAmelCase__  							=[0] * args.vocab_size
       for k, v in counter.items():
              UpperCAmelCase__  							=v

       logger.info(f"""Dump to {args.token_counts_dump}""")
       with open(args.token_counts_dump, "wb") as handle:
              pickle.dump(counts, handle, protocol=pickle.HIGHEST_PROTOCOL)
