code: def demo(scorer=None, compare_scorer=None):
      """Finds bigram collocations in the files of the WebText corpus."""
      from nltk.metrics import (
          BigramAssocMeasures,
          ranks_from_scores,
          spearman_correlation,
      )
  
      if scorer is None:
          scorer = BigramAssocMeasures.likelihood_ratio
      if compare_scorer is None:
          compare_scorer = BigramAssocMeasures.raw_freq
  
      from nltk.corpus import stopwords, webtext
  
      ignored_words = stopwords.words("english")
      word_filter = lambda w: len(w) < 3 or w.lower() in ignored_words
  
      for file in webtext.fileids():
          words = [word.lower() for word in webtext.words(file)]
  
          cf = BigramCollocationFinder.from_words(words)
          cf.apply_freq_filter(3)
          cf.apply_word_filter(word_filter)
  
          corr = spearman_correlation(
              ranks_from_scores(cf.score_ngrams(scorer)),
              ranks_from_scores(cf.score_ngrams(compare_scorer)),
          )
          print(file)
          print("\t", [" ".join(tup) for tup in cf.nbest(scorer, 15)])
          print(
              f"\t Correlation to {compare_scorer.__name__}: {corr:0.4f}"
          )
  
imports: import itertools
  from nltk.metrics import BigramAssocMeasures, ContingencyMeasures, QuadgramAssocMeasures, TrigramAssocMeasures
  from nltk.metrics.spearman import ranks_from_scores, spearman_correlation
  from nltk.probability import FreqDist
  from nltk.util import ngrams
label_desc: Use image node_id 1 for calling a global function with example usage: demo(scorer, compare_scorer) without return types