class_docstr: Wraps NgramAssocMeasures classes such that the arguments of association
  measures are contingency table values rather than marginals.
class_docstr_tok: ["Wraps","NgramAssocMeasures","classes","such","that","the","arguments","of","association","measures","are","contingency","table","values","rather","than","marginals","."]
docstr: From an association measure function, produces a new function which
  accepts contingency table values as its arguments.
docstr_tok: ["From","an","association","measure","function",",","produces","a","new","function","which","accepts","contingency","table","values","as","its","arguments","."]
code: def _make_contingency_fn(measures, old_fn):
      """From an association measure function, produces a new function which
      accepts contingency table values as its arguments.
      """
  
      def res(*contingency):
          return old_fn(*measures._marginals(*contingency))
  
      res.__doc__ = old_fn.__doc__
      res.__name__ = old_fn.__name__
      return res
  
imports: import math
  from abc import ABCMeta, abstractmethod
  from functools import reduce
label_desc: Use image node_id 2 for calling the ContingencyMeasures obj's underlying member method code with example usage: obj._make_contingency_fn(measures, old_fn) and returns: res, old_fn