diff --git a/.gitignore b/.gitignore index 8d06e75..b0f2758 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ .vscode/ .DS_Store src/altk.egg-info - +**/*.pkl # Distribution/build dist/ diff --git a/README.md b/README.md index d71525e..db0dfa2 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ First, set up a virtual environment (e.g. via [miniconda](https://docs.conda.io/ ## Getting started -- Check out the [examples](https://github.com/CLMBRs/ultk/tree/main/src/examples), starting with a basic signaling game. The examples folder also contains a simiple efficient communication analysis of [indefinites](https://github.com/CLMBRs/ultk/tree/main/src/examples/indefinites). +- Check out the [examples](https://github.com/CLMBRs/ultk/tree/main/src/examples), starting with a simiple efficient communication analysis of [indefinites](https://github.com/CLMBRs/ultk/tree/main/src/examples/indefinites) and a comparison of two approaches to efficient communication, with modals as a test case. - To see more scaled up usage examples, visit the codebase for an efficient communication analysis of [modals](https://github.com/nathimel/modals-effcomm) or [sim-max games](https://github.com/nathimel/rdsg). - For an introduction to efficient communication research, here is a [survey paper](https://www.annualreviews.org/doi/abs/10.1146/annurev-linguistics-011817-045406) of the field. - For an introduction to the RSA framework, see [this online textbook](http://www.problang.org/). @@ -51,7 +51,7 @@ Unit tests are written in [pytest](https://docs.pytest.org/en/7.3.x/) and execut
Figures: -> Kemp, C. & Regier, T. (2012) Kinship Categories Across Languages Reflect General Communicative Principles. Science. https://www.science.org/doi/10.1126/science.1218811 +> Kemp, C. & Regier, T. (2012). Kinship Categories Across Languages Reflect General Communicative Principles. Science. https://www.science.org/doi/10.1126/science.1218811 > Zaslavsky, N., Kemp, C., Regier, T., & Tishby, N. (2018). Efficient compression in color naming and its evolution. Proceedings of the National Academy of Sciences, 115(31), 7937–7942. https://doi.org/10.1073/pnas.1800521115 @@ -64,7 +64,6 @@ Unit tests are written in [pytest](https://docs.pytest.org/en/7.3.x/) and execut
Links: -> Imel, N. (2023). The evolution of efficient compression in signaling games. PsyArXiv. https://doi.org/10.31234/osf.io/b62de > Imel, N., & Steinert-Threlkeld, S. (2022). Modal semantic universals optimize the simplicity/informativeness trade-off. Semantics and Linguistic Theory, 1(0), Article 0. https://doi.org/10.3765/salt.v1i0.5346 diff --git a/docs/search.js b/docs/search.js index 5cea64c..d40f31e 100644 --- a/docs/search.js +++ b/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();oThe Unnatural Language ToolKit (ULTK)\n\n

\"Four

\n\n

Introduction

\n\n

ULTK is a software library that aims to support efficient communication analyses of natural language. This is a line of research that aims to explain why natural languages have the structure that they do in terms competing pressures to minimize cognitive complexity and maximize communicative accuracy.

\n\n

Key features:

\n\n
    \n
  • Primitives for constructing semantic spaces, expressions, and languages
  • \n
  • Tools for measuring informativity of languages, communicative success of RSA speakers and listeners
  • \n
  • Language population sampling and optimization w.r.t Pareto fronts
  • \n
  • Rate-Distortion and Information Bottleneck style analyses
  • \n
\n\n

ULTK is a long term project and it is currently in its early stages. It is intended to help lower the barrier to entry for certain research in computational semantics, and to unify methodologies. If you find something confusing, please open an issue. If you have a phenomena of interest in linguistic semantics that you want to run an efficient communication analysis on, please contact the contributors.

\n\n

Read the documentation.

\n\n

Installing ULTK

\n\n

First, set up a virtual environment (e.g. via miniconda, conda create -n ultk python=3.11, and conda activate ultk).

\n\n
    \n
  1. Download or clone this repository and navigate to the root folder.

  2. \n
  3. Install ULTK (We recommend doing this inside a virtual environment)

    \n\n

    pip install -e .

  4. \n
\n\n

Getting started

\n\n
    \n
  • Check out the examples, starting with a basic signaling game. The examples folder also contains a simiple efficient communication analysis of indefinites.
  • \n
  • To see more scaled up usage examples, visit the codebase for an efficient communication analysis of modals or sim-max games.
  • \n
  • For an introduction to efficient communication research, here is a survey paper of the field.
  • \n
  • For an introduction to the RSA framework, see this online textbook.
  • \n
\n\n

Modules

\n\n

There are two modules. The first is ultk.effcomm, which includes methods for measuring informativity of languages and/or communicative success of Rational Speech Act agents, and for language population sampling and optimization w.r.t Pareto fronts.

\n\n

The second module is ultk.language, which contains primitives for constructing semantic spaces, expressions, and languages. It also has a grammar module which can be used for building expressions in a Language of Thought and measuring complexity in terms of minimum description length, as well as for natural language syntax.

\n\n

The source code is available on github here.

\n\n

Testing

\n\n

Unit tests are written in pytest and executed via running pytest in the src/tests folder.

\n\n

References

\n\n

\nFigures:

\n\n
\n

Kinship Categories Across Languages Reflect General Communicative Principles | Science. (n.d.). Retrieved February 27, 2023, from https://www.science.org/doi/10.1126/science.1218811

\n
\n\n
\n

Zaslavsky, N., Kemp, C., Regier, T., & Tishby, N. (2018). Efficient compression in color naming and its evolution. Proceedings of the National Academy of Sciences, 115(31), 7937\u20137942. https://doi.org/10.1073/pnas.1800521115

\n
\n\n
\n

Deni\u0107, M., Steinert-Threlkeld, S., & Szymanik, J. (2022). Indefinite Pronouns Optimize the Simplicity/Informativeness Trade-Off. Cognitive Science, 46(5), e13142. https://doi.org/10.1111/cogs.13142

\n
\n\n
\n

Steinert-Threlkeld, S. (2021). Quantifiers in Natural Language: Efficient Communication and Degrees of Semantic Universals. Entropy, 23(10), Article 10. https://doi.org/10.3390/e23101335

\n
\n\n

\n\n

\nLinks:

\n\n
\n

Imel, N. (2023). The evolution of efficient compression in signaling games. PsyArXiv. https://doi.org/10.31234/osf.io/b62de

\n
\n\n
\n

Imel, N., & Steinert-Threlkeld, S. (2022). Modal semantic universals optimize the simplicity/informativeness trade-off. Semantics and Linguistic Theory, 1(0), Article 0. https://doi.org/10.3765/salt.v1i0.5346

\n
\n\n
\n

Kemp, C., Xu, Y., & Regier, T. (2018). Semantic Typology and Efficient Communication. Annual Review of Linguistics, 4(1), 109\u2013128. https://doi.org/10.1146/annurev-linguistics-011817-045406

\n
\n\n

\n"}, "ultk.effcomm": {"fullname": "ultk.effcomm", "modulename": "ultk.effcomm", "kind": "module", "doc": "

Tools for measuring languages for communicative efficiency.

\n\n

Submodules divide the labor of a computational experiment performing an efficiency analysis of a language into several parts: generating and sampling the space of possible languages, measuring their properties, and determining which languages optimize efficient trade-offs w.r.t these properties.

\n\n

The altk.effcomm.sampling submodule implements several methods for generating hypothetically possible languages of a given type, by sampling from a set of possible expressions, or permuting the expression-meaning mapping of an existing language.

\n\n

The altk.effcomm.optimization submodule contains a general implementation of an evolutionary algorithm, which can be used to estimate a Pareto frontier of optimal solutions to an efficiency trade-off. It can also be used as a technique for randomly exploring the space of possible languages.

\n\n

The altk.effcomm.tradeoff submodule contains tools for measuring a pool of languages for various properties, finding which languages are Pareto dominant with respect to two properties, and setting attributes of the language objects for further analysis.

\n\n

The altk.effcomm.analysis submodule contains tools for performing numerical analyses and producing paradigmatic plots of languages in 2D trade-off space.

\n\n

The altk.effcomm.information submodule contains tools for information theory based analyses of the communicative efficiency of languages. It includes methods for Rate-Distortion style (including the Information Bottleneck) analyses.

\n\n

The altk.effcomm.agent submodule implements classes for constructing various speakers and listeners of a language. These are typically used in static analyses of informativity of a language, and are unified abstractions from the Rational Speech Act framework. They can also be used for dynamic analyses, however (see the signaling game example).

\n\n

The altk.effcomm.informativity submodule implements tools for computing the literal or pragmatic informativity of a language, based on speaker/listener abstractions described above.

\n\n

The altk.effcomm.util submodule contains various helper functions for working with the probability distributions associated with ALTK abstractions.

\n"}, "ultk.effcomm.agent": {"fullname": "ultk.effcomm.agent", "modulename": "ultk.effcomm.agent", "kind": "module", "doc": "

Classes for representing communicative agents, such as Senders and Receivers figuring in Lewis-Skyrms signaling games, literal and pragmatic agents in the Rational Speech Act framework, etc.

\n"}, "ultk.effcomm.agent.CommunicativeAgent": {"fullname": "ultk.effcomm.agent.CommunicativeAgent", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent", "kind": "class", "doc": "

\n"}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.__init__", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, "ultk.effcomm.agent.CommunicativeAgent.language": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.language", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.language", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.shape", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.shape", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.weights", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.weights", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.normalized_weights", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.normalized_weights", "kind": "function", "doc": "

Return the normalized weights of a CommunicativeAgent so that each row vector represents a probability distribution.

\n", "signature": "(self) -> None:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.initialize_weights", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.initialize_weights", "kind": "function", "doc": "

Initialize the agent's weight matrix.

\n\n
Arguments:
\n\n
    \n
  • weights: an np.ndarray representing the weights to initialize the agent with. By default None, and the agent's weights will be initialized uniformly.
  • \n
  • initial: {'ones', 'random'} a str reprsenting the initialization method to use. If 'ones' (default), initialize the weight matrix with np.ones. If 'random', initalize the weight matrix from np.random.uniform.
  • \n
\n", "signature": "(self, weights: numpy.ndarray = None, initial='ones') -> None:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.referent_to_index", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.referent_to_index", "kind": "function", "doc": "

\n", "signature": "(self, referent: ultk.language.semantics.Referent) -> int:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.index_to_referent", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.index_to_referent", "kind": "function", "doc": "

\n", "signature": "(self, index: int) -> ultk.language.semantics.Referent:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.expression_to_index", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.expression_to_index", "kind": "function", "doc": "

\n", "signature": "(self, expression: ultk.language.language.Expression) -> int:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.index_to_expression", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.index_to_expression", "kind": "function", "doc": "

\n", "signature": "(self, index: int) -> ultk.language.language.Expression:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.strategy_to_indices", "kind": "function", "doc": "

Maps communicative strategies to weights.

\n\n

Given a expression and referent, access the corresponding weight coordinate.

\n\n
Arguments:
\n\n
    \n
  • strategy: a dict of the form {\"referent\": Referent, \"expression\": expression} representing an instance of communicative behavior, which we may call a communicative strategy for this agent.
  • \n
\n", "signature": "(self, strategy: dict[str, typing.Any]) -> tuple[int]:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.sample_strategy", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.sample_strategy", "kind": "function", "doc": "

Sample a communicative strategy (e.g., a word for Speaker's intended referent, or interpretation for Listener's heard word) by uniformly sampling from a row vector of the agent's weight matrix specified by the index.

\n\n
Arguments:
\n\n
    \n
  • index: the integer index representing a row of the weight matrix.
  • \n
\n\n
Returns:
\n\n
\n

the integer index of the agent's choice

\n
\n", "signature": "(self, index: int) -> int:", "funcdef": "def"}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"fullname": "ultk.effcomm.agent.CommunicativeAgent.to_language", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.to_language", "kind": "function", "doc": "

Get a language from the agent, representing its current (possibly learned) communicative behavior.

\n\n
This function uses:
\n\n
\n
    \n
  1. the agent's weight matrix,
  2. \n
  3. the set of expression forms, and
  4. \n
  5. the set of referents
  6. \n
\n
\n\n

from the language the agent was initialized with to generate a new language accurately reflecting the new expression meanings, e.g. how the agent interprets expressions as meaning zero or more referents.

\n\n
Arguments:
\n\n
    \n
  • threshold: a float in [0,1] representing the cutoff for determining if a meaning (referent) can be communicated by a expression. Because weights are not initialized to 0, it is a good idea to set nonzero values as the threshold.
  • \n
\n\n
Returns:
\n\n
\n

a Language corresponding to the form-meaning mapping defined by the communicative agent's weights.

\n
\n", "signature": "(\tself,\tdata: dict = {'complexity': None, 'accuracy': None},\tthreshold: float = 0.1) -> ultk.language.language.Language:", "funcdef": "def"}, "ultk.effcomm.agent.Speaker": {"fullname": "ultk.effcomm.agent.Speaker", "modulename": "ultk.effcomm.agent", "qualname": "Speaker", "kind": "class", "doc": "

\n", "bases": "CommunicativeAgent"}, "ultk.effcomm.agent.Speaker.__init__": {"fullname": "ultk.effcomm.agent.Speaker.__init__", "modulename": "ultk.effcomm.agent", "qualname": "Speaker.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, "ultk.effcomm.agent.Speaker.S": {"fullname": "ultk.effcomm.agent.Speaker.S", "modulename": "ultk.effcomm.agent", "qualname": "Speaker.S", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, "ultk.effcomm.agent.Speaker.normalized_weights": {"fullname": "ultk.effcomm.agent.Speaker.normalized_weights", "modulename": "ultk.effcomm.agent", "qualname": "Speaker.normalized_weights", "kind": "function", "doc": "

Get the normalized weights of a Speaker.

\n\n

Each row vector represents a conditional probability distribution over expressions, P(e | m).

\n", "signature": "(self) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.agent.Listener": {"fullname": "ultk.effcomm.agent.Listener", "modulename": "ultk.effcomm.agent", "qualname": "Listener", "kind": "class", "doc": "

\n", "bases": "CommunicativeAgent"}, "ultk.effcomm.agent.Listener.__init__": {"fullname": "ultk.effcomm.agent.Listener.__init__", "modulename": "ultk.effcomm.agent", "qualname": "Listener.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, "ultk.effcomm.agent.Listener.R": {"fullname": "ultk.effcomm.agent.Listener.R", "modulename": "ultk.effcomm.agent", "qualname": "Listener.R", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, "ultk.effcomm.agent.Listener.normalized_weights": {"fullname": "ultk.effcomm.agent.Listener.normalized_weights", "modulename": "ultk.effcomm.agent", "qualname": "Listener.normalized_weights", "kind": "function", "doc": "

Normalize the weights of a Listener so that each row vector for the heard expression e represents a conditional probability distribution over referents P(m | e).

\n", "signature": "(self) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.agent.LiteralSpeaker": {"fullname": "ultk.effcomm.agent.LiteralSpeaker", "modulename": "ultk.effcomm.agent", "qualname": "LiteralSpeaker", "kind": "class", "doc": "

A literal speaker chooses utterances without any reasoning about other agents. The literal speaker's conditional probability distribution P(e|m) is uniform over all expressions that can be used to communicate a particular meaning. This is in contrast to a pragmatic speaker, whose conditional distribution is not uniform in this way, but instead biased towards choosing expressions that are less likely to be misinterpreted by some listener.

\n", "bases": "Speaker"}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"fullname": "ultk.effcomm.agent.LiteralSpeaker.__init__", "modulename": "ultk.effcomm.agent", "qualname": "LiteralSpeaker.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, "ultk.effcomm.agent.LiteralSpeaker.S": {"fullname": "ultk.effcomm.agent.LiteralSpeaker.S", "modulename": "ultk.effcomm.agent", "qualname": "LiteralSpeaker.S", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, "ultk.effcomm.agent.LiteralListener": {"fullname": "ultk.effcomm.agent.LiteralListener", "modulename": "ultk.effcomm.agent", "qualname": "LiteralListener", "kind": "class", "doc": "

A naive literal listener interprets utterances without any reasoning about other agents. Its conditional probability distribution P(m|e) for guessing meanings is uniform over all meanings that can be denoted by the particular expression heard. This is in contrast to a pragmatic listener, whose conditional distribution is biased to guess meanings that a pragmatic speaker most likely intended.

\n", "bases": "Listener"}, "ultk.effcomm.agent.LiteralListener.__init__": {"fullname": "ultk.effcomm.agent.LiteralListener.__init__", "modulename": "ultk.effcomm.agent", "qualname": "LiteralListener.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, "ultk.effcomm.agent.LiteralListener.R": {"fullname": "ultk.effcomm.agent.LiteralListener.R", "modulename": "ultk.effcomm.agent", "qualname": "LiteralListener.R", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, "ultk.effcomm.agent.PragmaticSpeaker": {"fullname": "ultk.effcomm.agent.PragmaticSpeaker", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticSpeaker", "kind": "class", "doc": "

A pragmatic speaker chooses utterances based on how a listener would interpret them. A pragmatic speaker may be initialized with any kind of listener, e.g. literal or pragmatic -- meaning the recursive reasoning can be modeled up to arbitrary depth.

\n", "bases": "Speaker"}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"fullname": "ultk.effcomm.agent.PragmaticSpeaker.__init__", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticSpeaker.__init__", "kind": "function", "doc": "

Initialize the |M|-by-|E| matrix, S, corresponding to the pragmatic speaker's conditional probability distribution over expressions given meanings.

\n\n

The pragmatic speaker chooses expressions to communicate their intended meaning according to:

\n\n

$P(e | m) \\propto \\exp(t * u(e,m))$

\n\n

where $t \\in [0,1]$ is a temperature parameter and utility $u$ is defined

\n\n

$u(e , m) := \\log(P_{\\text{Listener}}(m | e))$

\n\n
Arguments:
\n\n
    \n
  • language: the language with |M| meanings and |E| expressions defining the size of S.
  • \n
  • listener: a communicative agent storing a matrix R representing the conditional distribution over expressions given meanings.
  • \n
  • temperature: a float \\in [0,1], representing how `optimally rational' the pragmatic speaker is; 1.0 is chosen when no particular assumptions about rationality are made.
  • \n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tlistener: ultk.effcomm.agent.Listener,\ttemperature: float = 1.0,\t**kwargs)"}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"fullname": "ultk.effcomm.agent.PragmaticSpeaker.S", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticSpeaker.S", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, "ultk.effcomm.agent.PragmaticListener": {"fullname": "ultk.effcomm.agent.PragmaticListener", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticListener", "kind": "class", "doc": "

A pragmatic listener interprets utterances based on their expectations about a pragmatic speaker's decisions. A pragmatic listener may be initialized with any kind of speaker, e.g. literal or pragmatic -- meaning the recursive reasoning can be modeled up to arbitrary depth.

\n", "bases": "Listener"}, "ultk.effcomm.agent.PragmaticListener.__init__": {"fullname": "ultk.effcomm.agent.PragmaticListener.__init__", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticListener.__init__", "kind": "function", "doc": "

Initialize the |E|-by-|M| matrix, R, corresponding to the pragmatic listener's conditional probability distribution over meanings given expressions.

\n\n

The pragmatic listener chooses meanings as their best guesses of the expression they heard according to:

\n\n

$P(m | e) \\propto P_{\\text{PragmaticSpeaker}}(e | m)$

\n\n
Arguments:
\n\n
    \n
  • language: the language with |M| meanings and |E| expressions defining the size of R.
  • \n
  • speaker: a communicative agent storing a matrix S representing the conditional distribution over expressions given meanings.
  • \n
  • prior: a diagonal matrix of size |M|-by-|M| representing the communicative need probabilities for meanings.
  • \n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tspeaker: ultk.effcomm.agent.Speaker,\tprior: numpy.ndarray,\t**kwargs)"}, "ultk.effcomm.agent.PragmaticListener.R": {"fullname": "ultk.effcomm.agent.PragmaticListener.R", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticListener.R", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, "ultk.effcomm.agent.BayesianListener": {"fullname": "ultk.effcomm.agent.BayesianListener", "modulename": "ultk.effcomm.agent", "qualname": "BayesianListener", "kind": "class", "doc": "

A Bayesian reciever chooses an interpretation according to p(meaning | word), where

\n\n

BUG: This is extremely misleading since we basically only use this function for IB, and IB assumes a DETERMINISTIC bayes-derived listener.

\n\n

$P(m | w) = \\frac{P(M | W) \\cdot P(M)} { P(W) }$

\n\n

Furthermore, we sometimes require that each word w is deterministically interpreted as meaning $\\hat{m}$ as follows:

\n\n

BUG: This says nothing about determinism.

\n\n

$\\hat{m}_{w}(u) = \\sum_m p(m|w) \\cdot m(u)$

\n\n

See ultk.effcomm.information for more details.

\n", "bases": "Listener"}, "ultk.effcomm.agent.BayesianListener.__init__": {"fullname": "ultk.effcomm.agent.BayesianListener.__init__", "modulename": "ultk.effcomm.agent", "qualname": "BayesianListener.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(\tspeaker: ultk.effcomm.agent.Speaker,\tprior: numpy.ndarray,\tname: str = None)"}, "ultk.effcomm.analysis": {"fullname": "ultk.effcomm.analysis", "modulename": "ultk.effcomm.analysis", "kind": "module", "doc": "

Functions for analyzing and formatting the results of the simplicity/informativeness trade-off.

\n"}, "ultk.effcomm.analysis.get_dataframe": {"fullname": "ultk.effcomm.analysis.get_dataframe", "modulename": "ultk.effcomm.analysis", "qualname": "get_dataframe", "kind": "function", "doc": "

Get a pandas DataFrame for a list of languages containing efficient communication data.

\n\n
Arguments:
\n\n
    \n
  • languages: the list of languages to map into a dataframe.
  • \n
  • columns: the list of keys to a language's data dictionary attribute, which will comprise the columns of the resulting dataframe. By default will use all items of each language's data dictionary.
  • \n
  • subset: the columns to subset for duplicates
  • \n
  • duplicates: {\"drop\", \"count\", \"leave\"} whether to drop, count, or do nothing with duplicates. By default is set to \"leave\" which will leave duplicates in the dataframe.
  • \n
\n\n
Returns:
\n\n
\n
    \n
  • data: a pandas DataFrame with rows as individual languages, with the columns specifying their data.
  • \n
\n
\n", "signature": "(\tlanguages: list[ultk.language.language.Language],\tcolumns: list[str] = None,\tsubset: list[str] = ['complexity', 'comm_cost'],\tduplicates: str = 'leave') -> pandas.core.frame.DataFrame:", "funcdef": "def"}, "ultk.effcomm.analysis.pearson_analysis": {"fullname": "ultk.effcomm.analysis.pearson_analysis", "modulename": "ultk.effcomm.analysis", "qualname": "pearson_analysis", "kind": "function", "doc": "

Measures pearson correlation coefficient for naturalness with a property.

\n\n

Use nonparametric bootstrap for confidence intervals.

\n\n
Arguments:
\n\n
    \n
  • data: a DataFrame representing the pool of measured languages
  • \n
  • predictor: a string representing the column to measure pearson r with
  • \n
  • property: a string representing a column to measure pearson r with the predictor column
  • \n
  • num_bootstrap_samples: how many samples to bootstrap from the original data
  • \n
\n\n
Returns:
\n\n
\n

a dict of the pearson correlation coefficient for the predictor and the property, and bootstrapped confidence intervals for this coefficient, e.g.

\n\n
{\n\"rho\": (a float between -1 and 1),\n\"confidence_intervals\": (a pandas Dataframe with the columns [\n    'bootstrap_sample_percent', 'low', 'high'\n])\n}\n
\n
\n", "signature": "(\tdata,\tpredictor: str,\tproperty: str,\tnum_bootstrap_samples=100) -> dict[str, typing.Any]:", "funcdef": "def"}, "ultk.effcomm.analysis.trade_off_means": {"fullname": "ultk.effcomm.analysis.trade_off_means", "modulename": "ultk.effcomm.analysis", "qualname": "trade_off_means", "kind": "function", "doc": "

Get a dataframe with the mean tradeoff data.

\n\n
Arguments:
\n\n
    \n
  • name: a str representing the subset of the population to observe mean properties for, e.g. \"natural\" or \"population\".
  • \n
  • df: a pandas DataFrame containing data of a language population to take the means of.
  • \n
  • prperties: the properties to take means of, corresponding to columns of df.
  • \n
\n\n

Examples:

\n\n
\n
>>> natural_means = trade_off_means("natural_means", natural_data, properties)\n>>> population_means = trade_off_means("population_means", data, properties)\n>>> means_df = pd.concat([natural_means, dlsav_means, population_means]).set_index("name")\n>>> means_df\n                    simplicity  complexity  informativity  optimality\n    name\n    natural_means       0.772222     16.4000       0.746296    0.952280\n    population_means    0.681068     22.9631       0.525118    0.832010\n
\n
\n", "signature": "(\tname: str,\tdf: pandas.core.frame.DataFrame,\tproperties: list) -> pandas.core.frame.DataFrame:", "funcdef": "def"}, "ultk.effcomm.analysis.trade_off_ttest": {"fullname": "ultk.effcomm.analysis.trade_off_ttest", "modulename": "ultk.effcomm.analysis", "qualname": "trade_off_ttest", "kind": "function", "doc": "

Get a dataframe with a single-samples t-test results for a subpopulation against the full population.

\n\n

This is useful if we want to compare the optimality of natural languages to the full population of languages in an experiment. Because the property of 'being a natural language' is categorical, we use a single-samples T test.

\n\n
Arguments:
\n\n
    \n
  • sub_population: a pandas DataFrame representing a subset of the population to take ttests against the full language population for properties.
  • \n
  • population_means: a dict containing properties as keys and the mean value of the full language population for that property.
  • \n
  • properties: a list of strings corresponding to columns of the sub_population DataFrame and keys of the population_means dict.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> df = trade_off_ttest(natural_data, population_means, properties)\n>>> df\n                        simplicity  complexity  informativity  optimality\n    stat\n    t-statistic          4.101937   -4.101937       3.126855    4.031027\n    Two-sided p-value    0.014830    0.014830       0.035292    0.015720\n
\n
\n
\n", "signature": "(\tsub_population: pandas.core.frame.DataFrame,\tpopulation_means: dict,\tproperties: list) -> pandas.core.frame.DataFrame:", "funcdef": "def"}, "ultk.effcomm.information": {"fullname": "ultk.effcomm.information", "modulename": "ultk.effcomm.information", "kind": "module", "doc": "

Helper functions for Rate-Distortion based (including Information Bottleneck) efficient communication analyses.

\n"}, "ultk.effcomm.information.information_rate": {"fullname": "ultk.effcomm.information.information_rate", "modulename": "ultk.effcomm.information", "qualname": "information_rate", "kind": "function", "doc": "

Compute the information rate / complexity of the encoder q(w|m) as $I[W:M]$.

\n", "signature": "(source: numpy.ndarray, encoder: numpy.ndarray) -> float:", "funcdef": "def"}, "ultk.effcomm.information.get_rd_curve": {"fullname": "ultk.effcomm.information.get_rd_curve", "modulename": "ultk.effcomm.information", "qualname": "get_rd_curve", "kind": "function", "doc": "

Use the Blahut Arimoto algorithm to obtain a list of (rate, distortion) points.

\n", "signature": "(\tprior: numpy.ndarray,\tdist_mat: numpy.ndarray,\tbetas: numpy.ndarray = None) -> list[tuple[float]]:", "funcdef": "def"}, "ultk.effcomm.information.expected_distortion": {"fullname": "ultk.effcomm.information.expected_distortion", "modulename": "ultk.effcomm.information", "qualname": "expected_distortion", "kind": "function", "doc": "

$D[X, \\hat{X}] = \\sum_x p(x) \\sum_{\\hat{x}} p(\\hat{x}|x) \\cdot d(x, \\hat{x})$

\n", "signature": "(\tp_x: numpy.ndarray,\tp_xhat_x: numpy.ndarray,\tdist_mat: numpy.ndarray) -> float:", "funcdef": "def"}, "ultk.effcomm.information.compute_rate_distortion": {"fullname": "ultk.effcomm.information.compute_rate_distortion", "modulename": "ultk.effcomm.information", "qualname": "compute_rate_distortion", "kind": "function", "doc": "

Compute the information rate $I(X;\\hat{X})$ and total distortion $D[X, \\hat{X}]$ of a joint distribution defind by $P(X)$ and $P(\\hat{X}|X)$.

\n\n
Arguments:
\n\n
    \n
  • p_x: array of shape |X| the prior probability of an input symbol (i.e., the source)
  • \n
  • p_xhat_x: array of shape (|X|, |X_hat|) the probability of an output symbol given the input
  • \n
  • dist_mat: array of shape (|X|, |X_hat|) representing the distoriton matrix between the input alphabet and the reconstruction alphabet.
  • \n
\n\n
Returns:
\n\n
\n

a (rate, distortion) tuple containing the information rate (in bits) of compressing X into X_hat and the expected distortion between X, X_hat

\n
\n", "signature": "(p_x, p_xhat_x, dist_mat) -> tuple[numpy.ndarray]:", "funcdef": "def"}, "ultk.effcomm.information.blahut_arimoto": {"fullname": "ultk.effcomm.information.blahut_arimoto", "modulename": "ultk.effcomm.information", "qualname": "blahut_arimoto", "kind": "function", "doc": "

Compute the rate-distortion function of an i.i.d distribution

\n\n
Arguments:
\n\n
    \n
  • dist_mat: array of shape (|X|, |X_hat|) representing the distortion matrix between the input alphabet and the reconstruction alphabet. dist_mat[i,j] = dist(x[i],x_hat[j]). In this context, X is a random variable representing the a speaker's meaning (target referent), and X_hat is a random variable representing a listener's meaning (guessed referent).
  • \n
  • p_x: (1D array of shape |X|) representing the probability mass function of the source. In this context, the prior over states of nature.
  • \n
  • beta: (scalar) the slope of the rate-distoriton function at the point where evaluation is required
  • \n
  • max_it: max number of iterations
  • \n
  • eps: accuracy required by the algorithm: the algorithm stops if there is no change in distoriton value of more than 'eps' between consequtive iterations
  • \n
  • ignore_converge: whether to run the optimization until max_it, ignoring the stopping criterion specified by eps.
  • \n
\n\n
Returns:
\n\n
\n

a dict of the form

\n\n
{\n    'final': a tuple of (rate, distortion) values. This is the rate (in bits) of compressing X into X_hat, and distortion between X, X_hat\n\n    'trajectory': a list of the (rate, distortion) points discovered during optimization\n}\n
\n
\n", "signature": "(\tdist_mat: numpy.ndarray,\tp_x: numpy.ndarray,\tbeta: float,\tmax_it: int = 200,\teps: float = 1e-05,\tignore_converge: bool = False) -> tuple[float]:", "funcdef": "def"}, "ultk.effcomm.information.get_ib_curve": {"fullname": "ultk.effcomm.information.get_ib_curve", "modulename": "ultk.effcomm.information", "qualname": "get_ib_curve", "kind": "function", "doc": "

Get a list of (complexity, accuracy) or (complexity, distortion) points. A minimal wrapper of get_bottleneck.

\n\n
Arguments:
\n\n
    \n
  • prior: array of shape |meanings|
  • \n
  • meaning_dists: array of shape (|meanings|, |meanings|) representing the distribution over world states given meanings.
  • \n
  • curve_type: {'informativity', 'comm_cost'} specifies whether to return the (classic) IB axes of informativity vs. complexity, or the more Rate-Distortion Theory aligned axes of comm_cost vs. complexity. The latter can be obtained easily from the former by subtracting each informativity value from I[M:U], which is a constant for all languages in the same domain.
  • \n
  • maxbeta: the maximum value of beta to use to compute the curve.
  • \n
  • minbeta: the minimum value of beta to use.
  • \n
  • numbeta: the number of (equally-spaced) beta values to consider to compute the curve.
  • \n
  • processes: number of cpu threads to run in parallel (default = 1)
  • \n
\n\n
Returns:
\n\n
\n

an array of shape (num_points, 2) representing the list of (accuracy/comm_cost, complexity) points on the information plane.

\n
\n", "signature": "(\tprior: numpy.ndarray,\tmeaning_dists: numpy.ndarray,\tmaxbeta: float,\tminbeta: float,\tnumbeta: float,\tprocesses: int = 1,\tcurve_type: str = 'informativity') -> tuple[float]:", "funcdef": "def"}, "ultk.effcomm.information.get_bottleneck": {"fullname": "ultk.effcomm.information.get_bottleneck", "modulename": "ultk.effcomm.information", "qualname": "get_bottleneck", "kind": "function", "doc": "

Compute the IB curve bound (I[M:W] vs. I[W:U]). We use the embo package, which has support for smoothing any non-monotonicity in the bound resulting from BA optimization getting stuck in local minima.

\n\n
Arguments:
\n\n
    \n
  • prior: array of shape |meanings|
  • \n
  • meaning_dists: array of shape (|meanings|, |meanings|) representing the distribution over world states given meanings.
  • \n
  • curve_type: {'informativity', 'comm_cost'} specifies whether to return the (classic) IB axes of informativity vs. complexity, or the more Rate-Distortion Theory aligned axes of comm_cost vs. complexity. The comm_cost can be obtained easily from informativity by subtracting each informativity value from I[M:U], which is a constant for all languages in the same domain.
  • \n
  • maxbeta: the maximum value of beta to use to compute the curve.
  • \n
  • minbeta: the minimum value of beta to use.
  • \n
  • numbeta: the number of (equally-spaced) beta values to consider to compute the curve.
  • \n
  • processes: number of cpu threads to run in parallel (default = 1)
  • \n
\n\n
Returns:
\n\n
\n

a dict containing the coordinates and encoders corresponding to IB optima, of the form

\n\n
{\n\"encoders\": an array of shape `(num_meanings, num_words)`,\n\n\"coordinates\": a tuple of arrays `(complexity, accuracy, comm_cost)` each of shape (`numbeta`,)\n\"beta\": an array of shape (`numbeta`,) corresponding to the actually used betas after non-monotonicity corrections.\n}\n
\n
\n", "signature": "(\tprior: numpy.ndarray,\tmeaning_dists: numpy.ndarray,\tmaxbeta: float,\tminbeta: float,\tnumbeta: float,\tprocesses: int = 1) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.information.ib_complexity": {"fullname": "ultk.effcomm.information.ib_complexity", "modulename": "ultk.effcomm.information", "qualname": "ib_complexity", "kind": "function", "doc": "

Compute the IB encoder complexity of a language $I[M:W]$.

\n", "signature": "(language: ultk.language.language.Language, prior: numpy.ndarray) -> float:", "funcdef": "def"}, "ultk.effcomm.information.ib_informativity": {"fullname": "ultk.effcomm.information.ib_informativity", "modulename": "ultk.effcomm.information", "qualname": "ib_informativity", "kind": "function", "doc": "

Compute the expected informativity (accuracy) $I[W:U]$ of a lexicon.

\n\n
Arguments:
\n\n
    \n
  • language: the Language to measure for informativity
  • \n
  • prior: communicative need distribution
  • \n
  • meaning_dists: array of shape (|meanings|, |meanings|) representing the distribution over world states given meanings.
  • \n
\n\n
Returns:
\n\n
\n

the informativity of the language I[W:U] in bits.

\n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tprior: numpy.ndarray,\tmeaning_dists: numpy.ndarray) -> float:", "funcdef": "def"}, "ultk.effcomm.information.ib_comm_cost": {"fullname": "ultk.effcomm.information.ib_comm_cost", "modulename": "ultk.effcomm.information", "qualname": "ib_comm_cost", "kind": "function", "doc": "

Compute the IB communicative cost, i.e. expected KL-divergence betweeen speaker and listener meanings, for a language.

\n\n
Arguments:
\n\n
    \n
  • language: the Language to measure for communicative cost
  • \n
  • prior: communicative need distribution
  • \n
  • meaning_dists: array of shape (|meanings|, |meanings|) representing the distribution over world states given meanings.
  • \n
\n\n
Returns:
\n\n
\n

the communicative cost, $\\mathbb{E}[D_{KL}[M || \\hat{M}]] = I[M:U] - I[W:U]$ in bits.

\n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tprior: numpy.ndarray,\tmeaning_dists: numpy.ndarray) -> float:", "funcdef": "def"}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"fullname": "ultk.effcomm.information.language_to_ib_encoder_decoder", "modulename": "ultk.effcomm.information", "qualname": "language_to_ib_encoder_decoder", "kind": "function", "doc": "

Convert a Language, a mapping of words to meanings, to IB encoder, q(w|m) and IB decoder q(m|w).

\n\n
Arguments:
\n\n
    \n
  • language: the lexicon from which to infer a speaker (encoder).
  • \n
  • prior: communicative need distribution
  • \n
\n\n
Returns:
\n\n
\n

a dict of the form\n {\n \"encoder\": np.ndarray of shape (|meanings|, |words|),\n \"decoder\": np.ndarray of shape (|words|, |meanings|),\n }

\n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tprior: numpy.ndarray) -> dict[str, numpy.ndarray]:", "funcdef": "def"}, "ultk.effcomm.information.ib_accuracy": {"fullname": "ultk.effcomm.information.ib_accuracy", "modulename": "ultk.effcomm.information", "qualname": "ib_accuracy", "kind": "function", "doc": "

Return the accuracy of the lexicon I[W:U]

\n\n
Arguments:
\n\n
    \n
  • encoder: array of shape (|M|, |W|) representing P(W | M)
  • \n
  • decoder: array of shape (|W|, |M|) representing P(M | W)
  • \n
  • meaning_dists: array of shape (|M|, |U|) representing P(U | M)
  • \n
  • prior: array of shape |M| representing P(M)
  • \n
\n\n
Returns:
\n\n
\n

the accuracy of the lexicon I[W:U]

\n
\n", "signature": "(\tencoder: numpy.ndarray,\tprior: numpy.ndarray,\tmeaning_dists: numpy.ndarray) -> float:", "funcdef": "def"}, "ultk.effcomm.information.ib_distortion": {"fullname": "ultk.effcomm.information.ib_distortion", "modulename": "ultk.effcomm.information", "qualname": "ib_distortion", "kind": "function", "doc": "

Return the IB distortion measure E[DKL[ M || M_hat ]]

\n\n
Arguments:
\n\n
    \n
  • encoder: array of shape (|M|, |W|) representing P(W | M)
  • \n
  • decoder: array of shape (|W|, |M|) representing P(M | W)
  • \n
  • meaning_dists: array of shape (|M|, |U|) representing P(U | M)
  • \n
  • prior: array of shape |M| representing P(M)
  • \n
\n\n
Returns:
\n\n
\n

the distortion E[DKL[ M || M_hat ]] = I[M:U] - I[W:U]

\n
\n", "signature": "(\tencoder: numpy.ndarray,\tprior: numpy.ndarray,\tmeaning_dists: numpy.ndarray) -> float:", "funcdef": "def"}, "ultk.effcomm.information.ib_encoder_to_point": {"fullname": "ultk.effcomm.information.ib_encoder_to_point", "modulename": "ultk.effcomm.information", "qualname": "ib_encoder_to_point", "kind": "function", "doc": "

Return (complexity, accuracy, comm_cost) IB coordinates.

\n\n
Arguments:
\n\n
    \n
  • meaning_dists: array of shape (|meanings|, |meanings|) representing the distribution over world states given meanings.
  • \n
  • prior: array of shape |M| representing the cognitive source
  • \n
  • encoder: array of shape (|M|, |W|) representing P(W | M)
  • \n
  • decoder: array of shape (|W|, |M|) representing P(M | W). By default is None, and the Bayesian optimal decoder will be inferred.
  • \n
\n", "signature": "(\tmeaning_dists: numpy.ndarray,\tprior: numpy.ndarray,\tencoder: numpy.ndarray,\tdecoder: numpy.ndarray = None) -> tuple[float]:", "funcdef": "def"}, "ultk.effcomm.information.ib_optimal_decoder": {"fullname": "ultk.effcomm.information.ib_optimal_decoder", "modulename": "ultk.effcomm.information", "qualname": "ib_optimal_decoder", "kind": "function", "doc": "

Compute the bayesian optimal decoder. See https://github.com/nogazs/ib-color-naming/blob/master/src/ib_naming_model.py#L40

\n\n
Arguments:
\n\n
    \n
  • encoder: array of shape (|words|, |meanings|)
  • \n
  • prior: array of shape (|meanings|,)
  • \n
  • meaning_dists: array of shape (|meanings|, |meanings|)
  • \n
\n\n
Returns:
\n\n
\n

array of shape (|words|, |meanings|) representing the 'optimal' deterministic decoder

\n
\n", "signature": "(\tencoder: numpy.ndarray,\tprior: numpy.ndarray,\tmeaning_dists: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.informativity": {"fullname": "ultk.effcomm.informativity", "modulename": "ultk.effcomm.informativity", "kind": "module", "doc": "

Functions for measuring informativity in efficient communication analyses of languages.

\n"}, "ultk.effcomm.informativity.indicator_utility": {"fullname": "ultk.effcomm.informativity.indicator_utility", "modulename": "ultk.effcomm.informativity", "qualname": "indicator_utility", "kind": "function", "doc": "

Indicator utility function, i.e. delta. Returns 1.0 iff ref1 equals ref2.

\n", "signature": "(\tref1: ultk.language.semantics.Referent,\tref2: ultk.language.semantics.Referent) -> float:", "funcdef": "def"}, "ultk.effcomm.informativity.informativity": {"fullname": "ultk.effcomm.informativity.informativity", "modulename": "ultk.effcomm.informativity", "qualname": "informativity", "kind": "function", "doc": "

The informativity of a language is identified with the successful communication between a speaker and a listener.

\n\n

This function is a wrapper for communicative_success.

\n\n
Arguments:
\n\n
    \n
  • language: the language to compute informativity of.
  • \n
  • prior: a probability distribution representing communicative need (frequency) for Referents.
  • \n
  • utility: a function representing the usefulness of listener guesses about speaker Referents, e.g. Referent similarity. To reward only exact recovery of meanings, use the indicator function (default).
  • \n
  • kind: {\"literal, pragmatic\"} Whether to measure informativity using literal or pragmatic agents, as canonically described in the Rational Speech Act framework. The default is \"literal\".
  • \n
\n\n

Concepts:\n The speaker can be thought of as a conditional distribution over expressions given meanings. The listener is likewise a conditional distribution over meanings given expressions. The communicative need, or cognitive source, is a prior probability over meanings representing how frequently agents need to use certain meanings in communication. The utility function represents the similarity, or appropriateness, of the listener's guess m' about the speaker's intended meaning m.

\n\n

Formula:\n The informativity of a language $L$ with meaning space $M$ is defined:

\n\n

$I(L) := \\sum_{m \\in M} p(m) \\sum_{i \\in L} p(i|m) \\sum_{\\hat{m} \\in i} p(\\hat{m}|i) \\cdot u(m, \\hat{m})$

\n\n

Bounds:\n A perfectly informative (=1.0) language can be constructed with a exactly one expression for each meaning.

\n\n
For u() = indicator(), every language has nonzero informativity because a language must contain at least one expression, and an expression must contain at least one meaning.\n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tprior: numpy.ndarray,\tutility: Callable[[ultk.language.semantics.Referent, ultk.language.semantics.Referent], float] = <function indicator_utility>,\tagent_type: str = 'literal') -> float:", "funcdef": "def"}, "ultk.effcomm.informativity.communicative_success": {"fullname": "ultk.effcomm.informativity.communicative_success", "modulename": "ultk.effcomm.informativity", "qualname": "communicative_success", "kind": "function", "doc": "

Helper function to compute the literal informativity of a language.

\n\n

$I(L) = \\sum_{m, \\hat{m}} P(m, \\hat{m}) \\cdot u(m, \\hat{m})$

\n\n

$ = \\sum_{m \\in M} p(m) \\sum_{i \\in L} p(i|m) \\sum_{\\hat{m} \\in i} p(\\hat{m} |i) \\cdot u(m, m')$

\n\n

$ = \\sum \\text{diag}(p)SR \\odot U $

\n\n

For more details, see docs/vectorized_informativity.

\n\n
Arguments:
\n\n
    \n
  • speaker: a literal or pragmatic speaker, containing a matrix S for P(e | m)
  • \n
  • listener: a literal or pragmatic listener, containing a matrix R for P(m | e)
  • \n
  • prior: p(m), distribution over meanings representing communicative need
  • \n
  • utility: a function u(m, m') representing similarity of meanings, or pair-wise usefulness of listener guesses about speaker meanings.
  • \n
\n", "signature": "(\tspeaker: ultk.effcomm.agent.Speaker,\tlistener: ultk.effcomm.agent.Listener,\tprior: numpy.ndarray,\tutility: Callable[[ultk.language.semantics.Referent, ultk.language.semantics.Referent], float]) -> float:", "funcdef": "def"}, "ultk.effcomm.optimization": {"fullname": "ultk.effcomm.optimization", "modulename": "ultk.effcomm.optimization", "kind": "module", "doc": "

Classes and functions for generating languages that optimize the simplicity/informativeness trade-off, e.g. via an iterative evolutionary algorithm.

\n"}, "ultk.effcomm.optimization.Mutation": {"fullname": "ultk.effcomm.optimization.Mutation", "modulename": "ultk.effcomm.optimization", "qualname": "Mutation", "kind": "class", "doc": "

\n"}, "ultk.effcomm.optimization.Mutation.precondition": {"fullname": "ultk.effcomm.optimization.Mutation.precondition", "modulename": "ultk.effcomm.optimization", "qualname": "Mutation.precondition", "kind": "function", "doc": "

Whether a mutation is allowed to apply to a language.

\n", "signature": "(language: ultk.language.language.Language, **kwargs) -> bool:", "funcdef": "def"}, "ultk.effcomm.optimization.Mutation.mutate": {"fullname": "ultk.effcomm.optimization.Mutation.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "Mutation.mutate", "kind": "function", "doc": "

Mutate the language, possibly using a list of expressions.

\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpressions: list[ultk.language.language.Expression],\t**kwargs) -> ultk.language.language.Language:", "funcdef": "def"}, "ultk.effcomm.optimization.RemoveExpression": {"fullname": "ultk.effcomm.optimization.RemoveExpression", "modulename": "ultk.effcomm.optimization", "qualname": "RemoveExpression", "kind": "class", "doc": "

\n", "bases": "Mutation"}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"fullname": "ultk.effcomm.optimization.RemoveExpression.precondition", "modulename": "ultk.effcomm.optimization", "qualname": "RemoveExpression.precondition", "kind": "function", "doc": "

Whether a mutation is allowed to apply to a language.

\n", "signature": "(language: ultk.language.language.Language, **kwargs) -> bool:", "funcdef": "def"}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"fullname": "ultk.effcomm.optimization.RemoveExpression.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "RemoveExpression.mutate", "kind": "function", "doc": "

Mutate the language, possibly using a list of expressions.

\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpressions: list[ultk.language.language.Expression],\t**kwargs) -> ultk.language.language.Language:", "funcdef": "def"}, "ultk.effcomm.optimization.AddExpression": {"fullname": "ultk.effcomm.optimization.AddExpression", "modulename": "ultk.effcomm.optimization", "qualname": "AddExpression", "kind": "class", "doc": "

\n", "bases": "Mutation"}, "ultk.effcomm.optimization.AddExpression.precondition": {"fullname": "ultk.effcomm.optimization.AddExpression.precondition", "modulename": "ultk.effcomm.optimization", "qualname": "AddExpression.precondition", "kind": "function", "doc": "

Whether a mutation is allowed to apply to a language.

\n", "signature": "(language: ultk.language.language.Language, **kwargs) -> bool:", "funcdef": "def"}, "ultk.effcomm.optimization.AddExpression.mutate": {"fullname": "ultk.effcomm.optimization.AddExpression.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "AddExpression.mutate", "kind": "function", "doc": "

Mutate the language, possibly using a list of expressions.

\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpressions: list[ultk.language.language.Expression],\t**kwargs) -> ultk.language.language.Language:", "funcdef": "def"}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer", "kind": "class", "doc": "

Class for approximating the Pareto frontier of languages optimizing the simplicity/informativity trade-off.

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.__init__", "kind": "function", "doc": "

Initialize the evolutionary algorithm configurations.

\n\n

The measures of complexity and informativity, the expressions, and the mutations are all specific to the particular semantic domain.

\n\n
Arguments:
\n\n
    \n
  • objectives: a dict of the two objectives to optimize for, e.g. simplicity and informativeness, of the form, e.g.\n{\n \"complexity\": comp_measure,\n \"comm_cost\": lambda l: 1 - inf_measure(l)\n}
  • \n
  • expressions: a list of expressions from which to apply mutations to languages.
  • \n
  • sample_size: the size of the population at every generation.
  • \n
  • max_muatations: between 1 and this number of mutations will be applied to a subset of the population at the end of each generation.
  • \n
  • generations: how many iterations to run the evolutionary algorithm for.
  • \n
  • lang_size: between 1 and this number of expressions comprise a language.
  • \n
  • mutations: (optional) a list of Mutation objects, defaults to add/remove expression
  • \n
\n", "signature": "(\tobjectives: list[typing.Callable[[ultk.language.language.Language], typing.Any]],\texpressions: list[ultk.language.language.Expression],\tsample_size: int,\tmax_mutations: int,\tgenerations: int,\tlang_size: int = None,\tmutations: list[ultk.effcomm.optimization.Mutation] = [<class 'ultk.effcomm.optimization.AddExpression'>, <class 'ultk.effcomm.optimization.RemoveExpression'>])"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.objectives", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.expressions", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.mutations", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.sample_size", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.max_mutations", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.generations", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.generations", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.lang_size", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.dominating_languages", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.explored_languages", "kind": "variable", "doc": "

\n"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.fit", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.fit", "kind": "function", "doc": "

Computes the Pareto frontier, a set languages which cannot be both more simple and more informative.

\n\n

Uses pygmo's nondominated_front method for computing a population's best solutions to a multi-objective optimization problem.

\n\n
Arguments:
\n\n
    \n
  • seed_population: a list of languages representing the population at generation 0 of the algorithm.
  • \n
  • explore: a float in [0,1] representing how much to optimize for fitness\n(optimality wrt pareto front of complexity and comm_cost), and how much to randomly explore.
  • \n
\n\n
Returns:
\n\n
\n

a dict of the estimated optimization solutions, as well as points explored along the way; of the form

\n\n
{\n\"dominating_languages\": list of languages as estimated solutions,\n\"explored_languages\": list of all the languages explored during the evolutionary algorithm,\n}\n
\n
\n", "signature": "(\tself,\tseed_population: list[ultk.language.language.Language],\texplore: float = 0.0) -> dict[str, list[ultk.language.language.Language]]:", "funcdef": "def"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.sample_mutated", "kind": "function", "doc": "
Arguments:
\n\n
    \n
  • languages: dominating languages of a generation
  • \n
  • amount: sample_size.
  • \n
  • expressions: the list of expressions
  • \n
\n\n
Returns:
\n\n
\n

list of updated languages

\n
\n", "signature": "(\tself,\tlanguages: list[ultk.language.language.Language]) -> list[ultk.language.language.Language]:", "funcdef": "def"}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.mutate", "kind": "function", "doc": "

Randomly selects a mutation that is allowed to apply and applies it to a language.

\n\n
Arguments:
\n\n
    \n
  • language: the Language to mutate
  • \n
  • expressions: the list of all possible expressions.\nSome mutations need access to this list, so it is part of the mutation api.
  • \n
\n\n
Returns:
\n\n
\n

the mutated Language

\n
\n", "signature": "(\tself,\tlanguage: ultk.language.language.Language) -> ultk.language.language.Language:", "funcdef": "def"}, "ultk.effcomm.optimization.sample_parents": {"fullname": "ultk.effcomm.optimization.sample_parents", "modulename": "ultk.effcomm.optimization", "qualname": "sample_parents", "kind": "function", "doc": "

Use the explore parameter to explore possibly suboptimal areas of the language space.

\n\n
Arguments:
\n\n
    \n
  • dominating_languages: a list of the languages with current best fitness with respect to the objectives.
  • \n
  • explored_languages: a list of all languages encountered during the evolutionary algorithm.
  • \n
  • explore: a float in [0,1] specifying how much to explore possibly suboptimal languages.\nIf set to 0, parent_languages is just dominating_languages.
  • \n
\n\n
Returns:
\n\n
\n

the languages to serve as the next generation (after possible mutations)

\n
\n", "signature": "(\tdominating_languages: set[ultk.language.language.Language],\texplored_languages: set[ultk.language.language.Language],\texplore: float) -> list[ultk.language.language.Language]:", "funcdef": "def"}, "ultk.effcomm.sampling": {"fullname": "ultk.effcomm.sampling", "modulename": "ultk.effcomm.sampling", "kind": "module", "doc": "

Functions for sampling expressions into languages.

\n"}, "ultk.effcomm.sampling.get_hypothetical_variants": {"fullname": "ultk.effcomm.sampling.get_hypothetical_variants", "modulename": "ultk.effcomm.sampling", "qualname": "get_hypothetical_variants", "kind": "function", "doc": "

For each system (parameterized by a language or else a speaker), generate num hypothetical variants by permuting the signals that the system assigns to states.

\n\n
Arguments:
\n\n
    \n
  • languages: a list of languages to permute, by constructing LiteralSpeakers and permuting their weights.
  • \n
  • speakers: a list of speakers of a language, whose weights can be directly permuted. Should be used instead of languages if possible, because it can be more finegrained (every language can be associated with multiple speakers).
  • \n
  • total: the total number of hypothetical variants to obtain
  • \n
\n\n
Returns:
\n\n
\n

hypothetical_variants: a list of type either Language or np.ndarray depending on whether languages or speakers was passed, representing hypothetical variants of the systems passed. If speakers was passed, a list of speakers is returned.

\n
\n", "signature": "(\tlanguages: list[ultk.language.language.Language] = None,\tspeakers: list[ultk.effcomm.agent.Speaker] = None,\ttotal: int = 0) -> list[typing.Any]:", "funcdef": "def"}, "ultk.effcomm.tradeoff": {"fullname": "ultk.effcomm.tradeoff", "modulename": "ultk.effcomm.tradeoff", "kind": "module", "doc": "

Functions for constructing an efficient communication analysis by measuring the simplicity/informativeness trade-off languages and formatting results as a dataframe or a plot.

\n"}, "ultk.effcomm.tradeoff.dominates": {"fullname": "ultk.effcomm.tradeoff.dominates", "modulename": "ultk.effcomm.tradeoff", "qualname": "dominates", "kind": "function", "doc": "

Determine whether p1 dominates p2,\ni.e. whether for every i p1[i] <= p2[i]\nand for some i p1[i] < p2[i].

\n\n
Arguments:
\n\n
    \n
  • p1: a point
  • \n
  • p2: another point
  • \n
\n\n
Returns:
\n\n
\n

whether or not p1 dominates p2

\n
\n", "signature": "(p1: list[float], p2: list[float]) -> bool:", "funcdef": "def"}, "ultk.effcomm.tradeoff.non_dominated_2d": {"fullname": "ultk.effcomm.tradeoff.non_dominated_2d", "modulename": "ultk.effcomm.tradeoff", "qualname": "non_dominated_2d", "kind": "function", "doc": "

Return the non-dominated (Pareto) front of a list of 2-D points, using Kung's algorithm.

\n\n
Arguments:
\n\n
    \n
  • points: A list of 2-D points
  • \n
\n\n
Returns:
\n\n
\n

a list, the indices of points for which no other point is as good on all dimensions\n and better on at least one

\n
\n", "signature": "(points: list[tuple[float, float]]) -> list[int]:", "funcdef": "def"}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"fullname": "ultk.effcomm.tradeoff.pareto_optimal_languages", "modulename": "ultk.effcomm.tradeoff", "qualname": "pareto_optimal_languages", "kind": "function", "doc": "

Use non_dominated_2d to compute the Pareto languages.

\n", "signature": "(\tlanguages: list[ultk.language.language.Language],\tobjectives: list[typing.Callable[[ultk.language.language.Language], typing.Any]],\tunique: bool = False) -> list[ultk.language.language.Language]:", "funcdef": "def"}, "ultk.effcomm.tradeoff.pareto_min_distances": {"fullname": "ultk.effcomm.tradeoff.pareto_min_distances", "modulename": "ultk.effcomm.tradeoff", "qualname": "pareto_min_distances", "kind": "function", "doc": "

Measure the Pareto optimality of each language by measuring its Euclidean closeness to the frontier. The frontier is a line (list of points) interpolated from the pareto points.

\n\n
Arguments:
\n\n
    \n
  • points: the list of all language (x, y) pairs, where x and y are usually communicative cost and complexity.
  • \n
  • pareto_points: the list of all dominant language (x, y) pairs to constitute the Pareto frontier. The points should have been measured by pygmo's non_dominated_front_2d function.
  • \n
\n\n
Returns:
\n\n
\n

min_distances: an array of shape len(points) Euclidean distances for each language to the closest point on the Pareto frontier.

\n
\n", "signature": "(points: list[tuple], pareto_points: list[tuple]) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.tradeoff.interpolate_data": {"fullname": "ultk.effcomm.tradeoff.interpolate_data", "modulename": "ultk.effcomm.tradeoff", "qualname": "interpolate_data", "kind": "function", "doc": "

Interpolate the points yielded by the pareto optimal languages into a continuous (though not necessarily smooth) curve.

\n\n
Arguments:
\n\n
    \n
  • points: an list of (comm_cost, complexity) pairs of size [dominating_languages], a possibly non-smooth set of solutions to the trade-off.
  • \n
  • min_cost: the minimum communicative cost value possible to interpolate from.
  • \n
  • max_cost: the maximum communicative cost value possible to interpolate from. A natural assumption is to let complexity=0.0 if max_cost=1.0, which will result in a Pareto curve that spans the entire 2d space, and consequently the plot with x and y limits both ranging [0.0, 1.0].
  • \n
  • num: the number of x-axis points (cost) to interpolate. Controls smoothness of curve.
  • \n
\n\n
Returns:
\n\n
\n

interpolated_points: an array of size (num, num)

\n
\n", "signature": "(\tpoints: list[tuple[float]],\tmin_cost: float = 0.0,\tmax_cost: float = 1.0,\tnum=5000) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.tradeoff.tradeoff": {"fullname": "ultk.effcomm.tradeoff.tradeoff", "modulename": "ultk.effcomm.tradeoff", "qualname": "tradeoff", "kind": "function", "doc": "

Builds a final efficient communication analysis by measuring a list of languages, updating their internal data, and returning the results.

\n\n

This function measures possibly many graded or categorical properties of each language, but minimally the properties of commmunicative cost and complexity. These two measures fully define the results of an efficiency analysis, in the sense they define the optimal solutions.

\n\n
Arguments:
\n\n
    \n
  • languages: A list representing the pool of all languages to be measured for an efficient communication analysis.
  • \n
  • x: the first pressure to measure, e.g. communicative cost.
  • \n
  • y: the second pressure to measure, e.g. cognitive complexity.
  • \n
  • frontier: a list of (comm_cost, complexity) points representing a Pareto frontier to measure optimality w.r.t.
  • \n
\n\n
Returns:
\n\n
\n

a dictionary of the population and the pareto front, of the form

\n\n
{\n    \"languages\": the list of languages, with their internal efficient communication data updated,\n\n    \"dominating_languages\": the list of the languages dominating the population w.r.t. comm_cost and complexity. If no `frontier` is none, this can be considered the Pareto frontier.\n}\n
\n
\n", "signature": "(\tlanguages: list[ultk.language.language.Language],\tproperties: dict[str, typing.Callable[[ultk.language.language.Language], typing.Any]],\tx: str = 'comm_cost',\ty: str = 'complexity',\tfrontier: list[tuple] = None) -> dict[str, list[ultk.language.language.Language]]:", "funcdef": "def"}, "ultk.effcomm.util": {"fullname": "ultk.effcomm.util", "modulename": "ultk.effcomm.util", "kind": "module", "doc": "

Various helper functions for computing complexity and informativity.

\n"}, "ultk.effcomm.util.rows_zero_to_uniform": {"fullname": "ultk.effcomm.util.rows_zero_to_uniform", "modulename": "ultk.effcomm.util", "qualname": "rows_zero_to_uniform", "kind": "function", "doc": "

Ensure that mat encodes a probability distribution, i.e. each row (indexed by a meaning) is a distribution over expressions: sums to exactly 1.0.

\n\n

This is necessary when exploring mathematically possible languages (including natural languages, like Hausa in the case of modals) which sometimes have that a row of the matrix p(word|meaning) is a vector of 0s.

\n\n
Arguments:
\n\n
    \n
  • mat: a 2D numpy array that should be normalized so that each row is a probability distribution.
  • \n
\n", "signature": "(mat: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.util.build_utility_matrix": {"fullname": "ultk.effcomm.util.build_utility_matrix", "modulename": "ultk.effcomm.util", "qualname": "build_utility_matrix", "kind": "function", "doc": "

Construct the square matrix specifying the utility function defined for pairs of meanings, used for computing communicative success.

\n", "signature": "(\tuniverse: ultk.language.semantics.Universe,\tutility: Callable[[ultk.language.semantics.Referent, ultk.language.semantics.Referent], float]) -> numpy.ndarray:", "funcdef": "def"}, "ultk.effcomm.util.PRECISION": {"fullname": "ultk.effcomm.util.PRECISION", "modulename": "ultk.effcomm.util", "qualname": "PRECISION", "kind": "variable", "doc": "

\n", "default_value": "1e-16"}, "ultk.effcomm.util.marginal": {"fullname": "ultk.effcomm.util.marginal", "modulename": "ultk.effcomm.util", "qualname": "marginal", "kind": "function", "doc": "

Compute $p(x) = \\sum_x p(x,y)$

\n\n
Arguments:
\n\n
    \n
  • pXY: a numpy array of shape (|X|, |Y|)
  • \n
\n\n
Returns:
\n\n
\n

pY: (axis = 0) or pX (default, axis = 1)

\n
\n", "signature": "(pXY, axis=1):", "funcdef": "def"}, "ultk.effcomm.util.conditional": {"fullname": "ultk.effcomm.util.conditional", "modulename": "ultk.effcomm.util", "qualname": "conditional", "kind": "function", "doc": "

Compute $p(y|x) = \\frac{p(x,y)}{p(x)}$

\n\n
Arguments:
\n\n
    \n
  • pXY: a numpy array of shape (|X|, |Y|)
  • \n
\n\n
Returns:
\n\n
\n

pY_X: a numpy array of shape (|X|, |Y|)

\n
\n", "signature": "(pXY):", "funcdef": "def"}, "ultk.effcomm.util.joint": {"fullname": "ultk.effcomm.util.joint", "modulename": "ultk.effcomm.util", "qualname": "joint", "kind": "function", "doc": "

Compute $p(x,y) = p(y|x) \\cdot p(x) $

\n\n
Arguments:
\n\n
    \n
  • pY_X: a numpy array of shape (|X|, |Y|)
  • \n
  • pX: a numpy array |X|
  • \n
\n\n
Returns:
\n\n
\n

pXY: a numpy array of the shape (|X|, |Y|)

\n
\n", "signature": "(pY_X, pX):", "funcdef": "def"}, "ultk.effcomm.util.marginalize": {"fullname": "ultk.effcomm.util.marginalize", "modulename": "ultk.effcomm.util", "qualname": "marginalize", "kind": "function", "doc": "

Compute $p(y) = \\sum_x p(y|x) \\cdot p(x)$

\n\n
Arguments:
\n\n
    \n
  • pY_X: a numpy array of shape (|X|, |Y|)
  • \n
  • pX: a numpy array of shape |X|
  • \n
\n\n
Returns:
\n\n
\n

pY: a numpy array of shape |Y|

\n
\n", "signature": "(pY_X, pX):", "funcdef": "def"}, "ultk.effcomm.util.bayes": {"fullname": "ultk.effcomm.util.bayes", "modulename": "ultk.effcomm.util", "qualname": "bayes", "kind": "function", "doc": "

Compute $p(x|y) = \\frac{p(y|x) \\cdot p(x)}{p(y)}$

\n\n
Arguments:
\n\n
    \n
  • pY_X: a numpy array of shape (|X|, |Y|)
  • \n
\n", "signature": "(pY_X, pX):", "funcdef": "def"}, "ultk.effcomm.util.xlogx": {"fullname": "ultk.effcomm.util.xlogx", "modulename": "ultk.effcomm.util", "qualname": "xlogx", "kind": "function", "doc": "

Compute $x \\log p(x)$

\n", "signature": "(p):", "funcdef": "def"}, "ultk.effcomm.util.H": {"fullname": "ultk.effcomm.util.H", "modulename": "ultk.effcomm.util", "qualname": "H", "kind": "function", "doc": "

Compute the entropy of p, $H(X) = - \\sum_x x \\log p(x)$

\n", "signature": "(p, axis=None):", "funcdef": "def"}, "ultk.effcomm.util.MI": {"fullname": "ultk.effcomm.util.MI", "modulename": "ultk.effcomm.util", "qualname": "MI", "kind": "function", "doc": "

Compute mutual information, $I[X:Y]$

\n", "signature": "(pXY):", "funcdef": "def"}, "ultk.effcomm.util.DKL": {"fullname": "ultk.effcomm.util.DKL", "modulename": "ultk.effcomm.util", "qualname": "DKL", "kind": "function", "doc": "

Compute KL divergences, $D_{KL}[p~||~q]$

\n", "signature": "(p, q, axis=None):", "funcdef": "def"}, "ultk.effcomm.util.gNID": {"fullname": "ultk.effcomm.util.gNID", "modulename": "ultk.effcomm.util", "qualname": "gNID", "kind": "function", "doc": "

Compute Generalized Normalized Informational Distance between two encoders.

\n\n
Arguments:
\n\n
    \n
  • pW_X: first encoder of shape (|meanings|, |words|)
  • \n
  • pV_X: second encoder of shape (|meanings|, |words|)
  • \n
  • pX: prior over source variables of shape (|meanings|,)
  • \n
\n", "signature": "(pW_X, pV_X, pX):", "funcdef": "def"}, "ultk.language": {"fullname": "ultk.language", "modulename": "ultk.language", "kind": "module", "doc": "

Classes for modeling (natural or hypothetical) languagese.

\n\n

At the current stage of development, ULTK focuses on supporting abstractions to model the mapping between expressions and meanings of a language. So far, we leave almost everything besides this basic mapping (morphosyntax, phonology, phonetic inventories, among other features of human languages) to future work.

\n\n

The ultk.language.language submodule contains classes for constructing a language, which can contain one or more expressions.

\n\n

The ultk.language.semantics submodule contains classes for defining a universe (meaning space) of referents (denotations) and meanings (categories).

\n"}, "ultk.language.grammar": {"fullname": "ultk.language.grammar", "modulename": "ultk.language.grammar", "kind": "module", "doc": "

\n"}, "ultk.language.grammar.Rule": {"fullname": "ultk.language.grammar.Rule", "modulename": "ultk.language.grammar", "qualname": "Rule", "kind": "class", "doc": "

Basic class for a grammar rule. Grammar rules in ULTK correspond\nto functions. One can think of a grammar as generating complex functions from\nmore basic ones.

\n\n
Attributes:
\n\n
    \n
  • lhs: left-hand side of the rule (can be anything)\nconceptually, the output type of a function
  • \n
  • rhs: right-hand side; assumed to be an iterable\nconceptually, a list of types of inputs
  • \n
  • func: a callable, the function to be computed when a node with this rule is executed
  • \n
  • name: name of the function
  • \n
  • weight: a relative weight to assign to this rule\nwhen added to a grammar, all rules with the same LHS will be weighted together
  • \n
\n"}, "ultk.language.grammar.Rule.__init__": {"fullname": "ultk.language.grammar.Rule.__init__", "modulename": "ultk.language.grammar", "qualname": "Rule.__init__", "kind": "function", "doc": "

\n", "signature": "(\tname: str,\tlhs: Any,\trhs: collections.abc.Sequence | None,\tfunction: Callable = <function Rule.<lambda>>,\tweight: float = 1.0)"}, "ultk.language.grammar.Rule.lhs": {"fullname": "ultk.language.grammar.Rule.lhs", "modulename": "ultk.language.grammar", "qualname": "Rule.lhs", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.Rule.rhs": {"fullname": "ultk.language.grammar.Rule.rhs", "modulename": "ultk.language.grammar", "qualname": "Rule.rhs", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.Rule.func": {"fullname": "ultk.language.grammar.Rule.func", "modulename": "ultk.language.grammar", "qualname": "Rule.func", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.Rule.name": {"fullname": "ultk.language.grammar.Rule.name", "modulename": "ultk.language.grammar", "qualname": "Rule.name", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.Rule.weight": {"fullname": "ultk.language.grammar.Rule.weight", "modulename": "ultk.language.grammar", "qualname": "Rule.weight", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.Rule.is_terminal": {"fullname": "ultk.language.grammar.Rule.is_terminal", "modulename": "ultk.language.grammar", "qualname": "Rule.is_terminal", "kind": "function", "doc": "

Whether this is a terminal rule. In our framework, this means that RHS is empty,\ni.e. there are no arguments to the function.

\n", "signature": "(self) -> bool:", "funcdef": "def"}, "ultk.language.grammar.GrammaticalExpression": {"fullname": "ultk.language.grammar.GrammaticalExpression", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression", "kind": "class", "doc": "

A GrammaticalExpression has been built up from a Grammar by applying a sequence of Rules.\nCrucially, it is _callable_, using the functions corresponding to each rule.

\n\n

A GrammaticalExpression, when called, takes in a Referent. Because of this, a Meaning can\nbe generated by specifying a Universe (which contains Referents).

\n\n
Attributes:
\n\n
    \n
  • name: name of the top-most function
  • \n
  • func: the function
  • \n
  • children: child expressions (possibly empty)
  • \n
\n", "bases": "ultk.language.language.Expression"}, "ultk.language.grammar.GrammaticalExpression.__init__": {"fullname": "ultk.language.grammar.GrammaticalExpression.__init__", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.__init__", "kind": "function", "doc": "

\n", "signature": "(\trule_name: str,\tfunc: Callable,\tchildren: tuple | None,\tmeaning: ultk.language.semantics.Meaning | None = None,\tform: str | None = None)"}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"fullname": "ultk.language.grammar.GrammaticalExpression.rule_name", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.rule_name", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.GrammaticalExpression.func": {"fullname": "ultk.language.grammar.GrammaticalExpression.func", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.func", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.GrammaticalExpression.children": {"fullname": "ultk.language.grammar.GrammaticalExpression.children", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.children", "kind": "variable", "doc": "

\n"}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"fullname": "ultk.language.grammar.GrammaticalExpression.yield_string", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.yield_string", "kind": "function", "doc": "

Get the 'yield' string of this term, i.e. the concatenation\nof the leaf nodes.

\n\n

This is useful for thinking of a Grammar as generating derivation trees for\nan underlying CFG. This method will then generate the strings generated by\nthe corresponding CFG.

\n", "signature": "(self) -> str:", "funcdef": "def"}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"fullname": "ultk.language.grammar.GrammaticalExpression.evaluate", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.evaluate", "kind": "function", "doc": "

\n", "signature": "(\tself,\tuniverse: ultk.language.semantics.Universe) -> ultk.language.semantics.Meaning:", "funcdef": "def"}, "ultk.language.grammar.GrammaticalExpression.add_child": {"fullname": "ultk.language.grammar.GrammaticalExpression.add_child", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.add_child", "kind": "function", "doc": "

\n", "signature": "(self, child) -> None:", "funcdef": "def"}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"fullname": "ultk.language.grammar.GrammaticalExpression.to_dict", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.to_dict", "kind": "function", "doc": "

\n", "signature": "(self) -> dict:", "funcdef": "def"}, "ultk.language.grammar.UniquenessArgs": {"fullname": "ultk.language.grammar.UniquenessArgs", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs", "kind": "class", "doc": "

Arguments for specifying uniqueness of GrammaticalExpressions in a Grammar.

\n\n
Attributes:
\n\n
    \n
  • unique_expressions: a dictionary in which to store unique Expressions
  • \n
  • key: a function used to evaluate uniqueness
  • \n
  • compare_func: a comparison function, used to decide which Expression to add to the dict\nnew Expressions will be added as values to unique_dict only if they are minimal\namong those sharing the same key (by unique_key) according to this func
  • \n
\n", "bases": "typing.TypedDict"}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"fullname": "ultk.language.grammar.UniquenessArgs.unique_expressions", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs.unique_expressions", "kind": "variable", "doc": "

\n", "annotation": ": dict[typing.Any, dict[typing.Any, ultk.language.grammar.GrammaticalExpression]]"}, "ultk.language.grammar.UniquenessArgs.key": {"fullname": "ultk.language.grammar.UniquenessArgs.key", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs.key", "kind": "variable", "doc": "

\n", "annotation": ": Callable[[ultk.language.grammar.GrammaticalExpression], Any]"}, "ultk.language.grammar.UniquenessArgs.compare_func": {"fullname": "ultk.language.grammar.UniquenessArgs.compare_func", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs.compare_func", "kind": "variable", "doc": "

\n", "annotation": ": Callable[[ultk.language.grammar.GrammaticalExpression, ultk.language.grammar.GrammaticalExpression], bool]"}, "ultk.language.grammar.Grammar": {"fullname": "ultk.language.grammar.Grammar", "modulename": "ultk.language.grammar", "qualname": "Grammar", "kind": "class", "doc": "

At its core, a Grammar is a set of Rules with methods for generating GrammaticalExpressions.

\n"}, "ultk.language.grammar.Grammar.__init__": {"fullname": "ultk.language.grammar.Grammar.__init__", "modulename": "ultk.language.grammar", "qualname": "Grammar.__init__", "kind": "function", "doc": "

\n", "signature": "(start: Any)"}, "ultk.language.grammar.Grammar.add_rule": {"fullname": "ultk.language.grammar.Grammar.add_rule", "modulename": "ultk.language.grammar", "qualname": "Grammar.add_rule", "kind": "function", "doc": "

\n", "signature": "(self, rule: ultk.language.grammar.Rule):", "funcdef": "def"}, "ultk.language.grammar.Grammar.parse": {"fullname": "ultk.language.grammar.Grammar.parse", "modulename": "ultk.language.grammar", "qualname": "Grammar.parse", "kind": "function", "doc": "

Parse a string representation of an expression of a grammar.\nNote that this is not a general-purpose parsing algorithm. We assume that the strings are of the form\n parent_name(child1_name, ..., childn_name)\nwhere parent_name is the name of a rule of this grammar that has a length-n RHS, and that\nchildi_name is the name of a rule for each child i.

\n\n
Arguments:
\n\n
    \n
  • expression: string in the above format
  • \n
\n\n
Returns:
\n\n
\n

the corresponding GrammaticalExpression

\n
\n", "signature": "(\tself,\texpression: str,\topener: str = '(',\tcloser: str = ')',\tdelimiter: str = ',') -> ultk.language.grammar.GrammaticalExpression:", "funcdef": "def"}, "ultk.language.grammar.Grammar.generate": {"fullname": "ultk.language.grammar.Grammar.generate", "modulename": "ultk.language.grammar", "qualname": "Grammar.generate", "kind": "function", "doc": "

Generate an expression from a given lhs.

\n", "signature": "(self, lhs: Any = None) -> ultk.language.grammar.GrammaticalExpression:", "funcdef": "def"}, "ultk.language.grammar.Grammar.enumerate": {"fullname": "ultk.language.grammar.Grammar.enumerate", "modulename": "ultk.language.grammar", "qualname": "Grammar.enumerate", "kind": "function", "doc": "

Enumerate all expressions from the grammar up to a given depth from a given LHS.\nThis method also can update a specified dictionary to store only _unique_ expressions, with\na user-specified criterion of uniqueness.

\n\n
Arguments:
\n\n
    \n
  • depth: how deep the trees should be
  • \n
  • lhs: left hand side to start from; defaults to the grammar's start symbol
  • \n
  • uniqueness_args: a dictionary specifying the parameters for uniqueness:\nunique_dict: a dictionary in which to store unique Expressions\nkey: a function used to evaluate uniqueness\ncompare_func: a comparison function, used to decide which Expression to add to the dict\n new Expressions will be added as values to unique_dict only if they are _minimal_\n among those sharing the same key (by unique_key) according to this func
  • \n
\n\n
Yields:
\n\n
\n

all GrammaticalExpressions up to depth

\n
\n", "signature": "(\tself,\tdepth: int = 8,\tlhs: Any = None,\tuniqueness_args: ultk.language.grammar.UniquenessArgs | None = None) -> Generator[ultk.language.grammar.GrammaticalExpression, NoneType, NoneType]:", "funcdef": "def"}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"fullname": "ultk.language.grammar.Grammar.enumerate_at_depth", "modulename": "ultk.language.grammar", "qualname": "Grammar.enumerate_at_depth", "kind": "function", "doc": "

Enumerate GrammaticalExpressions for this Grammar _at_ a fixed depth.

\n", "signature": "(\tself,\tdepth: int,\tlhs: Any,\tuniqueness_args: ultk.language.grammar.UniquenessArgs | None = None,\tcache: dict | None = None) -> Generator[ultk.language.grammar.GrammaticalExpression, NoneType, NoneType]:", "funcdef": "def"}, "ultk.language.grammar.Grammar.get_unique_expressions": {"fullname": "ultk.language.grammar.Grammar.get_unique_expressions", "modulename": "ultk.language.grammar", "qualname": "Grammar.get_unique_expressions", "kind": "function", "doc": "

Get all unique GrammaticalExpressions, up to a certain depth, with a user-specified criterion\nof uniqueness, and a specified comparison function for determining which Expression to save when there's a clash.\nThis can be used, for instance, to measure the minimum description length of some\nMeanings, by using expression.evaluate(), which produces a Meaning for an Expression, as the\nkey for determining uniqueness, and length of the expression as comparison.

\n\n

This is a wrapper around enumerate, but which produces the dictionary of key->Expression entries\nand returns it. (enumerate is a generator with side effects).

\n\n

For Args, see the docstring for enumerate.

\n\n

Note: if you additionally want to store _all_ expressions, and not just the unique ones, you should\ndirectly use enumerate.

\n\n
Returns:
\n\n
\n

dictionary of {key: GrammaticalExpression}, where the keys are generated by unique_key\n The GrammticalExpression which is the value will be the one that is minimum among\n compare_func amongst all Expressions up to depth which share the same key

\n
\n", "signature": "(\tself,\tdepth: int,\tunique_key: Callable[[ultk.language.grammar.GrammaticalExpression], Any],\tcompare_func: Callable[[ultk.language.grammar.GrammaticalExpression, ultk.language.grammar.GrammaticalExpression], bool],\tlhs: Any = None,\tmax_size: float = inf) -> dict[ultk.language.grammar.GrammaticalExpression, typing.Any]:", "funcdef": "def"}, "ultk.language.grammar.Grammar.get_all_rules": {"fullname": "ultk.language.grammar.Grammar.get_all_rules", "modulename": "ultk.language.grammar", "qualname": "Grammar.get_all_rules", "kind": "function", "doc": "

Get all rules as a list.

\n", "signature": "(self) -> list[ultk.language.grammar.Rule]:", "funcdef": "def"}, "ultk.language.grammar.Grammar.from_yaml": {"fullname": "ultk.language.grammar.Grammar.from_yaml", "modulename": "ultk.language.grammar", "qualname": "Grammar.from_yaml", "kind": "function", "doc": "

Read a grammar specified in a simple YAML format.

\n\n

Expected format:

\n\n
start: bool\nrules:\n- lhs: bool\n  rhs:\n  - bool\n  - bool\n  name: \"and\"\n  function: \"lambda p1, p2 : p1 and p2\"\n- lhs: bool\n  rhs:\n  - bool\n  - bool\n  name: \"or\"\n  function: \"lambda p1, p2 : p1 or p2\"\n
\n\n

Note that for each fule, the value for function will be passed to\neval, so be careful!

\n\n
Arguments:
\n\n
    \n
  • filename: file containing a grammar in the above format
  • \n
\n", "signature": "(cls, filename: str):", "funcdef": "def"}, "ultk.language.language": {"fullname": "ultk.language.language", "modulename": "ultk.language.language", "kind": "module", "doc": "

Classes for modeling languages as form-meaning mappings, most important among them the Language and Expression classes.

\n\n
Example usage:
\n\n
\n
\n
>>> from ultk.language.language import Expression, Language\n>>> # assuming the meaning `a_few_meaning` has already been constructed\n>>> # define the expression\n>>> a_few = NumeralExpression(form="a few", meaning=a_few_meaning)\n>>> # define a very small language\n>>> lang_1 = Language([a_few])\n>>> # or a slightly larger one with synonymy\n>>> lang_2 = Language([a_few] * 3)\n
\n
\n
\n"}, "ultk.language.language.Expression": {"fullname": "ultk.language.language.Expression", "modulename": "ultk.language.language", "qualname": "Expression", "kind": "class", "doc": "

Minimally contains a form and a meaning.

\n"}, "ultk.language.language.Expression.__init__": {"fullname": "ultk.language.language.Expression.__init__", "modulename": "ultk.language.language", "qualname": "Expression.__init__", "kind": "function", "doc": "

\n", "signature": "(\tform: str | None = None,\tmeaning: ultk.language.semantics.Meaning | None = None)"}, "ultk.language.language.Expression.form": {"fullname": "ultk.language.language.Expression.form", "modulename": "ultk.language.language", "qualname": "Expression.form", "kind": "variable", "doc": "

\n"}, "ultk.language.language.Expression.meaning": {"fullname": "ultk.language.language.Expression.meaning", "modulename": "ultk.language.language", "qualname": "Expression.meaning", "kind": "variable", "doc": "

\n"}, "ultk.language.language.Expression.can_express": {"fullname": "ultk.language.language.Expression.can_express", "modulename": "ultk.language.language", "qualname": "Expression.can_express", "kind": "function", "doc": "

Return True if the expression can express the input single meaning point and false otherwise.

\n", "signature": "(self, referent: ultk.language.semantics.Referent) -> bool:", "funcdef": "def"}, "ultk.language.language.Expression.to_dict": {"fullname": "ultk.language.language.Expression.to_dict", "modulename": "ultk.language.language", "qualname": "Expression.to_dict", "kind": "function", "doc": "

\n", "signature": "(self) -> dict:", "funcdef": "def"}, "ultk.language.language.Language": {"fullname": "ultk.language.language.Language", "modulename": "ultk.language.language", "qualname": "Language", "kind": "class", "doc": "

Minimally contains Expression objects.

\n"}, "ultk.language.language.Language.__init__": {"fullname": "ultk.language.language.Language.__init__", "modulename": "ultk.language.language", "qualname": "Language.__init__", "kind": "function", "doc": "

\n", "signature": "(expressions: tuple[ultk.language.language.Expression, ...], **kwargs)"}, "ultk.language.language.Language.expressions": {"fullname": "ultk.language.language.Language.expressions", "modulename": "ultk.language.language", "qualname": "Language.expressions", "kind": "variable", "doc": "

\n", "annotation": ": tuple[ultk.language.language.Expression, ...]"}, "ultk.language.language.Language.universe": {"fullname": "ultk.language.language.Language.universe", "modulename": "ultk.language.language", "qualname": "Language.universe", "kind": "variable", "doc": "

\n", "annotation": ": ultk.language.semantics.Universe"}, "ultk.language.language.Language.add_expression": {"fullname": "ultk.language.language.Language.add_expression", "modulename": "ultk.language.language", "qualname": "Language.add_expression", "kind": "function", "doc": "

Add an expression to the list of expressions in a language.

\n", "signature": "(self, e: ultk.language.language.Expression):", "funcdef": "def"}, "ultk.language.language.Language.pop": {"fullname": "ultk.language.language.Language.pop", "modulename": "ultk.language.language", "qualname": "Language.pop", "kind": "function", "doc": "

Removes an expression at the specified index of the list of expressions, and returns it.

\n", "signature": "(self, index: int) -> ultk.language.language.Expression:", "funcdef": "def"}, "ultk.language.language.Language.is_natural": {"fullname": "ultk.language.language.Language.is_natural", "modulename": "ultk.language.language", "qualname": "Language.is_natural", "kind": "function", "doc": "

Whether a language represents a human natural language.

\n", "signature": "(self) -> bool:", "funcdef": "def"}, "ultk.language.language.Language.degree_property": {"fullname": "ultk.language.language.Language.degree_property", "modulename": "ultk.language.language", "qualname": "Language.degree_property", "kind": "function", "doc": "

Count what percentage of expressions in a language have a given property.

\n", "signature": "(\tself,\tproperty: Callable[[ultk.language.language.Expression], bool]) -> float:", "funcdef": "def"}, "ultk.language.language.Language.binary_matrix": {"fullname": "ultk.language.language.Language.binary_matrix", "modulename": "ultk.language.language", "qualname": "Language.binary_matrix", "kind": "function", "doc": "

Get a binary matrix of shape (num_meanings, num_expressions)\nspecifying which expressions can express which meanings.

\n", "signature": "(self) -> numpy.ndarray:", "funcdef": "def"}, "ultk.language.language.Language.to_dict": {"fullname": "ultk.language.language.Language.to_dict", "modulename": "ultk.language.language", "qualname": "Language.to_dict", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> dict:", "funcdef": "def"}, "ultk.language.language.aggregate_expression_complexity": {"fullname": "ultk.language.language.aggregate_expression_complexity", "modulename": "ultk.language.language", "qualname": "aggregate_expression_complexity", "kind": "function", "doc": "

Aggregate complexities for individual Expressions into a complexity for a Language.

\n\n
Arguments:
\n\n
    \n
  • language: the Language to measure
  • \n
  • expression_complexity_func: the function that returns the complexity of an individual expression
  • \n
  • aggregator: (optional, default = sum) the function that aggregates individual complexities
  • \n
\n\n
Returns:
\n\n
\n

a float, the complexity of a language

\n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpression_complexity_func: Callable[[ultk.language.language.Expression], float],\taggregator: Callable[[Iterable[float]], float] = <built-in function sum>) -> float:", "funcdef": "def"}, "ultk.language.sampling": {"fullname": "ultk.language.sampling", "modulename": "ultk.language.sampling", "kind": "module", "doc": "

\n"}, "ultk.language.sampling.powerset": {"fullname": "ultk.language.sampling.powerset", "modulename": "ultk.language.sampling", "qualname": "powerset", "kind": "function", "doc": "

Enumerate all _non-empty_ subsets of an iterable up to a given maximum size, e.g.:\npowerset([1,2,3]) --> (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)

\n\n

lightly adapted from itertools Recipes at\nhttps://docs.python.org/3/library/itertools.html#itertools-recipes

\n\n
Arguments:
\n\n
    \n
  • iterable: elements from which to form subsets
  • \n
  • max_size: largest subsets (inclusive) to return
  • \n
\n\n
Returns:
\n\n
\n

iterator over all subsets from size 1 to max_size of elements from iterable

\n
\n", "signature": "(iterable: Iterable, max_size: int = None) -> Iterable:", "funcdef": "def"}, "ultk.language.sampling.all_meanings": {"fullname": "ultk.language.sampling.all_meanings", "modulename": "ultk.language.sampling", "qualname": "all_meanings", "kind": "function", "doc": "

Generate all Meanings (sets of Referents) from a given Universe.

\n", "signature": "(\tuniverse: ultk.language.semantics.Universe) -> Generator[ultk.language.semantics.Meaning, NoneType, NoneType]:", "funcdef": "def"}, "ultk.language.sampling.all_expressions": {"fullname": "ultk.language.sampling.all_expressions", "modulename": "ultk.language.sampling", "qualname": "all_expressions", "kind": "function", "doc": "

Generate Expressions from an iterable of Meanings.

\n", "signature": "(\tmeanings: Iterable[ultk.language.semantics.Meaning]) -> Generator[ultk.language.language.Expression, NoneType, NoneType]:", "funcdef": "def"}, "ultk.language.sampling.all_languages": {"fullname": "ultk.language.sampling.all_languages", "modulename": "ultk.language.sampling", "qualname": "all_languages", "kind": "function", "doc": "

Generate all Languages (sets of Expressions) from a given set of Expressions.

\n\n
Arguments:
\n\n
    \n
  • expressions: iterable of all possible expressions
  • \n
  • language_class: the type of language to generate
  • \n
  • max_size: largest size for a language; if None, all subsets of expressions will be used
  • \n
\n\n
Yields:
\n\n
\n

Languages with subsets of Expressions from expressions

\n
\n", "signature": "(\texpressions: Iterable[ultk.language.language.Expression],\tlanguage_class: Type[ultk.language.language.Language] = <class 'ultk.language.language.Language'>,\tmax_size: int = None) -> Generator[ultk.language.language.Language, NoneType, NoneType]:", "funcdef": "def"}, "ultk.language.sampling.upto_comb": {"fullname": "ultk.language.sampling.upto_comb", "modulename": "ultk.language.sampling", "qualname": "upto_comb", "kind": "function", "doc": "

Return the number of ways of choosing _up to max_k_ items from\nn items without repetition. Just an iterator of math.comb for n from\n1 to max_k.

\n", "signature": "(num: int, max_k: int) -> int:", "funcdef": "def"}, "ultk.language.sampling.random_languages": {"fullname": "ultk.language.sampling.random_languages", "modulename": "ultk.language.sampling", "qualname": "random_languages", "kind": "function", "doc": "

Generate unique Languages by randomly sampling subsets of Expressions, either in a uniform or stratified way.\nIf there are fewer than sample_size possible Languages up to size max_size,\nthis method will just return all languages up to that size (and so the sample may\nbe smaller than sample_size).

\n\n

Some use cases:

\n\n

With sample_size=None, get all languages.

\n\n
\n
>>> random_languages(expressions)\n
\n
\n\n

With sample_size and uniform sampling, get random languages:

\n\n
\n
>>> random_languages(expressions, sample_size=1000)\n
\n
\n\n

Stratified sampling, with and without a max_size:

\n\n
\n
>>> random_languages(expressions, sample_size=1000, sampling_strategy="stratified")\n>>> random_languages(expressions, sample_size=1000, sampling_strategy="stratified", max_size=10)\n
\n
\n\n
Arguments:
\n\n
    \n
  • expressions: all possible expressions
  • \n
  • sampling_strategy: how to sample subsets of expressions\nuniform: for every expression, choose whether or not to include it in a given language\nstratified: first sample a size for a Language, then choose that many random Expressions\n (i) this has the effect of \"upsampling\" from smaller Language sizes\n (ii) this can be used with max_size to only generate Languages up to a given number of expressions
  • \n
  • sample_size: how many languages to return\nif None, will return all languages up to max_size
  • \n
  • language_class: type of Language
  • \n
  • max_size: largest possible Language to generate\nif None, will be the length of expressions\nNB: this argument has no effect when sampling_strategy is \"uniform\"
  • \n
\n\n
Returns:
\n\n
\n

a list of randomly sampled Languages

\n
\n", "signature": "(\texpressions: Iterable[ultk.language.language.Expression],\tsampling_strategy: str = 'uniform',\tsample_size: int = None,\tlanguage_class: Type[ultk.language.language.Language] = <class 'ultk.language.language.Language'>,\tmax_size: int = None) -> list[ultk.language.language.Language]:", "funcdef": "def"}, "ultk.language.sampling.generate_languages": {"fullname": "ultk.language.sampling.generate_languages", "modulename": "ultk.language.sampling", "qualname": "generate_languages", "kind": "function", "doc": "

Generate languages by randomly sampling vocabularies as bags of expressions.

\n\n

A predicate (binary-valued property) of expressions may be supplied, which can be used to adjust the composition of vocabularies (e.g., by the percent of expressions satisfying the predicate).

\n\n

If sample size <= nCr, then take a random sample_size set of combinations. Otherwise, to prevent repeat languages, treat nCr as the sample size.

\n\n
Arguments:
\n\n
    \n
  • expressions: a list of the possible expressions to sample from.
  • \n
  • lang_size: the maximum (or exact) number of expressions in each language.
  • \n
  • sample_size: the number of languages to generate.
  • \n
  • criterion: the predicate, (e.g. semantic universal) by which to split the expressions into those satisfying and those not, and then sample languages with degrees of naturalness based on the percentage from those satisfying. Must apply at the expression level. By default is a trivial criterion, so that all expressions are 'quasi-natural'.
  • \n
  • fixed_wordcount: whether to vary the language size from 1 to lang_size.
  • \n
  • verbose: How detailed the progress of sampling should be, printed to stdout.
  • \n
  • dummy_name: the default name to give to each sampled language, e.g. sampled_lang_42. These should not collide with any actual natural language names if the efficient communication experiment does use natural language data.
  • \n
  • id_start: an integer representing the number of languages already generated in an experiment. Languages sampled will be named according to this number. For example, if id_start is 0, the first language sampled will be named sampled_lang_0. Note that the largest id does not necessarily track the actual size of languages saved for the experiment, but it does track how many languages have been generated.
  • \n
  • exact_sample: a boolean representing whether to sample until the exact sample size is filled. If True, the resulting pool of languages may not be unique.
  • \n
  • verbose: a boolean representing how verbose output should be during sampling.
  • \n
\n\n
Returns:
\n\n
\n

a dict representing the generated pool of languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n\n
Examples:
\n\n
\n
\n
>>> # Turn the knob on a universal property for modals\n>>> expressions = load_expressions(expressions_file)\n>>> universal_property = iff\n>>> result = generate_languages(\n...    ModalLanguage,\n...    expressions,\n...    lang_size,\n...    sample_size,\n...    universal_property,\n...)\n>>> languages = result["languages"]\n>>> id_start = result["id_start"]\n
\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\texpressions: list[ultk.language.language.Expression],\tlang_size: int,\tsample_size: int,\tcriterion: Callable[[ultk.language.language.Expression], bool] = <function <lambda>>,\tfixed_wordcount=False,\tdummy_name='sampled_lang_',\tid_start: int = 0,\texact_sample=False,\tverbose=False) -> dict[str, typing.Any]:", "funcdef": "def"}, "ultk.language.sampling.sample_lang_size": {"fullname": "ultk.language.sampling.sample_lang_size", "modulename": "ultk.language.sampling", "qualname": "sample_lang_size", "kind": "function", "doc": "

Get a sample of languages each of exactly lang_size.

\n\n
Arguments:
\n\n
    \n
  • language_class: a subclass of ultk.Language
  • \n
  • expressions: a list of Expressions to sample from
  • \n
  • lang_size: int representing the maximum language size to sample
  • \n
  • sample_size: int representing the number of total languages to return
  • \n
  • id_start: an int representing the number of languages already generated in an experiment.
  • \n
\n\n
Returns:
\n\n
\n

a dict containing the randomly sampled languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\texpressions: list[ultk.language.language.Expression],\tlang_size: int,\tsample_size: int,\tid_start: int = 0,\tverbose=False,\tdummy_name='sampled_lang_id') -> list[ultk.language.language.Language]:", "funcdef": "def"}, "ultk.language.sampling.sample_quasi_natural": {"fullname": "ultk.language.sampling.sample_quasi_natural", "modulename": "ultk.language.sampling", "qualname": "sample_quasi_natural", "kind": "function", "doc": "

Turn the knob on degree quasi-naturalness for a sample of languages, either by enumerating or randomly sampling unique subsets of all possible combinations.

\n\n
Arguments:
\n\n
    \n
  • natural_terms: expressions satisfying some criteria of quasi-naturalness, e.g, a semantic universal.
  • \n
  • unnatural_terms: expressions not satisfying the criteria.
  • \n
  • lang_size: the exact number of expressions a language must have.
  • \n
  • sample_size: how many languages to sample.
  • \n
\n\n
Returns:
\n\n
\n

a dict containing the randomly sampled quasi-natural languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\tnatural_terms: list[ultk.language.language.Expression],\tunnatural_terms: list[ultk.language.language.Expression],\tlang_size: int,\tsample_size: int,\tid_start: int,\tdummy_name='sampled_lang_id',\tverbose=False) -> dict[str, typing.Any]:", "funcdef": "def"}, "ultk.language.sampling.rename_id": {"fullname": "ultk.language.sampling.rename_id", "modulename": "ultk.language.sampling", "qualname": "rename_id", "kind": "function", "doc": "

Updates a string of form sampled_lang_X with a new id for X.

\n", "signature": "(name: str, id: int) -> str:", "funcdef": "def"}, "ultk.language.sampling.enumerate_all_languages": {"fullname": "ultk.language.sampling.enumerate_all_languages", "modulename": "ultk.language.sampling", "qualname": "enumerate_all_languages", "kind": "function", "doc": "

When the sample size requested is greater than the size of all possible languages, just enumerate all the possible languages.

\n\n
Arguments:
\n\n
    \n
  • language_class: the kind of Language to construct
  • \n
  • id_start: a number to start counting from for assigning names with numerical ids to languages.
  • \n
  • natural_indices: the indices of quasi-natural languages already seen
  • \n
  • num_natural: the number of quasi-natural languages to sample
  • \n
  • natural_terms: the list of quasi-natural terms to sample from
  • \n
  • unnatural_indices: the indices of non-quasi-natural languages already seen
  • \n
  • num_unnatural: the number of non-quasi-natural languages to sample; 0 by default
  • \n
  • unnatural_terms: the list of non-quasi-natural terms to sample from; empty by default.
  • \n
  • dummy_name: the format of the string to name each language constructed.
  • \n
\n\n
Returns:
\n\n
\n

a dict containing a set of languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\tid_start: int,\tnatural_terms: list[ultk.language.language.Expression],\tnatural_indices: list[int],\tnum_natural: int = 0,\tunnatural_terms: list[ultk.language.language.Expression] = [],\tunnatural_indices: list[int] = [],\tnum_unnatural: int = 0,\tdummy_name='sampled_lang_id',\tverbose=False) -> dict[str, typing.Any]:", "funcdef": "def"}, "ultk.language.sampling.random_combination_vocabulary": {"fullname": "ultk.language.sampling.random_combination_vocabulary", "modulename": "ultk.language.sampling", "qualname": "random_combination_vocabulary", "kind": "function", "doc": "

Get a single vocabulary for a specific language size by choosing a random combination of natural and unnatural terms.

\n\n
Arguments:
\n\n
    \n
  • seen: the list of language indices already seen
  • \n
  • num_natural: int
  • \n
  • natural_terms: list[Expression]
  • \n
  • num_unnatural: int=0
  • \n
  • unnatural_terms: list[Expression]=[]
  • \n
\n\n
Returns:
\n\n
\n

languages: the extended list of input languages.

\n
\n", "signature": "(\tseen: set,\tnum_natural: int,\tnatural_terms: list[ultk.language.language.Expression],\tnum_unnatural: int = 0,\tunnatural_terms: list[ultk.language.language.Expression] = []) -> list[ultk.language.language.Language]:", "funcdef": "def"}, "ultk.language.semantics": {"fullname": "ultk.language.semantics", "modulename": "ultk.language.semantics", "kind": "module", "doc": "

Classes for modeling the meanings of a language.

\n\n

Meanings are modeled as things which map linguistic forms to objects of reference. The linguistic forms and objects of reference can in principle be very detailed, and future work may elaborate the meaning classes and implement a Form class.

\n\n

In efficient communication analyses, simplicity and informativeness can be measured as properties of semantic aspects of a language. E.g., a meaning is simple if it is easy to represent, or to compress into some code; a meaning is informative if it is easy for a listener to recover a speaker's intended literal meaning.

\n\n
Examples:
\n\n
\n
\n
>>> from ultk.language.semantics import Referent, Meaning, Universe\n>>> from ultk.language.language import Expression\n>>> # construct the meaning space for numerals\n>>> numerals_universe = NumeralUniverse(referents=[NumeralReferent(str(i)) for i in range(1, 100)])\n>>> # construct a list of referents for the expression 'a few'\n>>> a_few_refs = [NumeralReferent(name=str(i)) for i in range(2, 6)]\n>>> a_few_meaning = NumeralMeaning(referents=a_few_refs, universe=numerals_universe)\n>>> # define the expression\n>>> a_few = NumeralExpression(form="a few", meaning=a_few_meaning)\n
\n
\n
\n"}, "ultk.language.semantics.Referent": {"fullname": "ultk.language.semantics.Referent", "modulename": "ultk.language.semantics", "qualname": "Referent", "kind": "class", "doc": "

A referent is some object in the universe for a language.

\n"}, "ultk.language.semantics.Referent.__init__": {"fullname": "ultk.language.semantics.Referent.__init__", "modulename": "ultk.language.semantics", "qualname": "Referent.__init__", "kind": "function", "doc": "

Initialize a referent.

\n\n
Arguments:
\n\n
    \n
  • name: a string representing the name of the referent
  • \n
\n", "signature": "(name: str, properties: dict = {}, **kwargs)"}, "ultk.language.semantics.Referent.name": {"fullname": "ultk.language.semantics.Referent.name", "modulename": "ultk.language.semantics", "qualname": "Referent.name", "kind": "variable", "doc": "

\n"}, "ultk.language.semantics.Referent.to_dict": {"fullname": "ultk.language.semantics.Referent.to_dict", "modulename": "ultk.language.semantics", "qualname": "Referent.to_dict", "kind": "function", "doc": "

\n", "signature": "(self) -> dict:", "funcdef": "def"}, "ultk.language.semantics.Universe": {"fullname": "ultk.language.semantics.Universe", "modulename": "ultk.language.semantics", "qualname": "Universe", "kind": "class", "doc": "

The universe is the set of possible referent objects for a meaning.

\n"}, "ultk.language.semantics.Universe.__init__": {"fullname": "ultk.language.semantics.Universe.__init__", "modulename": "ultk.language.semantics", "qualname": "Universe.__init__", "kind": "function", "doc": "

\n", "signature": "(\treferents: Iterable[ultk.language.semantics.Referent],\tprior: dict[str, float] = None)"}, "ultk.language.semantics.Universe.referents": {"fullname": "ultk.language.semantics.Universe.referents", "modulename": "ultk.language.semantics", "qualname": "Universe.referents", "kind": "variable", "doc": "

\n"}, "ultk.language.semantics.Universe.set_prior": {"fullname": "ultk.language.semantics.Universe.set_prior", "modulename": "ultk.language.semantics", "qualname": "Universe.set_prior", "kind": "function", "doc": "

\n", "signature": "(self, prior: dict[str, float]):", "funcdef": "def"}, "ultk.language.semantics.Universe.prior_numpy": {"fullname": "ultk.language.semantics.Universe.prior_numpy", "modulename": "ultk.language.semantics", "qualname": "Universe.prior_numpy", "kind": "function", "doc": "

\n", "signature": "(self) -> numpy.ndarray:", "funcdef": "def"}, "ultk.language.semantics.Universe.from_dataframe": {"fullname": "ultk.language.semantics.Universe.from_dataframe", "modulename": "ultk.language.semantics", "qualname": "Universe.from_dataframe", "kind": "function", "doc": "

Build a Universe from a DataFrame.\nIt's assumed that each row specifies one Referent, and each column will be a property\nof that Referent. We assume that name is one of the columns of the DataFrame.

\n\n
Arguments:
\n\n
    \n
  • a DataFrame representing the meaning space of interest, assumed to have a column name
  • \n
\n", "signature": "(cls, df: pandas.core.frame.DataFrame):", "funcdef": "def"}, "ultk.language.semantics.Universe.from_csv": {"fullname": "ultk.language.semantics.Universe.from_csv", "modulename": "ultk.language.semantics", "qualname": "Universe.from_csv", "kind": "function", "doc": "

Build a Universe from a CSV file. This is a small wrapper around\nUniverse.from_dataframe, so see that documentation for more information.

\n", "signature": "(cls, filename: str):", "funcdef": "def"}, "ultk.language.semantics.Meaning": {"fullname": "ultk.language.semantics.Meaning", "modulename": "ultk.language.semantics", "qualname": "Meaning", "kind": "class", "doc": "

A meaning picks out a set of objects from the universe.

\n\n

On one tradition (from formal semantics), we might model an underspecified meaning as a subset of the universe.\nSometimes these different referents are not equally likely,\nin which it can be helpful to define a meaning explicitly as a distribution over the universe.

\n"}, "ultk.language.semantics.Meaning.__init__": {"fullname": "ultk.language.semantics.Meaning.__init__", "modulename": "ultk.language.semantics", "qualname": "Meaning.__init__", "kind": "function", "doc": "

A meaning is the set of things it refers to.

\n\n

The objects of reference are a subset of the universe of discourse. Sometimes it is natural to construe the meaning as as a probability distribution over the universe, instead of just a binary predicate.

\n\n
Arguments:
\n\n
    \n
  • referents: a list of Referent objects, which must be a subset of the referents in universe.
  • \n
  • universe: a Universe object that defines the probability space for a meaning.
  • \n
  • dist: a dict of with Referent names as keys and weights or probabilities as values, representing the distribution over referents to associate with the meaning. By default is None, and the distribution will be uniform over the passed referents, and any remaining referents are assigned 0 probability.
  • \n
\n", "signature": "(\treferents: Iterable[ultk.language.semantics.Referent],\tuniverse: ultk.language.semantics.Universe,\tdist: dict[str, float] = None)"}, "ultk.language.semantics.Meaning.referents": {"fullname": "ultk.language.semantics.Meaning.referents", "modulename": "ultk.language.semantics", "qualname": "Meaning.referents", "kind": "variable", "doc": "

\n"}, "ultk.language.semantics.Meaning.universe": {"fullname": "ultk.language.semantics.Meaning.universe", "modulename": "ultk.language.semantics", "qualname": "Meaning.universe", "kind": "variable", "doc": "

\n"}, "ultk.language.semantics.Meaning.to_dict": {"fullname": "ultk.language.semantics.Meaning.to_dict", "modulename": "ultk.language.semantics", "qualname": "Meaning.to_dict", "kind": "function", "doc": "

\n", "signature": "(self) -> dict:", "funcdef": "def"}}, "docInfo": {"ultk": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 771}, "ultk.effcomm": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 361}, "ultk.effcomm.agent": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 30}, "ultk.effcomm.agent.CommunicativeAgent": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 80}, "ultk.effcomm.agent.CommunicativeAgent.language": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"qualname": 2, "fullname": 5, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 19}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 50, "bases": 0, "doc": 87}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 62}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 80}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 95, "bases": 0, "doc": 163}, "ultk.effcomm.agent.Speaker": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "ultk.effcomm.agent.Speaker.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 80}, "ultk.effcomm.agent.Speaker.S": {"qualname": 2, "fullname": 5, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.Speaker.normalized_weights": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 27}, "ultk.effcomm.agent.Listener": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "ultk.effcomm.agent.Listener.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 80}, "ultk.effcomm.agent.Listener.R": {"qualname": 2, "fullname": 5, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.Listener.normalized_weights": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 30}, "ultk.effcomm.agent.LiteralSpeaker": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 70}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 80}, "ultk.effcomm.agent.LiteralSpeaker.S": {"qualname": 2, "fullname": 5, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.LiteralListener": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 61}, "ultk.effcomm.agent.LiteralListener.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 80}, "ultk.effcomm.agent.LiteralListener.R": {"qualname": 2, "fullname": 5, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.PragmaticSpeaker": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 43}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 83, "bases": 0, "doc": 158}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"qualname": 2, "fullname": 5, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.PragmaticListener": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 45}, "ultk.effcomm.agent.PragmaticListener.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 80, "bases": 0, "doc": 122}, "ultk.effcomm.agent.PragmaticListener.R": {"qualname": 2, "fullname": 5, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.agent.BayesianListener": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 108}, "ultk.effcomm.agent.BayesianListener.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 64, "bases": 0, "doc": 80}, "ultk.effcomm.analysis": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "ultk.effcomm.analysis.get_dataframe": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 145, "bases": 0, "doc": 153}, "ultk.effcomm.analysis.pearson_analysis": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 153}, "ultk.effcomm.analysis.trade_off_means": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 294}, "ultk.effcomm.analysis.trade_off_ttest": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 257}, "ultk.effcomm.information": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "ultk.effcomm.information.information_rate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 16}, "ultk.effcomm.information.get_rd_curve": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 75, "bases": 0, "doc": 16}, "ultk.effcomm.information.expected_distortion": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 17}, "ultk.effcomm.information.compute_rate_distortion": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 148}, "ultk.effcomm.information.blahut_arimoto": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 117, "bases": 0, "doc": 260}, "ultk.effcomm.information.get_ib_curve": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 122, "bases": 0, "doc": 225}, "ultk.effcomm.information.get_bottleneck": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 98, "bases": 0, "doc": 282}, "ultk.effcomm.information.ib_complexity": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 12}, "ultk.effcomm.information.ib_informativity": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 80}, "ultk.effcomm.information.ib_comm_cost": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 93}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 92}, "ultk.effcomm.information.ib_accuracy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 107}, "ultk.effcomm.information.ib_distortion": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 115}, "ultk.effcomm.information.ib_encoder_to_point": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 87, "bases": 0, "doc": 108}, "ultk.effcomm.information.ib_optimal_decoder": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 63, "bases": 0, "doc": 89}, "ultk.effcomm.informativity": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 13}, "ultk.effcomm.informativity.indicator_utility": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 16}, "ultk.effcomm.informativity.informativity": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 152, "bases": 0, "doc": 306}, "ultk.effcomm.informativity.communicative_success": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 136, "bases": 0, "doc": 161}, "ultk.effcomm.optimization": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 22}, "ultk.effcomm.optimization.Mutation": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.Mutation.precondition": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 13}, "ultk.effcomm.optimization.Mutation.mutate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 12}, "ultk.effcomm.optimization.RemoveExpression": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 13}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 12}, "ultk.effcomm.optimization.AddExpression": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "ultk.effcomm.optimization.AddExpression.precondition": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 13}, "ultk.effcomm.optimization.AddExpression.mutate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 12}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 170, "bases": 0, "doc": 184}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 98, "bases": 0, "doc": 157}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 47}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 56, "bases": 0, "doc": 73}, "ultk.effcomm.optimization.sample_parents": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 107, "bases": 0, "doc": 117}, "ultk.effcomm.sampling": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "ultk.effcomm.sampling.get_hypothetical_variants": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 116, "bases": 0, "doc": 164}, "ultk.effcomm.tradeoff": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 26}, "ultk.effcomm.tradeoff.dominates": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 60}, "ultk.effcomm.tradeoff.non_dominated_2d": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 72}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 132, "bases": 0, "doc": 12}, "ultk.effcomm.tradeoff.pareto_min_distances": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 131}, "ultk.effcomm.tradeoff.interpolate_data": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 86, "bases": 0, "doc": 169}, "ultk.effcomm.tradeoff.tradeoff": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 199, "bases": 0, "doc": 219}, "ultk.effcomm.util": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "ultk.effcomm.util.rows_zero_to_uniform": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 96}, "ultk.effcomm.util.build_utility_matrix": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 99, "bases": 0, "doc": 21}, "ultk.effcomm.util.PRECISION": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "ultk.effcomm.util.marginal": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 52}, "ultk.effcomm.util.conditional": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 56}, "ultk.effcomm.util.joint": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 69}, "ultk.effcomm.util.marginalize": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 68}, "ultk.effcomm.util.bayes": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 37}, "ultk.effcomm.util.xlogx": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 8}, "ultk.effcomm.util.H": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 16}, "ultk.effcomm.util.MI": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 6}, "ultk.effcomm.util.DKL": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 7}, "ultk.effcomm.util.gNID": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 66}, "ultk.language": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 105}, "ultk.language.grammar": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.Rule": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 135}, "ultk.language.grammar.Rule.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 108, "bases": 0, "doc": 3}, "ultk.language.grammar.Rule.lhs": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.Rule.rhs": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.Rule.func": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.Rule.name": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.Rule.weight": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.Rule.is_terminal": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 27}, "ultk.language.grammar.GrammaticalExpression": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 90}, "ultk.language.grammar.GrammaticalExpression.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 107, "bases": 0, "doc": 3}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.GrammaticalExpression.func": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.GrammaticalExpression.children": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 51}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 56, "bases": 0, "doc": 3}, "ultk.language.grammar.GrammaticalExpression.add_child": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "ultk.language.grammar.UniquenessArgs": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 95}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"qualname": 3, "fullname": 6, "annotation": 9, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.UniquenessArgs.key": {"qualname": 2, "fullname": 5, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.UniquenessArgs.compare_func": {"qualname": 3, "fullname": 6, "annotation": 10, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.grammar.Grammar": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 18}, "ultk.language.grammar.Grammar.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "ultk.language.grammar.Grammar.add_rule": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "ultk.language.grammar.Grammar.parse": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 99}, "ultk.language.grammar.Grammar.generate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 10}, "ultk.language.grammar.Grammar.enumerate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 124, "bases": 0, "doc": 165}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 134, "bases": 0, "doc": 12}, "ultk.language.grammar.Grammar.get_unique_expressions": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 194, "bases": 0, "doc": 197}, "ultk.language.grammar.Grammar.get_all_rules": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 9}, "ultk.language.grammar.Grammar.from_yaml": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 97}, "ultk.language.language": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 234}, "ultk.language.language.Expression": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "ultk.language.language.Expression.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "ultk.language.language.Expression.form": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.language.Expression.meaning": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.language.Expression.can_express": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 18}, "ultk.language.language.Expression.to_dict": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "ultk.language.language.Language": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ultk.language.language.Language.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 3}, "ultk.language.language.Language.expressions": {"qualname": 2, "fullname": 5, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.language.Language.universe": {"qualname": 2, "fullname": 5, "annotation": 5, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.language.Language.add_expression": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 14}, "ultk.language.language.Language.pop": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 18}, "ultk.language.language.Language.is_natural": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 11}, "ultk.language.language.Language.degree_property": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 15}, "ultk.language.language.Language.binary_matrix": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 24}, "ultk.language.language.Language.to_dict": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "ultk.language.language.aggregate_expression_complexity": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 128, "bases": 0, "doc": 81}, "ultk.language.sampling": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.sampling.powerset": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 37, "bases": 0, "doc": 108}, "ultk.language.sampling.all_meanings": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 13}, "ultk.language.sampling.all_expressions": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 10}, "ultk.language.sampling.all_languages": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 111, "bases": 0, "doc": 82}, "ultk.language.sampling.upto_comb": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 33}, "ultk.language.sampling.random_languages": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 141, "bases": 0, "doc": 457}, "ultk.language.sampling.generate_languages": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 247, "bases": 0, "doc": 639}, "ultk.language.sampling.sample_lang_size": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 167, "bases": 0, "doc": 135}, "ultk.language.sampling.sample_quasi_natural": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 190, "bases": 0, "doc": 139}, "ultk.language.sampling.rename_id": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 19}, "ultk.language.sampling.enumerate_all_languages": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 254, "bases": 0, "doc": 220}, "ultk.language.sampling.random_combination_vocabulary": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 145, "bases": 0, "doc": 88}, "ultk.language.semantics": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 456}, "ultk.language.semantics.Referent": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "ultk.language.semantics.Referent.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 26}, "ultk.language.semantics.Referent.name": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.semantics.Referent.to_dict": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "ultk.language.semantics.Universe": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "ultk.language.semantics.Universe.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "ultk.language.semantics.Universe.referents": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.semantics.Universe.set_prior": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 3}, "ultk.language.semantics.Universe.prior_numpy": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "ultk.language.semantics.Universe.from_dataframe": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 67}, "ultk.language.semantics.Universe.from_csv": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 28}, "ultk.language.semantics.Meaning": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 60}, "ultk.language.semantics.Meaning.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 149}, "ultk.language.semantics.Meaning.referents": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.semantics.Meaning.universe": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ultk.language.semantics.Meaning.to_dict": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}}, "length": 193, "save": true}, "index": {"qualname": {"root": {"2": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}, "docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 17, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.conditional": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression.children": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 17, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 2}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 9}, "s": {"docs": {"ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}}, "df": 2}, "d": {"docs": {"ultk.language.sampling.rename_id": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.language.language.Language": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.language.Language.expressions": {"tf": 1}, "ultk.language.language.Language.universe": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}}, "df": 13, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 7}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.Listener": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}}, "df": 4}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}}, "df": 3}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule.lhs": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}}, "df": 3, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 6}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.Speaker": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}}, "df": 4}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.semantics.Universe.set_prior": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Rule.weight": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}}, "df": 5}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}}, "df": 3}}}}}}}}, "n": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule.name": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.semantics.Referent.name": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.semantics.Universe.prior_numpy": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Referent.name": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}}, "df": 6, "s": {"docs": {"ultk.language.semantics.Universe.referents": {"tf": 1}, "ultk.language.semantics.Meaning.referents": {"tf": 1}}, "df": 2}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.RemoveExpression": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.rename_id": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Rule.lhs": {"tf": 1}, "ultk.language.grammar.Rule.rhs": {"tf": 1}, "ultk.language.grammar.Rule.func": {"tf": 1}, "ultk.language.grammar.Rule.name": {"tf": 1}, "ultk.language.grammar.Rule.weight": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}}, "df": 10, "s": {"docs": {"ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule.rhs": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 14}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Rule.is_terminal": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Expression.form": {"tf": 1}, "ultk.language.language.Expression.meaning": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 10, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Language.expressions": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}}, "df": 5}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 3}}}}}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}}, "df": 3}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.util.PRECISION": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language.Language.degree_property": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 1}}}, "p": {"docs": {"ultk.language.language.Language.pop": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.util.bayes": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}}, "df": 7}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.children": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}}, "df": 9}}}}}}}}}}}}}}}, "r": {"docs": {"ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 10}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Language.degree_property": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1}}, "df": 1}, "d": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}}}}}}}, "k": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.DKL": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.ib_accuracy": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.AddExpression": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "t": {"docs": {"ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 5}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}}, "df": 2}}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.language.Expression.meaning": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.referents": {"tf": 1}, "ultk.language.semantics.Meaning.universe": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 6, "s": {"docs": {"ultk.language.sampling.all_meanings": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.Mutation": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}}, "df": 3, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {"ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 4, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.marginal": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.marginalize": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {"ultk.effcomm.util.MI": {"tf": 1}}, "df": 1, "n": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 4}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Language.universe": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.referents": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning.universe": {"tf": 1}}, "df": 9}}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"ultk.language.grammar.Rule.func": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 3}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.language.Expression.form": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {"ultk.effcomm.util.H": {"tf": 1}}, "df": 1, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1}}}}}}}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.util.joint": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.util.xlogx": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.UniquenessArgs.key": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 1}}}}}}}, "fullname": {"root": {"2": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}, "docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 17, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.Mutation": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.effcomm.util.PRECISION": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.xlogx": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.MI": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Rule.lhs": {"tf": 1}, "ultk.language.grammar.Rule.rhs": {"tf": 1}, "ultk.language.grammar.Rule.func": {"tf": 1}, "ultk.language.grammar.Rule.name": {"tf": 1}, "ultk.language.grammar.Rule.weight": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.children": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Expression.form": {"tf": 1}, "ultk.language.language.Expression.meaning": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.language.Language.expressions": {"tf": 1}, "ultk.language.language.Language.universe": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Referent.name": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.referents": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.referents": {"tf": 1}, "ultk.language.semantics.Meaning.universe": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 193}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.effcomm.util.PRECISION": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.xlogx": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.MI": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 14, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 4}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Language.universe": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.referents": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning.universe": {"tf": 1}}, "df": 9}}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.Mutation": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.effcomm.util.PRECISION": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.xlogx": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.MI": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 111}}}}}}, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Expression.form": {"tf": 1}, "ultk.language.language.Expression.meaning": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 10, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Language.expressions": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}}, "df": 5}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 3}}}}}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 37}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 5}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.ib_accuracy": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.AddExpression": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "t": {"docs": {"ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 5}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.conditional": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression.children": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 17, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 16}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 5}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 9}, "s": {"docs": {"ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}}, "df": 2}, "d": {"docs": {"ultk.language.sampling.rename_id": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Rule.lhs": {"tf": 1}, "ultk.language.grammar.Rule.rhs": {"tf": 1}, "ultk.language.grammar.Rule.func": {"tf": 1}, "ultk.language.grammar.Rule.name": {"tf": 1}, "ultk.language.grammar.Rule.weight": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.children": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.language": {"tf": 1.4142135623730951}, "ultk.language.language.Expression": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.__init__": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.form": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.meaning": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.can_express": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.to_dict": {"tf": 1.4142135623730951}, "ultk.language.language.Language": {"tf": 1.7320508075688772}, "ultk.language.language.Language.__init__": {"tf": 1.7320508075688772}, "ultk.language.language.Language.expressions": {"tf": 1.7320508075688772}, "ultk.language.language.Language.universe": {"tf": 1.7320508075688772}, "ultk.language.language.Language.add_expression": {"tf": 1.7320508075688772}, "ultk.language.language.Language.pop": {"tf": 1.7320508075688772}, "ultk.language.language.Language.is_natural": {"tf": 1.7320508075688772}, "ultk.language.language.Language.degree_property": {"tf": 1.7320508075688772}, "ultk.language.language.Language.binary_matrix": {"tf": 1.7320508075688772}, "ultk.language.language.Language.to_dict": {"tf": 1.7320508075688772}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Referent.name": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.referents": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.referents": {"tf": 1}, "ultk.language.semantics.Meaning.universe": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 84, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 7}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.Listener": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}}, "df": 4}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}}, "df": 3}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule.lhs": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}}, "df": 3, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 6}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.sampling": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 15}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.Speaker": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}}, "df": 4}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Referent.name": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.referents": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.referents": {"tf": 1}, "ultk.language.semantics.Meaning.universe": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 17}}}}}}}, "t": {"docs": {"ultk.language.semantics.Universe.set_prior": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Rule.weight": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}}, "df": 5}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}}, "df": 3}}}}}}}}, "n": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule.name": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.semantics.Referent.name": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.semantics.Universe.prior_numpy": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Referent.name": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}}, "df": 6, "s": {"docs": {"ultk.language.semantics.Universe.referents": {"tf": 1}, "ultk.language.semantics.Meaning.referents": {"tf": 1}}, "df": 2}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.RemoveExpression": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.rename_id": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Rule.lhs": {"tf": 1}, "ultk.language.grammar.Rule.rhs": {"tf": 1}, "ultk.language.grammar.Rule.func": {"tf": 1}, "ultk.language.grammar.Rule.name": {"tf": 1}, "ultk.language.grammar.Rule.weight": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}}, "df": 10, "s": {"docs": {"ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule.rhs": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 14}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 7}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Rule.is_terminal": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}}, "df": 3}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.util.PRECISION": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language.Language.degree_property": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 1}}}, "p": {"docs": {"ultk.language.language.Language.pop": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.util.bayes": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}}, "df": 7}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Rule.lhs": {"tf": 1}, "ultk.language.grammar.Rule.rhs": {"tf": 1}, "ultk.language.grammar.Rule.func": {"tf": 1}, "ultk.language.grammar.Rule.name": {"tf": 1}, "ultk.language.grammar.Rule.weight": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.children": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.__init__": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.parse": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.generate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}}, "df": 32}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.children": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}}, "df": 9}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Language.degree_property": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1}}, "df": 1}, "d": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}}}}}}}, "k": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.DKL": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.Mutation": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 25}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.language.Expression.meaning": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.referents": {"tf": 1}, "ultk.language.semantics.Meaning.universe": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 6, "s": {"docs": {"ultk.language.sampling.all_meanings": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.Mutation": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}}, "df": 3, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {"ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 4, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.marginal": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.marginalize": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {"ultk.effcomm.util.MI": {"tf": 1}}, "df": 1, "n": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"ultk.language.grammar.Rule.func": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 3}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.language.Expression.form": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {"ultk.effcomm.util.H": {"tf": 1}}, "df": 1, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1}}}}}}}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.util.joint": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.util.xlogx": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.UniquenessArgs.key": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 1}}}}}}}, "annotation": {"root": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}, "ultk.language.language.Language.expressions": {"tf": 1.4142135623730951}, "ultk.language.language.Language.universe": {"tf": 1}}, "df": 12, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}}, "df": 7}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.S": {"tf": 1}, "ultk.effcomm.agent.Listener.R": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1}}, "df": 7}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}, "ultk.language.language.Language.universe": {"tf": 1}}, "df": 3}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Language.universe": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1.4142135623730951}, "ultk.language.language.Language.expressions": {"tf": 1.4142135623730951}, "ultk.language.language.Language.universe": {"tf": 1}}, "df": 5}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1.4142135623730951}}, "df": 3}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language.grammar.UniquenessArgs.key": {"tf": 1}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language.language.Language.expressions": {"tf": 1}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.language.Language.expressions": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.language.Language.universe": {"tf": 1}}, "df": 1}}}}}}}}}}}, "default_value": {"root": {"1": {"6": {"docs": {"ultk.effcomm.util.PRECISION": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.PRECISION": {"tf": 1}}, "df": 1}}, "docs": {}, "df": 0}}, "signature": {"root": {"0": {"5": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}, "docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 10}, "1": {"0": {"0": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}}, "df": 7, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}, "2": {"0": {"0": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"9": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 2}, "ultk.effcomm.analysis.get_dataframe": {"tf": 2.449489742783178}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2}, "ultk.language.grammar.Grammar.parse": {"tf": 2.449489742783178}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}}, "df": 12}, "docs": {}, "df": 0}, "5": {"0": {"0": {"0": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 1}, "docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 5.477225575051661}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 3.4641016151377544}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 6.324555320336759}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 5.656854249492381}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 5.656854249492381}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 5.656854249492381}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 5.656854249492381}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 6.244997998398398}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 4.47213595499958}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 8.717797887081348}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 5.477225575051661}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 4}, "ultk.effcomm.agent.Listener.__init__": {"tf": 5.477225575051661}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 4}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 5.477225575051661}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 5.477225575051661}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 8.246211251235321}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 8.12403840463596}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 7.280109889280518}, "ultk.effcomm.analysis.get_dataframe": {"tf": 10.770329614269007}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 7.3484692283495345}, "ultk.effcomm.analysis.trade_off_means": {"tf": 7.681145747868608}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 7.681145747868608}, "ultk.effcomm.information.information_rate": {"tf": 5.656854249492381}, "ultk.effcomm.information.get_rd_curve": {"tf": 7.810249675906654}, "ultk.effcomm.information.expected_distortion": {"tf": 6.855654600401044}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 5.385164807134504}, "ultk.effcomm.information.blahut_arimoto": {"tf": 9.643650760992955}, "ultk.effcomm.information.get_ib_curve": {"tf": 9.899494936611665}, "ultk.effcomm.information.get_bottleneck": {"tf": 8.94427190999916}, "ultk.effcomm.information.ib_complexity": {"tf": 6.324555320336759}, "ultk.effcomm.information.ib_informativity": {"tf": 7.416198487095663}, "ultk.effcomm.information.ib_comm_cost": {"tf": 7.416198487095663}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 7.483314773547883}, "ultk.effcomm.information.ib_accuracy": {"tf": 6.855654600401044}, "ultk.effcomm.information.ib_distortion": {"tf": 6.855654600401044}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 8.426149773176359}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 7.14142842854285}, "ultk.effcomm.informativity.indicator_utility": {"tf": 7.0710678118654755}, "ultk.effcomm.informativity.informativity": {"tf": 11}, "ultk.effcomm.informativity.communicative_success": {"tf": 10.535653752852738}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 5.830951894845301}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 8.602325267042627}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 5.830951894845301}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 8.602325267042627}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 5.830951894845301}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 8.602325267042627}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 10.908712114635714}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 8.888194417315589}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 7.483314773547883}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 6.782329983125268}, "ultk.effcomm.optimization.sample_parents": {"tf": 9.273618495495704}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 9.797958971132712}, "ultk.effcomm.tradeoff.dominates": {"tf": 5.830951894845301}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 5.830951894845301}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 10.392304845413264}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 6.164414002968976}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 8.246211251235321}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 12.649110640673518}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 4.898979485566356}, "ultk.effcomm.util.build_utility_matrix": {"tf": 9}, "ultk.effcomm.util.marginal": {"tf": 4.242640687119285}, "ultk.effcomm.util.conditional": {"tf": 3.1622776601683795}, "ultk.effcomm.util.joint": {"tf": 3.7416573867739413}, "ultk.effcomm.util.marginalize": {"tf": 3.7416573867739413}, "ultk.effcomm.util.bayes": {"tf": 3.7416573867739413}, "ultk.effcomm.util.xlogx": {"tf": 3.1622776601683795}, "ultk.effcomm.util.H": {"tf": 4.242640687119285}, "ultk.effcomm.util.MI": {"tf": 3.1622776601683795}, "ultk.effcomm.util.DKL": {"tf": 4.69041575982343}, "ultk.effcomm.util.gNID": {"tf": 4.242640687119285}, "ultk.language.grammar.Rule.__init__": {"tf": 9.273618495495704}, "ultk.language.grammar.Rule.is_terminal": {"tf": 3.4641016151377544}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 9.38083151964686}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 3.4641016151377544}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 6.782329983125268}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 4}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 3.4641016151377544}, "ultk.language.grammar.Grammar.__init__": {"tf": 3.4641016151377544}, "ultk.language.grammar.Grammar.add_rule": {"tf": 5.477225575051661}, "ultk.language.grammar.Grammar.parse": {"tf": 9.219544457292887}, "ultk.language.grammar.Grammar.generate": {"tf": 6.164414002968976}, "ultk.language.grammar.Grammar.enumerate": {"tf": 10.099504938362077}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 10.488088481701515}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 12.529964086141668}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 5.385164807134504}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 4.242640687119285}, "ultk.language.language.Expression.__init__": {"tf": 7.483314773547883}, "ultk.language.language.Expression.can_express": {"tf": 5.656854249492381}, "ultk.language.language.Expression.to_dict": {"tf": 3.4641016151377544}, "ultk.language.language.Language.__init__": {"tf": 6.48074069840786}, "ultk.language.language.Language.add_expression": {"tf": 5.477225575051661}, "ultk.language.language.Language.pop": {"tf": 5.656854249492381}, "ultk.language.language.Language.is_natural": {"tf": 3.4641016151377544}, "ultk.language.language.Language.degree_property": {"tf": 6.6332495807108}, "ultk.language.language.Language.binary_matrix": {"tf": 4}, "ultk.language.language.Language.to_dict": {"tf": 4.242640687119285}, "ultk.language.language.aggregate_expression_complexity": {"tf": 10.099504938362077}, "ultk.language.sampling.powerset": {"tf": 5.477225575051661}, "ultk.language.sampling.all_meanings": {"tf": 7.483314773547883}, "ultk.language.sampling.all_expressions": {"tf": 7.810249675906654}, "ultk.language.sampling.all_languages": {"tf": 8.888194417315589}, "ultk.language.sampling.upto_comb": {"tf": 4.898979485566356}, "ultk.language.sampling.random_languages": {"tf": 10.04987562112089}, "ultk.language.sampling.generate_languages": {"tf": 13.892443989449804}, "ultk.language.sampling.sample_lang_size": {"tf": 11.40175425099138}, "ultk.language.sampling.sample_quasi_natural": {"tf": 12.12435565298214}, "ultk.language.sampling.rename_id": {"tf": 4.898979485566356}, "ultk.language.sampling.enumerate_all_languages": {"tf": 14.177446878757825}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 10.816653826391969}, "ultk.language.semantics.Referent.__init__": {"tf": 5.744562646538029}, "ultk.language.semantics.Referent.to_dict": {"tf": 3.4641016151377544}, "ultk.language.semantics.Universe.__init__": {"tf": 7.416198487095663}, "ultk.language.semantics.Universe.set_prior": {"tf": 5.291502622129181}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 4}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 5.477225575051661}, "ultk.language.semantics.Universe.from_csv": {"tf": 4.242640687119285}, "ultk.language.semantics.Meaning.__init__": {"tf": 8.717797887081348}, "ultk.language.semantics.Meaning.to_dict": {"tf": 3.4641016151377544}}, "df": 119, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 5, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 2}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 2}, "ultk.effcomm.agent.Listener.__init__": {"tf": 2}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 2}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 2}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 2}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 2}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 2}, "ultk.effcomm.information.ib_informativity": {"tf": 2}, "ultk.effcomm.information.ib_comm_cost": {"tf": 2}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 2}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 2.449489742783178}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 2}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 3}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 2}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 3}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 2}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 3}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 2.449489742783178}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 2.449489742783178}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 2.6457513110645907}, "ultk.effcomm.optimization.sample_parents": {"tf": 3}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 3}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 3}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1.4142135623730951}, "ultk.language.language.Language.add_expression": {"tf": 1.4142135623730951}, "ultk.language.language.Language.pop": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1.4142135623730951}, "ultk.language.language.aggregate_expression_complexity": {"tf": 2.449489742783178}, "ultk.language.sampling.all_meanings": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_expressions": {"tf": 1.7320508075688772}, "ultk.language.sampling.all_languages": {"tf": 3.4641016151377544}, "ultk.language.sampling.random_languages": {"tf": 3.4641016151377544}, "ultk.language.sampling.generate_languages": {"tf": 2.8284271247461903}, "ultk.language.sampling.sample_lang_size": {"tf": 3}, "ultk.language.sampling.sample_quasi_natural": {"tf": 2.8284271247461903}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2.8284271247461903}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 2.6457513110645907}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 62, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 6}}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.7320508075688772}}, "df": 25, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}}, "df": 2}}}}, "[": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.language.grammar.Rule.__init__": {"tf": 1.4142135623730951}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 7}, "h": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 5}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 2}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.7320508075688772}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.7320508075688772}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_meanings": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_expressions": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.7320508075688772}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 63}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 3}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 2}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.build_utility_matrix": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_meanings": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 4}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}, "k": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}}, "df": 16}}}}}, "e": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 38}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 14}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}, "n": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1}}, "t": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 2}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 2}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 26, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 5}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 4, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 5, "s": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}}, "df": 8}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 2.23606797749979}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 2}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 2}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 25, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_meanings": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_expressions": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}}, "df": 5}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 5, "p": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_rd_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.expected_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1.4142135623730951}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_accuracy": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 2}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.4142135623730951}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}}, "df": 28}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_rd_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.expected_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1.4142135623730951}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_accuracy": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 2}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.4142135623730951}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1}}, "df": 28}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}}, "df": 10}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.7320508075688772}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2.23606797749979}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 26}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "f": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1.7320508075688772}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 7}}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}}, "df": 5}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}}, "df": 2}}}}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"1": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}, "2": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.can_express": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 9, "s": {"docs": {"ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 2}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {"ultk.language.language.Language.add_expression": {"tf": 1}}, "df": 1, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 20, "s": {"docs": {"ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 9}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2, "d": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 6}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 5}}}}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Expression.to_dict": {"tf": 1}, "ultk.language.language.Language.to_dict": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Referent.to_dict": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1}}, "df": 21}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 5, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 8}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 2, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 4}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 4}}}}, "f": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 10}}}, "e": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 6, "[": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.language.Language.__init__": {"tf": 1}}, "df": 12}}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 15}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 6}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}}, "df": 3}}}, "b": {"docs": {}, "df": 0, "c": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 4}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 3}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 4}}, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 12}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 7}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 3}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_ib_curve": {"tf": 2}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.7320508075688772}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 2}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 30}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 4}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 6}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.grammar.Rule.__init__": {"tf": 1.4142135623730951}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 4}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 2}}}}}}, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}, "p": {"1": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1}}, "df": 1}, "2": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1}}, "df": 1}, "docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.util.xlogx": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}}, "df": 6, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.language.semantics.Universe.__init__": {"tf": 1}, "ultk.language.semantics.Universe.set_prior": {"tf": 1}}, "df": 17}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}}, "df": 4}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 4}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 3}}}}}, "x": {"docs": {"ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 4, "y": {"docs": {"ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.MI": {"tf": 1}}, "df": 3}}, "y": {"docs": {"ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}}, "df": 3}, "w": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}, "v": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 12}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1}, "ultk.language.language.Expression.__init__": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}}, "df": 13, "s": {"docs": {"ultk.language.sampling.all_expressions": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 5}, "x": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 8, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "x": {"2": {"7": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}}, "df": 3}, "docs": {}, "df": 0}, "docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1.4142135623730951}}, "df": 8, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.language.grammar.Rule.__init__": {"tf": 1.4142135623730951}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 7}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}}, "df": 5}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.Grammar.add_rule": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}}, "df": 7}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2}}, "df": 5}}}}}}}}}}}}}}}}}}}}}, "y": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}, "q": {"docs": {"ultk.effcomm.util.DKL": {"tf": 1}}, "df": 1}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 4}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.Speaker": {"tf": 1}, "ultk.effcomm.agent.Listener": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 3}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.RemoveExpression": {"tf": 1}, "ultk.effcomm.optimization.AddExpression": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}}, "df": 1}}}}}}}}}}}, "doc": {"root": {"0": {"1": {"1": {"8": {"1": {"7": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"8": {"3": {"0": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"7": {"2": {"0": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"1": {"0": {"2": {"7": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"2": {"9": {"2": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"5": {"4": {"0": {"6": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2.449489742783178}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 2}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 2.449489742783178}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 16, "s": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}, "1": {"0": {"0": {"0": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}}, "df": 1}, "docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1}, "1": {"9": {"3": {"7": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"3": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "docs": {}, "df": 0}, "9": {"docs": {}, "df": 0, "\u2013": {"1": {"2": {"8": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 2}, "1": {"1": {"1": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "docs": {}, "df": 0}, "2": {"6": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}}}, "docs": {}, "df": 0}, "4": {"6": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}}}, "docs": {}, "df": 0}, "5": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {"ultk": {"tf": 1}}, "df": 1}, "2": {"1": {"8": {"8": {"1": {"1": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"8": {"5": {"5": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"1": {"4": {"2": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "8": {"0": {"0": {"5": {"2": {"1": {"1": {"1": {"5": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 2.449489742783178}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 19, "d": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}, "2": {"0": {"1": {"8": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "2": {"1": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "2": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}, "3": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "3": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "7": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.4142135623730951}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 2.23606797749979}, "ultk.language.semantics": {"tf": 1}}, "df": 5, "d": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 5}}, "3": {"1": {"2": {"3": {"4": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"ultk": {"tf": 1}}, "df": 1}, "3": {"9": {"0": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"2": {"3": {"1": {"0": {"1": {"3": {"3": {"5": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"6": {"5": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"docs": {"ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {"ultk": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 2.23606797749979}}, "df": 4}, "4": {"0": {"0": {"0": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}, "6": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {"ultk": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.7320508075688772}}, "df": 2}, "5": {"2": {"5": {"1": {"1": {"8": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"4": {"6": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"ultk": {"tf": 1}}, "df": 1}, "6": {"8": {"1": {"0": {"6": {"8": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1}, "7": {"4": {"6": {"2": {"9": {"6": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"2": {"2": {"2": {"2": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"3": {"7": {"docs": {}, "df": 0, "\u2013": {"7": {"9": {"4": {"2": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"3": {"2": {"0": {"1": {"0": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"5": {"2": {"2": {"8": {"0": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"3": {"1": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"ultk": {"tf": 14.317821063276353}, "ultk.effcomm": {"tf": 6.928203230275509}, "ultk.effcomm.agent": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 4.69041575982343}, "ultk.effcomm.agent.CommunicativeAgent.language": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.shape": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.weights": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 5}, "ultk.effcomm.agent.CommunicativeAgent.referent_to_index": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.index_to_referent": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.expression_to_index": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.index_to_expression": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 4.47213595499958}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 4.69041575982343}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 6.557438524302}, "ultk.effcomm.agent.Speaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 4.69041575982343}, "ultk.effcomm.agent.Speaker.S": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 2.6457513110645907}, "ultk.effcomm.agent.Listener": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Listener.__init__": {"tf": 4.69041575982343}, "ultk.effcomm.agent.Listener.R": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 2}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 4.69041575982343}, "ultk.effcomm.agent.LiteralSpeaker.S": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 4.69041575982343}, "ultk.effcomm.agent.LiteralListener.R": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 6.164414002968976}, "ultk.effcomm.agent.PragmaticSpeaker.S": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 5.5677643628300215}, "ultk.effcomm.agent.PragmaticListener.R": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.BayesianListener": {"tf": 4.898979485566356}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 4.69041575982343}, "ultk.effcomm.analysis": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.get_dataframe": {"tf": 6.855654600401044}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 6.928203230275509}, "ultk.effcomm.analysis.trade_off_means": {"tf": 12.68857754044952}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 9.746794344808963}, "ultk.effcomm.information": {"tf": 1.7320508075688772}, "ultk.effcomm.information.information_rate": {"tf": 2}, "ultk.effcomm.information.get_rd_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.expected_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 6.6332495807108}, "ultk.effcomm.information.blahut_arimoto": {"tf": 7.874007874011811}, "ultk.effcomm.information.get_ib_curve": {"tf": 8.12403840463596}, "ultk.effcomm.information.get_bottleneck": {"tf": 8.54400374531753}, "ultk.effcomm.information.ib_complexity": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_informativity": {"tf": 5.916079783099616}, "ultk.effcomm.information.ib_comm_cost": {"tf": 6}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 6.164414002968976}, "ultk.effcomm.information.ib_accuracy": {"tf": 7.280109889280518}, "ultk.effcomm.information.ib_distortion": {"tf": 7.54983443527075}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 6.6332495807108}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 6.782329983125268}, "ultk.effcomm.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.informativity": {"tf": 7.681145747868608}, "ultk.effcomm.informativity.communicative_success": {"tf": 6.782329983125268}, "ultk.effcomm.optimization": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.Mutation": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.RemoveExpression": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.AddExpression": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 7}, "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.generations": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 6.244997998398398}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 5.196152422706632}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 5.0990195135927845}, "ultk.effcomm.optimization.sample_parents": {"tf": 6.244997998398398}, "ultk.effcomm.sampling": {"tf": 1.7320508075688772}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 6.48074069840786}, "ultk.effcomm.tradeoff": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.dominates": {"tf": 5}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 4.795831523312719}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 5.5677643628300215}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 6.4031242374328485}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 7}, "ultk.effcomm.util": {"tf": 1.7320508075688772}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 4.358898943540674}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1.7320508075688772}, "ultk.effcomm.util.PRECISION": {"tf": 1.7320508075688772}, "ultk.effcomm.util.marginal": {"tf": 5.0990195135927845}, "ultk.effcomm.util.conditional": {"tf": 5.385164807134504}, "ultk.effcomm.util.joint": {"tf": 5.916079783099616}, "ultk.effcomm.util.marginalize": {"tf": 5.744562646538029}, "ultk.effcomm.util.bayes": {"tf": 4.123105625617661}, "ultk.effcomm.util.xlogx": {"tf": 1.7320508075688772}, "ultk.effcomm.util.H": {"tf": 1.7320508075688772}, "ultk.effcomm.util.MI": {"tf": 1.4142135623730951}, "ultk.effcomm.util.DKL": {"tf": 1.4142135623730951}, "ultk.effcomm.util.gNID": {"tf": 5.744562646538029}, "ultk.language": {"tf": 4}, "ultk.language.grammar": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule": {"tf": 5.385164807134504}, "ultk.language.grammar.Rule.__init__": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.lhs": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.rhs": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.func": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.name": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.weight": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression": {"tf": 5}, "ultk.language.grammar.GrammaticalExpression.__init__": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.rule_name": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.func": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.children": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 2.8284271247461903}, "ultk.language.grammar.GrammaticalExpression.evaluate": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.add_child": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.to_dict": {"tf": 1.7320508075688772}, "ultk.language.grammar.UniquenessArgs": {"tf": 5}, "ultk.language.grammar.UniquenessArgs.unique_expressions": {"tf": 1.7320508075688772}, "ultk.language.grammar.UniquenessArgs.key": {"tf": 1.7320508075688772}, "ultk.language.grammar.UniquenessArgs.compare_func": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.__init__": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.add_rule": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.parse": {"tf": 4.58257569495584}, "ultk.language.grammar.Grammar.generate": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.enumerate": {"tf": 5.744562646538029}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 5.830951894845301}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 5.291502622129181}, "ultk.language.language": {"tf": 11.661903789690601}, "ultk.language.language.Expression": {"tf": 1.7320508075688772}, "ultk.language.language.Expression.__init__": {"tf": 1.7320508075688772}, "ultk.language.language.Expression.form": {"tf": 1.7320508075688772}, "ultk.language.language.Expression.meaning": {"tf": 1.7320508075688772}, "ultk.language.language.Expression.can_express": {"tf": 1.7320508075688772}, "ultk.language.language.Expression.to_dict": {"tf": 1.7320508075688772}, "ultk.language.language.Language": {"tf": 1.7320508075688772}, "ultk.language.language.Language.__init__": {"tf": 1.7320508075688772}, "ultk.language.language.Language.expressions": {"tf": 1.7320508075688772}, "ultk.language.language.Language.universe": {"tf": 1.7320508075688772}, "ultk.language.language.Language.add_expression": {"tf": 1.7320508075688772}, "ultk.language.language.Language.pop": {"tf": 1.7320508075688772}, "ultk.language.language.Language.is_natural": {"tf": 1.7320508075688772}, "ultk.language.language.Language.degree_property": {"tf": 1.7320508075688772}, "ultk.language.language.Language.binary_matrix": {"tf": 2.6457513110645907}, "ultk.language.language.Language.to_dict": {"tf": 1.7320508075688772}, "ultk.language.language.aggregate_expression_complexity": {"tf": 5.656854249492381}, "ultk.language.sampling": {"tf": 1.7320508075688772}, "ultk.language.sampling.powerset": {"tf": 5.916079783099616}, "ultk.language.sampling.all_meanings": {"tf": 1.7320508075688772}, "ultk.language.sampling.all_expressions": {"tf": 1.7320508075688772}, "ultk.language.sampling.all_languages": {"tf": 5.5677643628300215}, "ultk.language.sampling.upto_comb": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 14.352700094407323}, "ultk.language.sampling.generate_languages": {"tf": 15.394804318340652}, "ultk.language.sampling.sample_lang_size": {"tf": 6.855654600401044}, "ultk.language.sampling.sample_quasi_natural": {"tf": 6.782329983125268}, "ultk.language.sampling.rename_id": {"tf": 2.23606797749979}, "ultk.language.sampling.enumerate_all_languages": {"tf": 8.06225774829855}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 6.244997998398398}, "ultk.language.semantics": {"tf": 15.556349186104045}, "ultk.language.semantics.Referent": {"tf": 1.7320508075688772}, "ultk.language.semantics.Referent.__init__": {"tf": 3.605551275463989}, "ultk.language.semantics.Referent.name": {"tf": 1.7320508075688772}, "ultk.language.semantics.Referent.to_dict": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.__init__": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.referents": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.set_prior": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.prior_numpy": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 3.872983346207417}, "ultk.language.semantics.Universe.from_csv": {"tf": 2.23606797749979}, "ultk.language.semantics.Meaning": {"tf": 2.449489742783178}, "ultk.language.semantics.Meaning.__init__": {"tf": 5.385164807134504}, "ultk.language.semantics.Meaning.referents": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.universe": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.to_dict": {"tf": 1.7320508075688772}}, "df": 193, "t": {"docs": {"ultk": {"tf": 2}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 5, "h": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 4.358898943540674}, "ultk.effcomm": {"tf": 4.358898943540674}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 2.6457513110645907}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 2.449489742783178}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 3.4641016151377544}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 2.6457513110645907}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 2.8284271247461903}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.get_dataframe": {"tf": 2.6457513110645907}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 2.8284271247461903}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 3.1622776601683795}, "ultk.effcomm.information.information_rate": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 3.1622776601683795}, "ultk.effcomm.information.blahut_arimoto": {"tf": 4.242640687119285}, "ultk.effcomm.information.get_ib_curve": {"tf": 3.605551275463989}, "ultk.effcomm.information.get_bottleneck": {"tf": 4}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 2.23606797749979}, "ultk.effcomm.information.ib_comm_cost": {"tf": 2}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_accuracy": {"tf": 2}, "ultk.effcomm.information.ib_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 3.872983346207417}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 3.4641016151377544}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 2.8284271247461903}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 2}, "ultk.effcomm.optimization.sample_parents": {"tf": 2.6457513110645907}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 3.1622776601683795}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 2.8284271247461903}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 4}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.4142135623730951}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.language": {"tf": 2}, "ultk.language.grammar.Rule": {"tf": 2.23606797749979}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 2.23606797749979}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.parse": {"tf": 2.449489742783178}, "ultk.language.grammar.Grammar.enumerate": {"tf": 2.449489742783178}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 3.3166247903554}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}, "ultk.language.language": {"tf": 1.7320508075688772}, "ultk.language.language.Expression.can_express": {"tf": 1.4142135623730951}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1.4142135623730951}, "ultk.language.language.aggregate_expression_complexity": {"tf": 2.23606797749979}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 5.0990195135927845}, "ultk.language.sampling.sample_lang_size": {"tf": 2.449489742783178}, "ultk.language.sampling.sample_quasi_natural": {"tf": 2.449489742783178}, "ultk.language.sampling.enumerate_all_languages": {"tf": 3.7416573867739413}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 2.449489742783178}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.__init__": {"tf": 3.3166247903554}}, "df": 94, "y": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 6}, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 7}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 4}}, "m": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.language.language": {"tf": 1}}, "df": 2}, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 3}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 2}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 2}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 2}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 28}, "n": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 2}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1.7320508075688772}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 2}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 27}, "n": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1, "t": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {"ultk": {"tf": 3.3166247903554}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 2}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.Listener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.get_dataframe": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 2}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 2.6457513110645907}, "ultk.effcomm.information.get_bottleneck": {"tf": 3}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.informativity": {"tf": 2}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2.6457513110645907}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 2}, "ultk.effcomm.optimization.sample_parents": {"tf": 2.23606797749979}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 2.23606797749979}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language": {"tf": 1.4142135623730951}, "ultk.language.grammar.Rule": {"tf": 2.449489742783178}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 2.6457513110645907}, "ultk.language.grammar.Grammar.enumerate": {"tf": 3.4641016151377544}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2.23606797749979}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 2}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 3}, "ultk.language.sampling.generate_languages": {"tf": 3.4641016151377544}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2.8284271247461903}, "ultk.language.semantics": {"tf": 2}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.7320508075688772}}, "df": 66, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 2.23606797749979}}, "df": 2}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.7320508075688772}}, "df": 4}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Rule.is_terminal": {"tf": 1}}, "df": 1}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "{": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 6}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 9, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 7, "s": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 3, "s": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_accuracy": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 2}}, "df": 6, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.7320508075688772}}, "df": 4}}}}}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 2}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {"ultk.language": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.semantics": {"tf": 2}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.__init__": {"tf": 2.23606797749979}}, "df": 10}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 2}, "ultk.language.grammar.Grammar.enumerate": {"tf": 2.23606797749979}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 2}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk": {"tf": 3}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.language": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 7}}}, "p": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 2}}, "df": 9, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 1, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.7320508075688772}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}}, "df": 6}, "s": {"docs": {"ultk.language.sampling.rename_id": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.language.language": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 14, "d": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 2}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 18}, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 8}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 7}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 5}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 4}}}}}}}}}}, "l": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}}, "df": 3, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.language": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 2.23606797749979}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}}, "df": 6, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 2.8284271247461903}, "ultk.effcomm": {"tf": 2.449489742783178}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 2}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1.7320508075688772}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 2.6457513110645907}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 2}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language": {"tf": 2.23606797749979}, "ultk.language.language": {"tf": 2.6457513110645907}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 2}, "ultk.language.sampling.all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 2.449489742783178}, "ultk.language.sampling.generate_languages": {"tf": 2.449489742783178}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 2.23606797749979}, "ultk.language.semantics.Referent": {"tf": 1}}, "df": 47, "s": {"docs": {"ultk": {"tf": 2.449489742783178}, "ultk.effcomm": {"tf": 3}, "ultk.effcomm.analysis.get_dataframe": {"tf": 2}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 2.449489742783178}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.sample_parents": {"tf": 2.8284271247461903}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2.6457513110645907}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.4142135623730951}, "ultk.language": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 3.605551275463989}, "ultk.language.sampling.generate_languages": {"tf": 4}, "ultk.language.sampling.sample_lang_size": {"tf": 2.6457513110645907}, "ultk.language.sampling.sample_quasi_natural": {"tf": 2.449489742783178}, "ultk.language.sampling.enumerate_all_languages": {"tf": 3.3166247903554}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 30, "e": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.language": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 4}}}}}}, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 2}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "k": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2.23606797749979}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 30, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.language.semantics": {"tf": 1}}, "df": 14, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}}, "df": 2}}}}}, "[": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.language.semantics": {"tf": 1}}, "df": 9, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 3}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}, "w": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "g": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.util.xlogx": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}}, "df": 3}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ultk": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 8}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 7}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.7320508075688772}, "ultk.language": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 2}}, "f": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}}, "df": 1}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "t": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 2}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}, "h": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}}, "df": 4}}}, "i": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 2}, "ultk.effcomm.tradeoff.dominates": {"tf": 1.7320508075688772}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 2}}, "df": 13, "n": {"docs": {"ultk": {"tf": 3.3166247903554}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.agent": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 2}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 2}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2.23606797749979}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.semantics": {"tf": 2}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 39, "t": {"docs": {"ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 2, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 6}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 3}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 2}}, "df": 1, "d": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 2}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 9}}, "f": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 2}, "ultk.effcomm.information.ib_informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2.23606797749979}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.util": {"tf": 1}}, "df": 12}}}, "e": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 3, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.util.MI": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "x": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 2}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.7320508075688772}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}}, "df": 11, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 4, "s": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {"ultk": {"tf": 3}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 2}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 2.23606797749979}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2.449489742783178}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 2}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 2}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.7320508075688772}}, "df": 40, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 15, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}}, "df": 5}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1.4142135623730951}}, "df": 2}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 2}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1.7320508075688772}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 17, "f": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm": {"tf": 1.7320508075688772}}, "df": 1}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 2, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.language": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"6": {"2": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 2.6457513110645907}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}}, "df": 5, "e": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 1}}, "b": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 8}, "[": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}}, "df": 1}, "u": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_distortion": {"tf": 1}}, "df": 5}}}, "m": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "u": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}}, "df": 4}, "w": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}}, "df": 2}}}, "x": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.util.MI": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}}}, "|": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 2}}, "i": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}}, "a": {"docs": {"ultk": {"tf": 3.3166247903554}, "ultk.effcomm": {"tf": 3.3166247903554}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 2}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 2.6457513110645907}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Listener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 2}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.get_dataframe": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 2.8284271247461903}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 3}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 2.6457513110645907}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 2}, "ultk.effcomm.informativity.informativity": {"tf": 3.605551275463989}, "ultk.effcomm.informativity.communicative_success": {"tf": 2.449489742783178}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 2.449489742783178}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.7320508075688772}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2.6457513110645907}, "ultk.effcomm.tradeoff": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2.449489742783178}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 2.6457513110645907}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1.7320508075688772}, "ultk.effcomm.util.marginalize": {"tf": 1.7320508075688772}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.language": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule": {"tf": 2.8284271247461903}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 2.6457513110645907}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 2}, "ultk.language.grammar.Grammar": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.parse": {"tf": 2.449489742783178}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 2.8284271247461903}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2.6457513110645907}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.7320508075688772}, "ultk.language.language": {"tf": 2.8284271247461903}, "ultk.language.language.Expression": {"tf": 1.4142135623730951}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1.4142135623730951}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 2}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 2.6457513110645907}, "ultk.language.sampling.generate_languages": {"tf": 2.8284271247461903}, "ultk.language.sampling.sample_lang_size": {"tf": 2}, "ultk.language.sampling.sample_quasi_natural": {"tf": 2}, "ultk.language.sampling.rename_id": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.7320508075688772}, "ultk.language.semantics": {"tf": 3.872983346207417}, "ultk.language.semantics.Referent": {"tf": 1.4142135623730951}, "ultk.language.semantics.Referent.__init__": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 2.23606797749979}, "ultk.language.semantics.Universe.from_csv": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning": {"tf": 2.23606797749979}, "ultk.language.semantics.Meaning.__init__": {"tf": 3}}, "df": 100, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}, "n": {"docs": {"ultk": {"tf": 2.23606797749979}, "ultk.effcomm": {"tf": 2}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 36, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 2.23606797749979}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.7320508075688772}}, "df": 4}}}, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.analysis": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {"ultk": {"tf": 4.242640687119285}, "ultk.effcomm": {"tf": 2.449489742783178}, "ultk.effcomm.agent": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 2}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2}, "ultk.effcomm.util": {"tf": 1}, "ultk.language": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}, "ultk.language.language": {"tf": 1}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}, "ultk.language.semantics": {"tf": 2}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.7320508075688772}}, "df": 54, "/": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 7, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 6}}}}}}}, "t": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "k": {"docs": {"ultk.effcomm": {"tf": 3}}, "df": 1}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 9}}}}}}}, "l": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 2}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}}, "df": 23, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 4}}}}}, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 17, "a": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 64}}}}}}, "s": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 2}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 2}, "ultk.effcomm.information.ib_distortion": {"tf": 2}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 2}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1.7320508075688772}, "ultk.effcomm.util.marginalize": {"tf": 1.7320508075688772}, "ultk.effcomm.util.bayes": {"tf": 1}}, "df": 18, "s": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 2.23606797749979}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.Listener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 2.23606797749979}}, "df": 13, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}}, "df": 5}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 2}}, "df": 25, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 1, "d": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 2}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}, "d": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.4142135623730951}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.language": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"ultk": {"tf": 2}}, "df": 1}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language": {"tf": 1}}, "df": 5, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}}, "df": 4}}}}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.language": {"tf": 1}}, "df": 2}}}}}}}}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 3}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 7}}}}, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}}, "df": 2}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1.4142135623730951}}, "df": 2}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}}, "df": 1}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}}, "df": 3, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 2}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 26, "o": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 9, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Referent": {"tf": 1}}, "df": 8, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 4}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 6}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 4}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 3, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {"ultk.effcomm.agent": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 2.8284271247461903}, "ultk.language": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 6, "s": {"docs": {"ultk.language.sampling.powerset": {"tf": 2}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 4}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 2.23606797749979}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 8, "s": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 3, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1.4142135623730951}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1}}, "df": 12, "s": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 2}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.random_languages": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 2.449489742783178}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 7}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk": {"tf": 2.23606797749979}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 5, "s": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 4}}}}}}}, "t": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 15, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}}, "df": 2}}, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 7, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}, "n": {"docs": {"ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 2}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 8, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}, "d": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 15, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2.449489742783178}}, "df": 3}, "/": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 4}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}}, "df": 6}, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 3}}, "c": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 2}}, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 7}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 2.6457513110645907}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 7}}}, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 3.3166247903554}, "ultk.language.sampling.generate_languages": {"tf": 3.1622776601683795}, "ultk.language.sampling.sample_lang_size": {"tf": 2}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.7320508075688772}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2.23606797749979}}, "df": 9, "s": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}}, "df": 2}, "d": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 2.23606797749979}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}}, "df": 5}}}}, "e": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 6}}, "y": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 6}}, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {"ultk": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 4, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 3}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.language.sampling.powerset": {"tf": 2}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 4.123105625617661}, "ultk.language.sampling.generate_languages": {"tf": 3.3166247903554}, "ultk.language.sampling.sample_lang_size": {"tf": 2}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 13, "s": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3, "d": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}}, "z": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "k": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 7}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 2.23606797749979}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_accuracy": {"tf": 2}, "ultk.effcomm.information.ib_distortion": {"tf": 2}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 2}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1.4142135623730951}, "ultk.effcomm.util.marginalize": {"tf": 1.7320508075688772}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1.7320508075688772}, "ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 19}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}}, "df": 6}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.language": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 1}}}}}}, "e": {"1": {"3": {"1": {"4": {"2": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 2.449489742783178}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 2}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 33, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 3}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 9}, "c": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 2.8284271247461903}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}}}, "x": {"docs": {}, "df": 0, "p": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 2}}, "df": 2, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2.23606797749979}, "ultk.language.language": {"tf": 1.7320508075688772}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Language": {"tf": 1}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1.7320508075688772}}, "df": 22, "s": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 2}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.enumerate": {"tf": 2}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 2.6457513110645907}, "ultk.language.sampling.random_languages": {"tf": 3.3166247903554}, "ultk.language.sampling.generate_languages": {"tf": 3.4641016151377544}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.7320508075688772}}, "df": 37}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 4}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 4}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 3, "s": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 5}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 3}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.4142135623730951}}, "df": 20}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1.4142135623730951}}, "df": 8, "s": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 2}}, "s": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 1}}}}}}}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 5}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm.agent": {"tf": 1}}, "df": 1}}, "|": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}}, "df": 1}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 3}}, "s": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 4}}}}, "[": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.ib_distortion": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.powerset": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "c": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 2}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 7, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 2.6457513110645907}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 9}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 2}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 2}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 23, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 8, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}}}}}}}}}, "p": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 2.23606797749979}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2}, "ultk.effcomm.util": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 2}}, "df": 15}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.util": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 4}}}, "e": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.xlogx": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.MI": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 22, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}, "d": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 4}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}}}, "/": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {"ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 2}}}}}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 4}}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 9, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.language": {"tf": 1}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {"ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.language": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 2.23606797749979}, "ultk.language": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.language.Language": {"tf": 1}}, "df": 6}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 10}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}}, "df": 7}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.Rule": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}, "t": {"docs": {"ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 2}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 5}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 10}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {"ultk.language.grammar.Grammar": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 2}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 2.6457513110645907}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2}}, "df": 9}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 2}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.7320508075688772}}, "df": 3}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 4}}, "a": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 7, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.language": {"tf": 1.7320508075688772}, "ultk.language.language": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 6}}, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}, "h": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 3}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"1": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}, "docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}, "i": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 29, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}, "ultk.language": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 2}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}}, "df": 7}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}, "f": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1.4142135623730951}}, "df": 1}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"ultk": {"tf": 4.123105625617661}, "ultk.effcomm": {"tf": 4.242640687119285}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 2.8284271247461903}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 2.6457513110645907}, "ultk.effcomm.information.blahut_arimoto": {"tf": 3.4641016151377544}, "ultk.effcomm.information.get_ib_curve": {"tf": 3.4641016151377544}, "ultk.effcomm.information.get_bottleneck": {"tf": 3.605551275463989}, "ultk.effcomm.information.ib_complexity": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 2}, "ultk.effcomm.information.ib_accuracy": {"tf": 2.449489742783178}, "ultk.effcomm.information.ib_distortion": {"tf": 2}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 2}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2.6457513110645907}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 3.1622776601683795}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 2.6457513110645907}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.7320508075688772}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2.8284271247461903}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 2}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 2.23606797749979}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 2.449489742783178}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 3.1622776601683795}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.7320508075688772}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1.4142135623730951}, "ultk.effcomm.util.marginalize": {"tf": 1.7320508075688772}, "ultk.effcomm.util.bayes": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1.7320508075688772}, "ultk.language": {"tf": 2}, "ultk.language.grammar.Rule": {"tf": 2.449489742783178}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1.7320508075688772}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1.7320508075688772}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 2.449489742783178}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2.23606797749979}, "ultk.language.language.Language.add_expression": {"tf": 1}, "ultk.language.language.Language.pop": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling.powerset": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 2.449489742783178}, "ultk.language.sampling.upto_comb": {"tf": 1.7320508075688772}, "ultk.language.sampling.random_languages": {"tf": 2.6457513110645907}, "ultk.language.sampling.generate_languages": {"tf": 4.123105625617661}, "ultk.language.sampling.sample_lang_size": {"tf": 3}, "ultk.language.sampling.sample_quasi_natural": {"tf": 2.6457513110645907}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 3.605551275463989}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.7320508075688772}, "ultk.language.semantics": {"tf": 2.449489742783178}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 2}, "ultk.language.semantics.Meaning": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 2.8284271247461903}}, "df": 89, "f": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 9, "s": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}}, "df": 5}}}}}, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1, "l": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 5}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 8}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 5}}, "e": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 8, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3}}}, "r": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.language": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 31, "g": {"docs": {}, "df": 0, "/": {"1": {"0": {"docs": {"ultk": {"tf": 2.449489742783178}}, "df": 1}, "docs": {}, "df": 0}, "3": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "/": {"1": {"0": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 3}}}}, "r": {"docs": {"ultk.language.grammar.Rule.is_terminal": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.language.Language": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 7}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.7320508075688772}}, "df": 19}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language": {"tf": 1}}, "df": 4, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"ultk": {"tf": 2.449489742783178}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1.4142135623730951}}, "df": 3, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 2}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2.449489742783178}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 3}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 12, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {"ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.parse": {"tf": 2.6457513110645907}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.4142135623730951}}, "df": 16, "s": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 3}, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.7320508075688772}, "ultk.language.language.Language.binary_matrix": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1.4142135623730951}}, "df": 8, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2}}}}}}}}}}, "s": {"docs": {"ultk.language.semantics": {"tf": 1.7320508075688772}}, "df": 1}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.sampling.sample_lang_size": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}}, "df": 12}, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1.7320508075688772}, "ultk.effcomm.util.marginalize": {"tf": 1.7320508075688772}, "ultk.effcomm.util.bayes": {"tf": 1}}, "df": 6}}}}, "o": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 6, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}}, "df": 1, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 4}}}}}}}}, "n": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}}, "df": 7, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 6}, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 10, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 4}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 3}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 3}}}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 7}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 13, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"ultk": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {"ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 4}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 3}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 2}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 4}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 2}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 2}, "ultk.effcomm.information.ib_distortion": {"tf": 2}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.sampling.sample_lang_size": {"tf": 1.7320508075688772}, "ultk.language.semantics.Referent.__init__": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 30}}}, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}}, "df": 5}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 2}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.powerset": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "f": {"1": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}, "2": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.semantics": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Referent.__init__": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 12, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.language": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.semantics": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 2.23606797749979}}, "df": 9}}}}, "s": {"docs": {"ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 1}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 12, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.language.Language.pop": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 40}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 6}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1, "d": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.language.Language.pop": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 7}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.blahut_arimoto": {"tf": 2.23606797749979}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 9}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 2.449489742783178}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.4142135623730951}}, "df": 7}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 5, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Rule": {"tf": 2}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {"ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 5}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1}}, "w": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 6, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}, "s": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}}, "df": 4}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 2.23606797749979}, "ultk.effcomm.information.ib_accuracy": {"tf": 2}, "ultk.effcomm.information.ib_distortion": {"tf": 2}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 7, "h": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2.23606797749979}, "ultk.language.language.Language.binary_matrix": {"tf": 1.4142135623730951}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 29}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 6}}, "n": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 7}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 14}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.language.Language.degree_property": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3}}, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}}, "df": 2}, "y": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 3, "s": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 9, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 8}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 2}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 2}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 28, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 4}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 16}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 4}}}}}, "t": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"ultk.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.util.gNID": {"tf": 1.4142135623730951}}, "df": 4}, "|": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}}, "df": 5}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}}, "df": 1}}}}, "|": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}}, "df": 2}}}, "h": {"docs": {"ultk.effcomm.util.H": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 7}}, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}}, "df": 7}, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 2}, "ultk.effcomm.information.blahut_arimoto": {"tf": 2}, "ultk.effcomm.information.ib_distortion": {"tf": 1.4142135623730951}}, "df": 3, "{": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 2.23606797749979}}, "df": 4, "}": {"docs": {}, "df": 0, "|": {"docs": {}, "df": 0, "i": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}}, "df": 2, "}": {"docs": {}, "df": 0, "|": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 2}}}}}, "[": {"docs": {}, "df": 0, "j": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {"ultk": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.util": {"tf": 1}}, "df": 4}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {"ultk": {"tf": 2.449489742783178}}, "df": 1}, "c": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "#": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2}, "ultk.language": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 12, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language": {"tf": 1}, "ultk.language.language.Language.is_natural": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1.4142135623730951}, "ultk.effcomm.util.DKL": {"tf": 1}}, "df": 5, "o": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 2}}}}}}}}}}, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}}, "df": 1}, "d": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 3, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.blahut_arimoto": {"tf": 2.23606797749979}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1.4142135623730951}}, "df": 9}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1.4142135623730951}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.7320508075688772}}, "df": 20, "s": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 8}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.util.DKL": {"tf": 1}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 15, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 5}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 2}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 3}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.language": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 10, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 4}, "s": {"docs": {"ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.language": {"tf": 1}}, "df": 3}}}, "d": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.util.marginal": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 11, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 2}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 5}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.PragmaticListener": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1.4142135623730951}}, "df": 5}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.informativity.indicator_utility": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 6, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1.7320508075688772}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 7}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 2}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 4}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}, "f": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 2}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}}, "df": 2}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}}}}, "[": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 2}}}, "p": {"1": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 2}}, "df": 2, "[": {"docs": {}, "df": 0, "i": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}}, "df": 1}}}, "2": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 2}}, "df": 2, "[": {"docs": {}, "df": 0, "i": {"docs": {"ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}}, "df": 1}}}, "docs": {"ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener": {"tf": 2.23606797749979}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.expected_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 2}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 2}, "ultk.effcomm.information.ib_distortion": {"tf": 2}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.communicative_success": {"tf": 2.8284271247461903}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1.4142135623730951}, "ultk.effcomm.util.conditional": {"tf": 1.4142135623730951}, "ultk.effcomm.util.joint": {"tf": 1.7320508075688772}, "ultk.effcomm.util.marginalize": {"tf": 1.7320508075688772}, "ultk.effcomm.util.bayes": {"tf": 1.7320508075688772}, "ultk.effcomm.util.xlogx": {"tf": 1}, "ultk.effcomm.util.H": {"tf": 1.4142135623730951}}, "df": 24, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 2}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.semantics": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 15}}}, "o": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm": {"tf": 2}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1}}, "df": 5}}}, "y": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.7320508075688772}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}}, "df": 5}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.7320508075688772}}, "df": 13}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener": {"tf": 2}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}}, "df": 16}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_means": {"tf": 2.6457513110645907}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 3.1622776601683795}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 6}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm": {"tf": 2}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe": {"tf": 1}}, "df": 12}, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 8}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 4}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}}, "df": 5, "s": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 2}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 2.449489742783178}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 8}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.sampling.powerset": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_optimal_languages": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 2.23606797749979}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.7320508075688772}}, "df": 9}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 4}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 4}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}}, "df": 3}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {"ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1.4142135623730951}, "ultk.effcomm.util.bayes": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}, "#": {"docs": {}, "df": 0, "l": {"4": {"0": {"docs": {"ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1, "d": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 2}}, "df": 1}}}}}}, "d": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1}}, "df": 1}, "x": {"docs": {"ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}}, "df": 4, "y": {"docs": {"ultk.effcomm.util.marginal": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}}, "df": 3}}, "w": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}, "v": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 2.449489742783178}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 2.449489742783178}, "ultk.effcomm.agent.BayesianListener": {"tf": 2.23606797749979}, "ultk.effcomm.information.ib_accuracy": {"tf": 2.8284271247461903}, "ultk.effcomm.information.ib_distortion": {"tf": 3.4641016151377544}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 2.23606797749979}, "ultk.effcomm.informativity.informativity": {"tf": 2.6457513110645907}, "ultk.effcomm.informativity.communicative_success": {"tf": 3.605551275463989}}, "df": 11, "i": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 5}}, "a": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1, "l": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.language.Language": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}}, "df": 1}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.language.sampling.powerset": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 2.449489742783178}}, "df": 8, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 6}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.language": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {"ultk.language.language": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}}, "df": 1}}, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1.4142135623730951}}, "df": 3, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}}, "df": 6}}}, "x": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}}, "df": 11}}}, "[": {"docs": {}, "df": 0, "i": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}, "h": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "{": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "}": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "y": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}, "ultk.language.semantics": {"tf": 1}}, "df": 6}, "d": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 6}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 6}}}, "e": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 10, "s": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}}, "df": 3}, "d": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 4}}}}}, "n": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_accuracy": {"tf": 1}, "ultk.effcomm.information.ib_distortion": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language": {"tf": 2.23606797749979}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.language.Expression.can_express": {"tf": 1}, "ultk.language.semantics": {"tf": 3}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1.7320508075688772}, "ultk.language.semantics.Meaning.__init__": {"tf": 2}}, "df": 29, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 2.23606797749979}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 2}, "ultk.effcomm.information.get_bottleneck": {"tf": 2.23606797749979}, "ultk.effcomm.information.ib_informativity": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_comm_cost": {"tf": 2}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1.7320508075688772}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 2.23606797749979}, "ultk.effcomm.informativity.informativity": {"tf": 2.23606797749979}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1.7320508075688772}, "ultk.language": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 27}}}}, "s": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 3.872983346207417}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}}, "df": 3}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}}, "df": 5, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar": {"tf": 1}}, "df": 3}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 12}, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.language": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.language": {"tf": 1}}, "df": 3}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}, "|": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}}, "df": 1}, "w": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.Mutation.precondition": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.precondition": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 2}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {"ultk.effcomm.optimization.Mutation.mutate": {"tf": 1}, "ultk.effcomm.optimization.RemoveExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.AddExpression.mutate": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 4, "d": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.mutate": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.util.MI": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2}}}}, "k": {"docs": {"ultk.language.sampling.upto_comb": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2.23606797749979}}, "df": 4, "s": {"docs": {"ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 4}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 4}}}, "l": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.util.DKL": {"tf": 1}}, "df": 2, "}": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "m": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1}, "p": {"docs": {}, "df": 0, "~": {"docs": {}, "df": 0, "|": {"docs": {}, "df": 0, "|": {"docs": {}, "df": 0, "~": {"docs": {}, "df": 0, "q": {"docs": {"ultk.effcomm.util.DKL": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}, "ultk.language": {"tf": 1}}, "df": 2}}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {"ultk.language.language": {"tf": 2.449489742783178}, "ultk.language.semantics": {"tf": 2.6457513110645907}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.sampling.random_languages": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 3.3166247903554}, "ultk.effcomm": {"tf": 3.7416573867739413}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 2}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.7320508075688772}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1.4142135623730951}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.7320508075688772}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.dominates": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1.4142135623730951}, "ultk.language": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1.4142135623730951}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 2.449489742783178}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}, "ultk.language.language": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}, "ultk.language.semantics": {"tf": 2.449489742783178}, "ultk.language.semantics.Referent": {"tf": 1}, "ultk.language.semantics.Universe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 61, "m": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.language": {"tf": 1.4142135623730951}, "ultk.language.language.Expression": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.rename_id": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 18, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 2}, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.7320508075688772}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {"ultk.language.semantics.Meaning": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1.7320508075688772}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 4, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 2}}, "df": 5}}}}}, "m": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.7320508075688772}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 2}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.upto_comb": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.7320508075688772}, "ultk.language.semantics": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1.4142135623730951}, "ultk.language.semantics.Meaning": {"tf": 1.4142135623730951}}, "df": 30}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}}, "df": 5}}}}}}, "c": {"docs": {}, "df": 0, "{": {"docs": {}, "df": 0, "p": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.gNID": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 2}}}}}, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 3, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {"ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 6, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.indicator_utility": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 2}, "ultk.effcomm.informativity.communicative_success": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.build_utility_matrix": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.7320508075688772}, "ultk.language.grammar.Rule.is_terminal": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1.4142135623730951}, "ultk.language.grammar.UniquenessArgs": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.7320508075688772}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1.4142135623730951}}, "df": 17, "s": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.analysis": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.informativity": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.sampling": {"tf": 1}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.util": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 10}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 2}}, "df": 1, "y": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}, "e": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language.language.aggregate_expression_complexity": {"tf": 1}}, "df": 6}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.language.Expression.can_express": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}}, "df": 4}}}}}}}, "h": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 2}}, "df": 1, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.analysis.pearson_analysis": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 2.6457513110645907}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"ultk": {"tf": 1}, "ultk.language": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1.4142135623730951}}, "df": 3, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.information": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 5}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.information.ib_optimal_decoder": {"tf": 1}}, "df": 3}}}}}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 2}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 2.6457513110645907}, "ultk.language.semantics": {"tf": 1.4142135623730951}, "ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Meaning": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1.4142135623730951}}, "df": 36, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.7320508075688772}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.util.gNID": {"tf": 1}, "ultk.language": {"tf": 1}}, "df": 13}, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 2}}, "df": 3, "s": {"docs": {"ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 5}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.language": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 4}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.semantics.Universe.from_dataframe": {"tf": 1}, "ultk.language.semantics.Universe.from_csv": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}, "t": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 4}, "g": {"docs": {"ultk.effcomm.agent.BayesianListener": {"tf": 1.4142135623730951}}, "df": 1}}, "y": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.initialize_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1.4142135623730951}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 31}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.LiteralSpeaker": {"tf": 1}, "ultk.effcomm.agent.LiteralListener": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}}, "df": 4}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.get_rd_curve": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 1.4142135623730951}, "ultk.effcomm.util.conditional": {"tf": 1.7320508075688772}, "ultk.effcomm.util.joint": {"tf": 1.7320508075688772}, "ultk.effcomm.util.marginalize": {"tf": 1.7320508075688772}, "ultk.effcomm.util.bayes": {"tf": 1.4142135623730951}}, "df": 9, "o": {"docs": {}, "df": 0, "u": {"docs": {"ultk": {"tf": 1.7320508075688772}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1.4142135623730951}}, "df": 2}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.tradeoff.interpolate_data": {"tf": 1}}, "df": 1}}, "s": {"docs": {"ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}}, "df": 2}}}}}, "|": {"docs": {}, "df": 0, "x": {"docs": {"ultk.effcomm.util.conditional": {"tf": 1}, "ultk.effcomm.util.joint": {"tf": 1}, "ultk.effcomm.util.marginalize": {"tf": 1}, "ultk.effcomm.util.bayes": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 1}}}}, "v": {"1": {"docs": {}, "df": 0, "i": {"0": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "a": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization": {"tf": 1}}, "df": 2}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm": {"tf": 1.7320508075688772}, "ultk.effcomm.util": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 2}}, "df": 1}}}}}, "y": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"ultk.effcomm.analysis.trade_off_ttest": {"tf": 1.4142135623730951}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.7320508075688772}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1}}, "df": 7, "s": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 7}, "d": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.agent.Listener.normalized_weights": {"tf": 1}, "ultk.effcomm.util.rows_zero_to_uniform": {"tf": 1}}, "df": 5}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"ultk.language.language": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 2}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "s": {"docs": {"ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.effcomm.information.get_bottleneck": {"tf": 1.7320508075688772}}, "df": 2}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1.4142135623730951}}, "df": 1}}}, "y": {"docs": {"ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.CommunicativeAgent.sample_strategy": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.Listener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.LiteralListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticSpeaker": {"tf": 1}, "ultk.effcomm.agent.PragmaticListener": {"tf": 1}, "ultk.effcomm.agent.BayesianListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.analysis.pearson_analysis": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1.4142135623730951}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1}, "ultk.language.semantics": {"tf": 1}}, "df": 21, "e": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.agent.Speaker.normalized_weights": {"tf": 1}, "ultk.effcomm.analysis.get_dataframe": {"tf": 1}, "ultk.effcomm.analysis.trade_off_means": {"tf": 1}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1.4142135623730951}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.grammar.Grammar.get_all_rules": {"tf": 1}, "ultk.language.language.Language.binary_matrix": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.sample_lang_size": {"tf": 1}, "ultk.language.sampling.random_combination_vocabulary": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}}, "df": 2}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.util.gNID": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.optimization.EvolutionaryOptimizer.fit": {"tf": 1}, "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated": {"tf": 1}, "ultk.effcomm.optimization.sample_parents": {"tf": 1}}, "df": 4, "s": {"docs": {"ultk.effcomm.optimization.EvolutionaryOptimizer.__init__": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.sampling.get_hypothetical_variants": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_expressions": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}}, "df": 9, "d": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.generate_languages": {"tf": 1.7320508075688772}, "ultk.language.sampling.sample_lang_size": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm": {"tf": 1}}, "df": 2, "s": {"docs": {"ultk": {"tf": 1.4142135623730951}, "ultk.effcomm.agent": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"ultk": {"tf": 1}, "ultk.language.grammar.Rule": {"tf": 2}, "ultk.language.grammar.GrammaticalExpression": {"tf": 1}, "ultk.language.grammar.GrammaticalExpression.yield_string": {"tf": 1}, "ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.parse": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.from_yaml": {"tf": 1.4142135623730951}}, "df": 10}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.GrammaticalExpression": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.parse": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 3, "s": {"docs": {"ultk.language.grammar.UniquenessArgs": {"tf": 1}, "ultk.language.grammar.Grammar": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate_at_depth": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.tradeoff.tradeoff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ultk.language.sampling.enumerate_all_languages": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}}, "df": 1, "n": {"docs": {"ultk.effcomm": {"tf": 1}, "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices": {"tf": 1}, "ultk.effcomm.agent.PragmaticSpeaker.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1.4142135623730951}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 1}, "ultk.effcomm.information.get_ib_curve": {"tf": 1}, "ultk.effcomm.information.get_bottleneck": {"tf": 1}, "ultk.effcomm.information.ib_informativity": {"tf": 1}, "ultk.effcomm.information.ib_comm_cost": {"tf": 1}, "ultk.effcomm.information.ib_encoder_to_point": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1.4142135623730951}, "ultk.language.grammar.Grammar.generate": {"tf": 1}, "ultk.language.grammar.Grammar.enumerate": {"tf": 1.4142135623730951}, "ultk.language.language.Language.degree_property": {"tf": 1}, "ultk.language.sampling.powerset": {"tf": 1}, "ultk.language.sampling.all_meanings": {"tf": 1}, "ultk.language.sampling.all_languages": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1.4142135623730951}}, "df": 18}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}, "ultk.effcomm.tradeoff.non_dominated_2d": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ultk.effcomm.agent.LiteralListener": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"ultk.effcomm.agent.PragmaticListener.__init__": {"tf": 1}, "ultk.effcomm.informativity.informativity": {"tf": 1}, "ultk.effcomm.informativity.communicative_success": {"tf": 1}}, "df": 3}, "d": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 3.4641016151377544}, "ultk.effcomm.analysis.trade_off_ttest": {"tf": 2.449489742783178}, "ultk.language.language": {"tf": 4.898979485566356}, "ultk.language.sampling.random_languages": {"tf": 3.4641016151377544}, "ultk.language.sampling.generate_languages": {"tf": 4.242640687119285}, "ultk.language.semantics": {"tf": 5.196152422706632}}, "df": 6}}, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "y": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {"ultk.effcomm.agent.CommunicativeAgent.to_language": {"tf": 1}}, "df": 1}}}}, "j": {"docs": {"ultk": {"tf": 1}, "ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.optimization.sample_parents": {"tf": 1}, "ultk.language.grammar.Grammar.get_unique_expressions": {"tf": 1}, "ultk.language.sampling.upto_comb": {"tf": 1}, "ultk.language.sampling.random_languages": {"tf": 1}, "ultk.language.sampling.enumerate_all_languages": {"tf": 1}, "ultk.language.semantics.Meaning.__init__": {"tf": 1}}, "df": 6}}}}, "q": {"docs": {"ultk.effcomm.information.information_rate": {"tf": 1}, "ultk.effcomm.information.language_to_ib_encoder_decoder": {"tf": 1.4142135623730951}}, "df": 2, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"ultk": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {"ultk.language.sampling.generate_languages": {"tf": 1}, "ultk.language.sampling.sample_quasi_natural": {"tf": 1.7320508075688772}, "ultk.language.sampling.enumerate_all_languages": {"tf": 2.449489742783178}}, "df": 3}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.analysis.trade_off_means": {"tf": 2.449489742783178}, "ultk.language.language": {"tf": 1.4142135623730951}, "ultk.language.sampling.random_languages": {"tf": 2}, "ultk.language.sampling.generate_languages": {"tf": 2}, "ultk.language.semantics": {"tf": 1.4142135623730951}}, "df": 5}}}}, "x": {"docs": {"ultk.effcomm.information.expected_distortion": {"tf": 1.7320508075688772}, "ultk.effcomm.information.compute_rate_distortion": {"tf": 3.605551275463989}, "ultk.effcomm.information.blahut_arimoto": {"tf": 3.3166247903554}, "ultk.effcomm.tradeoff.pareto_min_distances": {"tf": 1.7320508075688772}, "ultk.effcomm.tradeoff.interpolate_data": {"tf": 1.4142135623730951}, "ultk.effcomm.tradeoff.tradeoff": {"tf": 1}, "ultk.effcomm.util.marginal": {"tf": 2}, "ultk.effcomm.util.conditional": {"tf": 2.23606797749979}, "ultk.effcomm.util.joint": {"tf": 2.449489742783178}, "ultk.effcomm.util.marginalize": {"tf": 2.23606797749979}, "ultk.effcomm.util.bayes": {"tf": 1.7320508075688772}, "ultk.effcomm.util.xlogx": {"tf": 1.4142135623730951}, "ultk.effcomm.util.H": {"tf": 2}, "ultk.effcomm.util.gNID": {"tf": 1.4142135623730951}, "ultk.language.sampling.rename_id": {"tf": 1.4142135623730951}}, "df": 15, "u": {"docs": {"ultk": {"tf": 1}}, "df": 1}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ultk.effcomm.information.compute_rate_distortion": {"tf": 1}}, "df": 1}}}, "[": {"docs": {}, "df": 0, "i": {"docs": {"ultk.effcomm.information.blahut_arimoto": {"tf": 1}}, "df": 1}}, "|": {"docs": {}, "df": 0, "y": {"docs": {"ultk.effcomm.util.bayes": {"tf": 1}}, "df": 1}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; + /** pdoc search index */const docs = [{"fullname": "ultk", "modulename": "ultk", "kind": "module", "doc": "

The Unnatural Language ToolKit (ULTK)

\n\n

\"Four

\n\n

Introduction

\n\n

ULTK is a software library that aims to support efficient communication analyses of natural language. This is a line of research that aims to explain why natural languages have the structure that they do in terms competing pressures to minimize cognitive complexity and maximize communicative accuracy.

\n\n

Key features:

\n\n
    \n
  • Primitives for constructing semantic spaces, expressions, and languages
  • \n
  • Tools for measuring informativity of languages, communicative success of RSA speakers and listeners
  • \n
  • Language population sampling and optimization w.r.t Pareto fronts
  • \n
  • Rate-Distortion and Information Bottleneck style analyses
  • \n
\n\n

ULTK is a long term project and it is currently in its early stages. It is intended to help lower the barrier to entry for certain research in computational semantics, and to unify methodologies. If you find something confusing, please open an issue. If you have a phenomena of interest in linguistic semantics that you want to run an efficient communication analysis on, please contact the contributors.

\n\n

Read the documentation.

\n\n

Installing ULTK

\n\n

First, set up a virtual environment (e.g. via miniconda, conda create -n ultk python=3.11, and conda activate ultk).

\n\n
    \n
  1. Download or clone this repository and navigate to the root folder.

  2. \n
  3. Install ULTK (We recommend doing this inside a virtual environment)

    \n\n

    pip install -e .

  4. \n
\n\n

Getting started

\n\n
    \n
  • Check out the examples, starting with a simiple efficient communication analysis of indefinites and a comparison of two approaches to efficient communication, with modals as a test case.
  • \n
  • To see more scaled up usage examples, visit the codebase for an efficient communication analysis of modals or sim-max games.
  • \n
  • For an introduction to efficient communication research, here is a survey paper of the field.
  • \n
  • For an introduction to the RSA framework, see this online textbook.
  • \n
\n\n

Modules

\n\n

There are two modules. The first is ultk.effcomm, which includes methods for measuring informativity of languages and/or communicative success of Rational Speech Act agents, and for language population sampling and optimization w.r.t Pareto fronts.

\n\n

The second module is ultk.language, which contains primitives for constructing semantic spaces, expressions, and languages. It also has a grammar module which can be used for building expressions in a Language of Thought and measuring complexity in terms of minimum description length, as well as for natural language syntax.

\n\n

The source code is available on github here.

\n\n

Testing

\n\n

Unit tests are written in pytest and executed via running pytest in the src/tests folder.

\n\n

References

\n\n

\nFigures:

\n\n
\n

Kemp, C. & Regier, T. (2012) Kinship Categories Across Languages Reflect General Communicative Principles. Science. https://www.science.org/doi/10.1126/science.1218811

\n
\n\n
\n

Zaslavsky, N., Kemp, C., Regier, T., & Tishby, N. (2018). Efficient compression in color naming and its evolution. Proceedings of the National Academy of Sciences, 115(31), 7937\u20137942. https://doi.org/10.1073/pnas.1800521115

\n
\n\n
\n

Deni\u0107, M., Steinert-Threlkeld, S., & Szymanik, J. (2022). Indefinite Pronouns Optimize the Simplicity/Informativeness Trade-Off. Cognitive Science, 46(5), e13142. https://doi.org/10.1111/cogs.13142

\n
\n\n
\n

Steinert-Threlkeld, S. (2021). Quantifiers in Natural Language: Efficient Communication and Degrees of Semantic Universals. Entropy, 23(10), Article 10. https://doi.org/10.3390/e23101335

\n
\n\n

\n\n

\nLinks:

\n\n
\n

Imel, N., & Steinert-Threlkeld, S. (2022). Modal semantic universals optimize the simplicity/informativeness trade-off. Semantics and Linguistic Theory, 1(0), Article 0. https://doi.org/10.3765/salt.v1i0.5346

\n
\n\n
\n

Kemp, C., Xu, Y., & Regier, T. (2018). Semantic Typology and Efficient Communication. Annual Review of Linguistics, 4(1), 109\u2013128. https://doi.org/10.1146/annurev-linguistics-011817-045406

\n
\n\n

\n"}, {"fullname": "ultk.effcomm", "modulename": "ultk.effcomm", "kind": "module", "doc": "

Tools for measuring languages for communicative efficiency.

\n\n

Submodules divide the labor of a computational experiment performing an efficiency analysis of a language into several parts: generating and sampling the space of possible languages, measuring their properties, and determining which languages optimize efficient trade-offs w.r.t these properties.

\n\n

The ultk.effcomm.sampling submodule implements several methods for generating hypothetically possible languages of a given type, by sampling from a set of possible expressions, or permuting the expression-meaning mapping of an existing language.

\n\n

The ultk.effcomm.optimization submodule contains a general implementation of an evolutionary algorithm, which can be used to estimate a Pareto frontier of optimal solutions to an efficiency trade-off. It can also be used as a technique for randomly exploring the space of possible languages.

\n\n

The ultk.effcomm.tradeoff submodule contains tools for measuring a pool of languages for various properties, finding which languages are Pareto dominant with respect to two properties, and setting attributes of the language objects for further analysis.

\n\n

The ultk.effcomm.analysis submodule contains tools for performing numerical analyses and producing paradigmatic plots of languages in 2D trade-off space.

\n\n

The ultk.effcomm.information_bottleneck submodule contains tools for Information Bottleneck based analyses of the communicative efficiency of languages. Specificially, it includes an implementation of the IB-BA algorithm and code for evaluating the efficiency of semantic category systems.

\n\n

The ultk.effcomm.agent submodule implements classes for constructing various speakers and listeners of a language. These are unified abstractions from the Rational Speech Act framework.

\n\n

The ultk.effcomm.informativity submodule implements tools for computing the literal or pragmatic informativity of a language, based on speaker/listener abstractions described above.

\n"}, {"fullname": "ultk.effcomm.agent", "modulename": "ultk.effcomm.agent", "kind": "module", "doc": "

Classes for representing communicative agents, such as Senders and Receivers figuring in Lewis-Skyrms signaling games, literal and pragmatic agents in the Rational Speech Act framework, etc.

\n"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent", "kind": "class", "doc": "

\n"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.__init__", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.language", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.language", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.shape", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.shape", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.weights", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.weights", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.normalized_weights", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.normalized_weights", "kind": "function", "doc": "

Return the normalized weights of a CommunicativeAgent so that each row vector represents a probability distribution.

\n", "signature": "(self) -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.initialize_weights", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.initialize_weights", "kind": "function", "doc": "

Initialize the agent's weight matrix.

\n\n
Arguments:
\n\n
    \n
  • weights: an np.ndarray representing the weights to initialize the agent with. By default None, and the agent's weights will be initialized uniformly.
  • \n
  • initial: {'ones', 'random'} a str reprsenting the initialization method to use. If 'ones' (default), initialize the weight matrix with np.ones. If 'random', initalize the weight matrix from np.random.uniform.
  • \n
\n", "signature": "(self, weights: numpy.ndarray = None, initial='ones') -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.referent_to_index", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.referent_to_index", "kind": "function", "doc": "

\n", "signature": "(self, referent: ultk.language.semantics.Referent) -> int:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.index_to_referent", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.index_to_referent", "kind": "function", "doc": "

\n", "signature": "(self, index: int) -> ultk.language.semantics.Referent:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.expression_to_index", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.expression_to_index", "kind": "function", "doc": "

\n", "signature": "(self, expression: ultk.language.language.Expression) -> int:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.index_to_expression", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.index_to_expression", "kind": "function", "doc": "

\n", "signature": "(self, index: int) -> ultk.language.language.Expression:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.strategy_to_indices", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.strategy_to_indices", "kind": "function", "doc": "

Maps communicative strategies to weights.

\n\n

Given a expression and referent, access the corresponding weight coordinate.

\n\n
Arguments:
\n\n
    \n
  • strategy: a dict of the form {\"referent\": Referent, \"expression\": expression} representing an instance of communicative behavior, which we may call a communicative strategy for this agent.
  • \n
\n", "signature": "(self, strategy: dict[str, typing.Any]) -> tuple[int]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.sample_strategy", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.sample_strategy", "kind": "function", "doc": "

Sample a communicative strategy (e.g., a word for Speaker's intended referent, or interpretation for Listener's heard word) by uniformly sampling from a row vector of the agent's weight matrix specified by the index.

\n\n
Arguments:
\n\n
    \n
  • index: the integer index representing a row of the weight matrix.
  • \n
\n\n
Returns:
\n\n
\n

the integer index of the agent's choice

\n
\n", "signature": "(self, index: int) -> int:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.CommunicativeAgent.to_language", "modulename": "ultk.effcomm.agent", "qualname": "CommunicativeAgent.to_language", "kind": "function", "doc": "

Get a language from the agent, representing its current (possibly learned) communicative behavior.

\n\n
This function uses:
\n\n
\n
    \n
  1. the agent's weight matrix,
  2. \n
  3. the set of expression forms, and
  4. \n
  5. the set of referents
  6. \n
\n
\n\n

from the language the agent was initialized with to generate a new language accurately reflecting the new expression meanings, e.g. how the agent interprets expressions as meaning zero or more referents.

\n\n
Arguments:
\n\n
    \n
  • threshold: a float in [0,1] representing the cutoff for determining if a meaning (referent) can be communicated by a expression. Because weights are not initialized to 0, it is a good idea to set nonzero values as the threshold.
  • \n
\n\n
Returns:
\n\n
\n

a Language corresponding to the form-meaning mapping defined by the communicative agent's weights.

\n
\n", "signature": "(\tself,\tdata: dict = {'complexity': None, 'accuracy': None},\tthreshold: float = 0.1) -> ultk.language.language.Language:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.Speaker", "modulename": "ultk.effcomm.agent", "qualname": "Speaker", "kind": "class", "doc": "

\n", "bases": "CommunicativeAgent"}, {"fullname": "ultk.effcomm.agent.Speaker.__init__", "modulename": "ultk.effcomm.agent", "qualname": "Speaker.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, {"fullname": "ultk.effcomm.agent.Speaker.S", "modulename": "ultk.effcomm.agent", "qualname": "Speaker.S", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.effcomm.agent.Speaker.normalized_weights", "modulename": "ultk.effcomm.agent", "qualname": "Speaker.normalized_weights", "kind": "function", "doc": "

Get the normalized weights of a Speaker.

\n\n

Each row vector represents a conditional probability distribution over expressions, P(e | m).

\n", "signature": "(self) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.Listener", "modulename": "ultk.effcomm.agent", "qualname": "Listener", "kind": "class", "doc": "

\n", "bases": "CommunicativeAgent"}, {"fullname": "ultk.effcomm.agent.Listener.__init__", "modulename": "ultk.effcomm.agent", "qualname": "Listener.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, {"fullname": "ultk.effcomm.agent.Listener.R", "modulename": "ultk.effcomm.agent", "qualname": "Listener.R", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.effcomm.agent.Listener.normalized_weights", "modulename": "ultk.effcomm.agent", "qualname": "Listener.normalized_weights", "kind": "function", "doc": "

Normalize the weights of a Listener so that each row vector for the heard expression e represents a conditional probability distribution over referents P(m | e).

\n", "signature": "(self) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.agent.LiteralSpeaker", "modulename": "ultk.effcomm.agent", "qualname": "LiteralSpeaker", "kind": "class", "doc": "

A literal speaker chooses utterances without any reasoning about other agents. The literal speaker's conditional probability distribution P(e|m) is uniform over all expressions that can be used to communicate a particular meaning. This is in contrast to a pragmatic speaker, whose conditional distribution is not uniform in this way, but instead biased towards choosing expressions that are less likely to be misinterpreted by some listener.

\n", "bases": "Speaker"}, {"fullname": "ultk.effcomm.agent.LiteralSpeaker.__init__", "modulename": "ultk.effcomm.agent", "qualname": "LiteralSpeaker.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, {"fullname": "ultk.effcomm.agent.LiteralSpeaker.S", "modulename": "ultk.effcomm.agent", "qualname": "LiteralSpeaker.S", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.effcomm.agent.LiteralListener", "modulename": "ultk.effcomm.agent", "qualname": "LiteralListener", "kind": "class", "doc": "

A naive literal listener interprets utterances without any reasoning about other agents. Its conditional probability distribution P(m|e) for guessing meanings is uniform over all meanings that can be denoted by the particular expression heard. This is in contrast to a pragmatic listener, whose conditional distribution is biased to guess meanings that a pragmatic speaker most likely intended.

\n", "bases": "Listener"}, {"fullname": "ultk.effcomm.agent.LiteralListener.__init__", "modulename": "ultk.effcomm.agent", "qualname": "LiteralListener.__init__", "kind": "function", "doc": "

An agent that uses a language to communicate, e.g. a RSA pragmatic agent or a Lewis-Skyrms signaler.

\n\n
Arguments:
\n\n
    \n
  • language: a language to construct a agent to define the relation between meanings and expressions, which can be used to initialize the agent matrices (e.g. S or R).
  • \n
  • name: an optional string to name the communicative agent
  • \n
\n", "signature": "(language: ultk.language.language.Language, **kwargs)"}, {"fullname": "ultk.effcomm.agent.LiteralListener.R", "modulename": "ultk.effcomm.agent", "qualname": "LiteralListener.R", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.effcomm.agent.PragmaticSpeaker", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticSpeaker", "kind": "class", "doc": "

A pragmatic speaker chooses utterances based on how a listener would interpret them. A pragmatic speaker may be initialized with any kind of listener, e.g. literal or pragmatic -- meaning the recursive reasoning can be modeled up to arbitrary depth.

\n", "bases": "Speaker"}, {"fullname": "ultk.effcomm.agent.PragmaticSpeaker.__init__", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticSpeaker.__init__", "kind": "function", "doc": "

Initialize the |M|-by-|E| matrix, S, corresponding to the pragmatic speaker's conditional probability distribution over expressions given meanings.

\n\n

The pragmatic speaker chooses expressions to communicate their intended meaning according to:

\n\n

$P(e | m) \\propto \\exp(t * u(e,m))$

\n\n

where $t \\in [0,1]$ is a temperature parameter and utility $u$ is defined

\n\n

$u(e , m) := \\log(P_{\\text{Listener}}(m | e))$

\n\n
Arguments:
\n\n
    \n
  • language: the language with |M| meanings and |E| expressions defining the size of S.
  • \n
  • listener: a communicative agent storing a matrix R representing the conditional distribution over expressions given meanings.
  • \n
  • temperature: a float \\in [0,1], representing how `optimally rational' the pragmatic speaker is; 1.0 is chosen when no particular assumptions about rationality are made.
  • \n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tlistener: ultk.effcomm.agent.Listener,\ttemperature: float = 1.0,\t**kwargs)"}, {"fullname": "ultk.effcomm.agent.PragmaticSpeaker.S", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticSpeaker.S", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.effcomm.agent.PragmaticListener", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticListener", "kind": "class", "doc": "

A pragmatic listener interprets utterances based on their expectations about a pragmatic speaker's decisions. A pragmatic listener may be initialized with any kind of speaker, e.g. literal or pragmatic -- meaning the recursive reasoning can be modeled up to arbitrary depth.

\n", "bases": "Listener"}, {"fullname": "ultk.effcomm.agent.PragmaticListener.__init__", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticListener.__init__", "kind": "function", "doc": "

Initialize the |E|-by-|M| matrix, R, corresponding to the pragmatic listener's conditional probability distribution over meanings given expressions.

\n\n

The pragmatic listener chooses meanings as their best guesses of the expression they heard according to:

\n\n

$P(m | e) \\propto P_{\\text{PragmaticSpeaker}}(e | m)$

\n\n
Arguments:
\n\n
    \n
  • language: the language with |M| meanings and |E| expressions defining the size of R.
  • \n
  • speaker: a communicative agent storing a matrix S representing the conditional distribution over expressions given meanings.
  • \n
  • prior: a diagonal matrix of size |M|-by-|M| representing the communicative need probabilities for meanings.
  • \n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tspeaker: ultk.effcomm.agent.Speaker,\tprior: numpy.ndarray,\t**kwargs)"}, {"fullname": "ultk.effcomm.agent.PragmaticListener.R", "modulename": "ultk.effcomm.agent", "qualname": "PragmaticListener.R", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.effcomm.analysis", "modulename": "ultk.effcomm.analysis", "kind": "module", "doc": "

Functions for analyzing and formatting the results of the simplicity/informativeness trade-off.

\n"}, {"fullname": "ultk.effcomm.analysis.get_dataframe", "modulename": "ultk.effcomm.analysis", "qualname": "get_dataframe", "kind": "function", "doc": "

Get a pandas DataFrame for a list of languages containing efficient communication data.

\n\n
Arguments:
\n\n
    \n
  • languages: the list of languages to map into a dataframe.
  • \n
  • columns: the list of keys to a language's data dictionary attribute, which will comprise the columns of the resulting dataframe. By default will use all items of each language's data dictionary.
  • \n
  • subset: the columns to subset for duplicates
  • \n
  • duplicates: {\"drop\", \"count\", \"leave\"} whether to drop, count, or do nothing with duplicates. By default is set to \"leave\" which will leave duplicates in the dataframe.
  • \n
\n\n
Returns:
\n\n
\n
    \n
  • data: a pandas DataFrame with rows as individual languages, with the columns specifying their data.
  • \n
\n
\n", "signature": "(\tlanguages: list[ultk.language.language.Language],\tcolumns: list[str] = None,\tsubset: list[str] = ['complexity', 'comm_cost'],\tduplicates: str = 'leave') -> pandas.core.frame.DataFrame:", "funcdef": "def"}, {"fullname": "ultk.effcomm.analysis.pearson_analysis", "modulename": "ultk.effcomm.analysis", "qualname": "pearson_analysis", "kind": "function", "doc": "

Measures pearson correlation coefficient for naturalness with a property.

\n\n

Use nonparametric bootstrap for confidence intervals.

\n\n
Arguments:
\n\n
    \n
  • data: a DataFrame representing the pool of measured languages
  • \n
  • predictor: a string representing the column to measure pearson r with
  • \n
  • property: a string representing a column to measure pearson r with the predictor column
  • \n
  • num_bootstrap_samples: how many samples to bootstrap from the original data
  • \n
\n\n
Returns:
\n\n
\n

a dict of the pearson correlation coefficient for the predictor and the property, and bootstrapped confidence intervals for this coefficient, e.g.

\n\n
{\n\"rho\": (a float between -1 and 1),\n\"confidence_intervals\": (a pandas Dataframe with the columns [\n    'bootstrap_sample_percent', 'low', 'high'\n])\n}\n
\n
\n", "signature": "(\tdata,\tpredictor: str,\tproperty: str,\tnum_bootstrap_samples=100) -> dict[str, typing.Any]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.analysis.trade_off_means", "modulename": "ultk.effcomm.analysis", "qualname": "trade_off_means", "kind": "function", "doc": "

Get a dataframe with the mean tradeoff data.

\n\n
Arguments:
\n\n
    \n
  • name: a str representing the subset of the population to observe mean properties for, e.g. \"natural\" or \"population\".
  • \n
  • df: a pandas DataFrame containing data of a language population to take the means of.
  • \n
  • prperties: the properties to take means of, corresponding to columns of df.
  • \n
\n\n

Examples:

\n\n
\n
>>> natural_means = trade_off_means("natural_means", natural_data, properties)\n>>> population_means = trade_off_means("population_means", data, properties)\n>>> means_df = pd.concat([natural_means, dlsav_means, population_means]).set_index("name")\n>>> means_df\n                    simplicity  complexity  informativity  optimality\n    name\n    natural_means       0.772222     16.4000       0.746296    0.952280\n    population_means    0.681068     22.9631       0.525118    0.832010\n
\n
\n", "signature": "(\tname: str,\tdf: pandas.core.frame.DataFrame,\tproperties: list) -> pandas.core.frame.DataFrame:", "funcdef": "def"}, {"fullname": "ultk.effcomm.analysis.trade_off_ttest", "modulename": "ultk.effcomm.analysis", "qualname": "trade_off_ttest", "kind": "function", "doc": "

Get a dataframe with a single-samples t-test results for a subpopulation against the full population.

\n\n

This is useful if we want to compare the optimality of natural languages to the full population of languages in an experiment. Because the property of 'being a natural language' is categorical, we use a single-samples T test.

\n\n
Arguments:
\n\n
    \n
  • sub_population: a pandas DataFrame representing a subset of the population to take ttests against the full language population for properties.
  • \n
  • population_means: a dict containing properties as keys and the mean value of the full language population for that property.
  • \n
  • properties: a list of strings corresponding to columns of the sub_population DataFrame and keys of the population_means dict.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> df = trade_off_ttest(natural_data, population_means, properties)\n>>> df\n                        simplicity  complexity  informativity  optimality\n    stat\n    t-statistic          4.101937   -4.101937       3.126855    4.031027\n    Two-sided p-value    0.014830    0.014830       0.035292    0.015720\n
\n
\n
\n", "signature": "(\tsub_population: pandas.core.frame.DataFrame,\tpopulation_means: dict,\tproperties: list) -> pandas.core.frame.DataFrame:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck", "modulename": "ultk.effcomm.information_bottleneck", "kind": "module", "doc": "

Submodule for Information Bottleneck based analyses of the efficiency of semantic category systems.

\n\n

The ultk.effcomm.information_bottleneck.modeling includes a friendly API for obtaining IB theoretical bounds and naming models given a specification of the statistics of the semantic domain. This is likely the only submodule you need to import.

\n\n

The ultk.effcomm.information_bottlneck.ib implements the IB update equations, and includes an optimizer object that inherits from the base object in ba.

\n\n

The ultk.effcomm.information_bottleneck.ba submodule implements the Blahut-Arimoto algorithm for computing the theoretical bounds of efficient compression. It includes code for simulated annealing (reverse or not) of $\\beta$.

\n\n

The ultk.effcomm.information_bottleneck.tools submodule includes helper methods for computing informational quantities and dealing with numerical instability.

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba", "modulename": "ultk.effcomm.information_bottleneck.ba", "kind": "module", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer", "kind": "class", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.__init__", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.__init__", "kind": "function", "doc": "

Base initializer for a Blahut-Arimoto-based optimizer of the Rate Distortion function.

\n\n
Arguments:
\n\n
    \n
  • betas: 1D array, values of beta to search
  • \n
  • max_it: max number of iterations
  • \n
  • args: propagated to self.beta_iterate as *kwargs
  • \n
  • eps: accuracy required by the algorithm: the algorithm stops if there is no change in distortion value of more than eps between consecutive iterations
  • \n
  • ignore_converge: whether to run the optimization until max_it, ignoring the stopping criterion specified by eps.
  • \n
  • xhat_size: the size of the output alphabet. The resulting encoders will be of shape (x, xhat)
  • \n
  • kwargs: propagated to self.beta_iterate as **kwargs
  • \n
\n", "signature": "(\tbetas: numpy.ndarray,\t*args,\tmax_it: int = 1000,\teps: float = 1e-15,\tignore_converge: bool = False,\txhat_size=None,\t**kwargs)"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.betas", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.betas", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.max_it", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.max_it", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.eps", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.eps", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.ignore_converge", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.ignore_converge", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.init_args", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.init_args", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.init_kwargs", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.init_kwargs", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.ln_px", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.ln_px", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.ln_qxhat_x", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.ln_qxhat_x", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.dist_mat", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.dist_mat", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.xhat_size", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.xhat_size", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.result", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.result", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.results", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.results", "kind": "variable", "doc": "

\n", "annotation": ": list[typing.Any]"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.get_results", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.get_results", "kind": "function", "doc": "

\n", "signature": "(self) -> list[typing.Any]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.update_eqs", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.update_eqs", "kind": "function", "doc": "

Main Blahut-Arimoto update steps.

\n", "signature": "(self, *args, **kwargs) -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.next_result", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.next_result", "kind": "function", "doc": "

Get the result of the converged BA iteration.

\n", "signature": "(self, beta, *args, **kwargs) -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.beta_iterate", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.beta_iterate", "kind": "function", "doc": "

Iterate the BA algorithm for an array of values of beta, using reverse deterministic annealing.

\n\n
Arguments:
\n\n
    \n
  • num_restarts: number of times to restart each beta-optimization
  • \n
  • ensure_monotonicity: whether to remove points that would make a rate distortion curve non-monotonic
  • \n
  • reverse_annealing: whether to use reverse annealing or regular annealing. If self.output_size < len(self.ln_px), then this is set to false.
  • \n
\n", "signature": "(\tself,\t*args,\tnum_restarts: int = 0,\tensure_monotonicity: bool = True,\tdisable_tqdm: bool = False,\treverse_annealing: bool = True,\t**kwargs) -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.anneal", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.anneal", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*args,\treverse: bool = True,\tnum_restarts: int = 0,\tdisable_tqdm: bool = False,\t**kwargs) -> list:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.blahut_arimoto", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.blahut_arimoto", "kind": "function", "doc": "

Update the self-consistent equations for a Rate Distortion objective.

\n\n
Arguments:
\n\n
    \n
  • beta: (scalar) the slope of the rate-distoriton function at the point where evaluation is required
  • \n
\n", "signature": "(self, beta, *args, **kwargs) -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.compute_distortion", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.compute_distortion", "kind": "function", "doc": "

Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat.

\n", "signature": "(self, *args, **kwargs) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer.compute_rate", "modulename": "ultk.effcomm.information_bottleneck.ba", "qualname": "BaseRDOptimizer.compute_rate", "kind": "function", "doc": "

Compute the information rate for the current p(x), q(xhat|x).

\n", "signature": "(self, *args, **kwargs) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib", "modulename": "ultk.effcomm.information_bottleneck.ib", "kind": "module", "doc": "

Information Bottleneck optimizer.

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.ib_kl", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "ib_kl", "kind": "function", "doc": "

Compute the IB distortion matrix, the KL divergence between p(y|x) and q(y|xhat), in nats.

\n", "signature": "(py_x: numpy.ndarray, qy_xhat: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBResult", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBResult", "kind": "class", "doc": "

IBResult(qxhat_x, rate, distortion, accuracy, beta)

\n", "bases": "builtins.tuple"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBResult.__init__", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBResult.__init__", "kind": "function", "doc": "

Create new instance of IBResult(qxhat_x, rate, distortion, accuracy, beta)

\n", "signature": "(qxhat_x, rate, distortion, accuracy, beta)"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBResult.qxhat_x", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBResult.qxhat_x", "kind": "variable", "doc": "

Alias for field number 0

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBResult.rate", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBResult.rate", "kind": "variable", "doc": "

Alias for field number 1

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBResult.distortion", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBResult.distortion", "kind": "variable", "doc": "

Alias for field number 2

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBResult.accuracy", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBResult.accuracy", "kind": "variable", "doc": "

Alias for field number 3

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBResult.beta", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBResult.beta", "kind": "variable", "doc": "

Alias for field number 4

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.next_ln_qxhat", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "next_ln_qxhat", "kind": "function", "doc": "

\n", "signature": "(ln_px: numpy.ndarray, ln_qxhat_x: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.next_ln_qxhat_x", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "next_ln_qxhat_x", "kind": "function", "doc": "

\n", "signature": "(ln_qxhat: numpy.ndarray, beta: float, dist_mat: numpy.ndarray):", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.next_ln_qy_xhat", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "next_ln_qy_xhat", "kind": "function", "doc": "

\n", "signature": "(ln_pxy: numpy.ndarray, ln_qxhat_x: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.next_ln_qx_xhat", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "next_ln_qx_xhat", "kind": "function", "doc": "

\n", "signature": "(ln_px: numpy.ndarray, ln_qxhat_x: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer", "kind": "class", "doc": "

\n", "bases": "ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.__init__", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.__init__", "kind": "function", "doc": "

Estimate the optimal encoder for a given value of beta for the Information Bottleneck objective [Tishby et al., 1999]:

\n\n

$\\min_{q} I[X:\\hat{X}] + \\beta \\mathbb{E}[D_{KL}[p(y|x) || p(y|\\hat{x})]].$

\n\n
Arguments:
\n\n
    \n
  • pxy: 2D array of shape (|X|, |Y|) representing the joint probability mass function of the source and relevance variables.
  • \n
  • betas: 1D array of values of beta, where each beta is a float corresponding to the slope of the rate-distoriton function at the point where evaluation is required
  • \n
\n", "signature": "(pxy: numpy.ndarray, betas: numpy.ndarray, *args, **kwargs)"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.ln_pxy", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.ln_pxy", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.ln_px", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.ln_px", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.px", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.px", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.ln_py_x", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.ln_py_x", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.results", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.results", "kind": "variable", "doc": "

\n", "annotation": ": list[ultk.effcomm.information_bottleneck.ib.IBResult]"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.get_results", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.get_results", "kind": "function", "doc": "

\n", "signature": "(self) -> list[ultk.effcomm.information_bottleneck.ib.IBResult]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.next_dist_mat", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.next_dist_mat", "kind": "function", "doc": "

IB distortion matrix.

\n", "signature": "(self, *args, **kwargs) -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.update_eqs", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.update_eqs", "kind": "function", "doc": "

Iterate the IB update equations.

\n", "signature": "(self, beta, *args, **kwargs) -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.compute_distortion", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.compute_distortion", "kind": "function", "doc": "

Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat.

\n", "signature": "(self, *args, **kwargs) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.compute_accuracy", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.compute_accuracy", "kind": "function", "doc": "

\n", "signature": "(self, *args, **kwargs) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.ib.IBOptimizer.next_result", "modulename": "ultk.effcomm.information_bottleneck.ib", "qualname": "IBOptimizer.next_result", "kind": "function", "doc": "

Get the result of the converged BA iteration for the IB objective.

\n\n
Returns:
\n\n
\n

an IBResult namedtuple of (qxhat_x, rate, distortion, accuracy, beta) values. This is:

\n\n
`qxhat_x`, the optimal encoder, such that the\n\n`rate` (in bits) of compressing X into X_hat, is minimized for the level of\n\n`distortion` between X, X_hat with respect to Y, i.e. the\n\n`accuracy` I[X_hat:Y] is maximized, for the specified\n\n`beta` trade-off parameter\n
\n
\n", "signature": "(\tself,\tbeta,\t*args,\t**kwargs) -> ultk.effcomm.information_bottleneck.ib.IBResult:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling", "modulename": "ultk.effcomm.information_bottleneck.modeling", "kind": "module", "doc": "

Re-implementation of the IBNamingModel at https://github.com/nogazs/ib-color-naming/blob/master/src/ib_naming_model.py.

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel", "kind": "class", "doc": "

A model for simulating Information Bottleneck (IB) naming systems.

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.__init__", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.__init__", "kind": "function", "doc": "

Initializes the IBNamingModel with given parameters.

\n\n
Arguments:
\n\n
    \n
  • pM (np.ndarray): Prior distribution over meanings. Expected shape is (n, 1).
  • \n
  • pU_M (np.ndarray): Conditional distribution of observations given meanings.
  • \n
  • betas (np.ndarray): Array of beta values used for the IB curve.
  • \n
  • IB_curve (tuple[np.ndarray, np.ndarray]): tuple containing complexity and accuracy values along the IB curve.
  • \n
  • qW_M (np.ndarray): Initial encoder (naming system) matrix.
  • \n
\n", "signature": "(\tpM: numpy.ndarray,\tpU_M: numpy.ndarray,\tbetas: numpy.ndarray,\tIB_curve: tuple[numpy.ndarray, numpy.ndarray],\tqW_M: numpy.ndarray)"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.pM", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.pM", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.pU_M", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.pU_M", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.I_MU", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.I_MU", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.betas", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.betas", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.IB_curve", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.IB_curve", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.qW_M", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.qW_M", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.qW_M_orig", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.qW_M_orig", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.F", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.F", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.m_hat", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.m_hat", "kind": "function", "doc": "

Computes the optimal Bayesian listener corresponding to the encoder.

\n\n
Arguments:
\n\n
    \n
  • qW_M (np.ndarray): Encoder (naming system) matrix.
  • \n
\n\n
Returns:
\n\n
\n

np.ndarray: Optimal decoder that corresponds to the given encoder.

\n
\n", "signature": "(self, qW_M: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.complexity", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.complexity", "kind": "function", "doc": "

Calculates the mutual information I(M;W) for a given encoder.

\n\n
Arguments:
\n\n
    \n
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • \n
\n\n
Returns:
\n\n
\n

float: Mutual information I(M;W).

\n
\n", "signature": "(self, pW_M: numpy.ndarray) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.accuracy", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.accuracy", "kind": "function", "doc": "

Calculates the mutual information I(W;U) for a given encoder.

\n\n
Arguments:
\n\n
    \n
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • \n
\n\n
Returns:
\n\n
\n

float: Mutual information I(W;U).

\n
\n", "signature": "(self, pW_M: numpy.ndarray) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.d_IB", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.d_IB", "kind": "function", "doc": "

Calculates the IB distortion for a given encoder, i.e. the KL divergence between speaker and listener meanings, $\n\\mathbb{E}\\left[D[m||\\hat{m}]\night] = I(M;U) - I(W;U)$.

\n\n
Arguments:
\n\n
    \n
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • \n
\n\n
Returns:
\n\n
\n

float: Deviation from the optimal IB solution.

\n
\n", "signature": "(self, pW_M: numpy.ndarray) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.fit", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.fit", "kind": "function", "doc": "

Fits the naming system to the IB curve.

\n\n
Arguments:
\n\n
    \n
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • \n
\n\n
Returns:
\n\n
\n

tuple containing:\n - epsilon (float): Deviation from optimality of pW_M.\n - gnid (float): Generalized normalized information distance (gNID) between qW_M and qW_M_fit.\n - bl (float): Fitted value of beta.\n - qW_M_fit (np.ndarray): Optimal IB system at bl.

\n
\n", "signature": "(self, pW_M: numpy.ndarray) -> tuple[float, float, float, numpy.ndarray]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.save", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.save", "kind": "function", "doc": "

Save as pickle binary.

\n", "signature": "(self, fn: str = 'ib_naming_model.pkl') -> None:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.IBNamingModel.from_pickle", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "IBNamingModel.from_pickle", "kind": "function", "doc": "

\n", "signature": "(cls, fn: str):", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.gNID", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "gNID", "kind": "function", "doc": "

Compute Generalized Normalized Informational Distance (gNID, in Zaslavsky et al. 2018, SI, Section 3.2) between two encoders. Code credit: https://github.com/nogazs/ib-color-naming/blob/master/src/tools.py#L94

\n\n
Arguments:
\n\n
    \n
  • pW_X: first encoder of shape (|meanings|, |words|)
  • \n
  • pV_X: second encoder of shape (|meanings|, |words|)
  • \n
  • pX: prior over source variables of shape (|meanings|,)
  • \n
\n", "signature": "(pW_X: numpy.ndarray, pV_X: numpy.ndarray, pX: numpy.ndarray):", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.compute_bound", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "compute_bound", "kind": "function", "doc": "

Computes the IB bound based on input distributions.

\n\n
Arguments:
\n\n
    \n
  • pU_M (np.ndarray): Conditional distribution of observations given meanings.
  • \n
  • pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
  • \n
  • betas (np.ndarray, optional): Range of beta values for the IB curve. Defaults to logspace(0, 10, 100).
  • \n
  • **kwargs: Additional parameters for the IB optimizer.
  • \n
\n\n
Returns:
\n\n
\n

list[IBResult]: List of results from the IB optimizer.

\n
\n", "signature": "(\tpU_M: numpy.ndarray,\tpM: numpy.ndarray,\tbetas: numpy.ndarray = array([1.00000000e+00, 1.26185688e+00, 1.59228279e+00, 2.00923300e+00,\n 2.53536449e+00, 3.19926714e+00, 4.03701726e+00, 5.09413801e+00,\n 6.42807312e+00, 8.11130831e+00, 1.02353102e+01, 1.29154967e+01,\n 1.62975083e+01, 2.05651231e+01, 2.59502421e+01, 3.27454916e+01,\n 4.13201240e+01, 5.21400829e+01, 6.57933225e+01, 8.30217568e+01,\n 1.04761575e+02, 1.32194115e+02, 1.66810054e+02, 2.10490414e+02,\n 2.65608778e+02, 3.35160265e+02, 4.22924287e+02, 5.33669923e+02,\n 6.73415066e+02, 8.49753436e+02, 1.07226722e+03, 1.35304777e+03,\n 1.70735265e+03, 2.15443469e+03, 2.71858824e+03, 3.43046929e+03,\n 4.32876128e+03, 5.46227722e+03, 6.89261210e+03, 8.69749003e+03,\n 1.09749877e+04, 1.38488637e+04, 1.74752840e+04, 2.20513074e+04,\n 2.78255940e+04, 3.51119173e+04, 4.43062146e+04, 5.59081018e+04,\n 7.05480231e+04, 8.90215085e+04, 1.12332403e+05, 1.41747416e+05,\n 1.78864953e+05, 2.25701972e+05, 2.84803587e+05, 3.59381366e+05,\n 4.53487851e+05, 5.72236766e+05, 7.22080902e+05, 9.11162756e+05,\n 1.14975700e+06, 1.45082878e+06, 1.83073828e+06, 2.31012970e+06,\n 2.91505306e+06, 3.67837977e+06, 4.64158883e+06, 5.85702082e+06,\n 7.39072203e+06, 9.32603347e+06, 1.17681195e+07, 1.48496826e+07,\n 1.87381742e+07, 2.36448941e+07, 2.98364724e+07, 3.76493581e+07,\n 4.75081016e+07, 5.99484250e+07, 7.56463328e+07, 9.54548457e+07,\n 1.20450354e+08, 1.51991108e+08, 1.91791026e+08, 2.42012826e+08,\n 3.05385551e+08, 3.85352859e+08, 4.86260158e+08, 6.13590727e+08,\n 7.74263683e+08, 9.77009957e+08, 1.23284674e+09, 1.55567614e+09,\n 1.96304065e+09, 2.47707636e+09, 3.12571585e+09, 3.94420606e+09,\n 4.97702356e+09, 6.28029144e+09, 7.92482898e+09, 1.00000000e+10]),\t**kwargs) -> list[ultk.effcomm.information_bottleneck.ib.IBResult]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.get_ib_naming_model", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "get_ib_naming_model", "kind": "function", "doc": "

Constructs an IBNamingModel by constructing the IB bound for the domain distribution P(M,U).

\n\n
Arguments:
\n\n
    \n
  • pU_M (np.ndarray): Conditional distribution of observations given meanings.
  • \n
  • pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
  • \n
  • gammas (np.ndarray, optional): Range of gamma values for similarity selection. Defaults to logspace(-2, 2, 1000).
  • \n
  • **bound_kwargs: Additional parameters for IB bound computation. See compute_bound kwargs.
  • \n
\n\n
Returns:
\n\n
\n

IBNamingModel: An IBNamingModel instance configured with the computed IB bound.

\n
\n", "signature": "(\tpU_M: numpy.ndarray,\tpM: numpy.ndarray = None,\t**bound_kwargs) -> ultk.effcomm.information_bottleneck.modeling.IBNamingModel:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.encoder_to_language", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "encoder_to_language", "kind": "function", "doc": "

Convert a stochastic encoder to a ULTK Language using an IBNamingModel bayesian decoder.

\n\n
Arguments:
\n\n
    \n
  • qW_M (np.ndarray): A stochastic matrix where rows correspond to meanings\nand columns correspond to words, defining the encoder.
  • \n
  • naming_model (IBNamingModel): An instance of the IBNamingModel used to \ndecode the encoder into a language.
  • \n
  • universe (Universe): The universe containing referents and the structure \nin which the meanings are defined.
  • \n
  • words (list[str], optional): A list of word forms to use. If None, default \nnumeric indices are used. Defaults to None.
  • \n
  • name (str, optional): The name of the resulting Language. Defaults to None.
  • \n
  • natural (bool, optional): Whether the resulting Language is a natural \nlanguage. Defaults to False.
  • \n
\n\n
Returns:
\n\n
\n

Language: The constructed Language object, where each expression maps a \n word form to its corresponding meaning.

\n
\n", "signature": "(\tqW_M: numpy.ndarray,\tnaming_model: ultk.effcomm.information_bottleneck.modeling.IBNamingModel,\tuniverse: ultk.language.semantics.Universe,\twords: list[str] = None,\tname: str = None,\tnatural: bool = False) -> ultk.language.language.Language:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.pU_M_from_similarity", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "pU_M_from_similarity", "kind": "function", "doc": "

Computes the conditional distribution p(U|M) based on similarity.

\n\n
Arguments:
\n\n
    \n
  • gamma (float): Scaling factor for the similarity matrix.
  • \n
  • sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
  • \n
\n\n
Returns:
\n\n
\n

np.ndarray: Conditional distribution p(U|M).

\n
\n", "signature": "(gamma: float, sim_mat: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.get_imu", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "get_imu", "kind": "function", "doc": "

Calculates the mutual information I(M;U) for a distribution p(U|M) \u221d exp(gamma * sim(u, m)).

\n\n
Arguments:
\n\n
    \n
  • gamma (float): Scaling factor for the similarity matrix.
  • \n
  • sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
  • \n
  • pM (np.ndarray, optional): Prior distribution over meanings (M). Defaults to a uniform distribution.
  • \n
\n\n
Returns:
\n\n
\n

np.ndarray: Mutual information I(M;U).

\n
\n", "signature": "(\tgamma: float,\tsim_mat: numpy.ndarray,\tpM: numpy.ndarray = None) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.modeling.select_gamma", "modulename": "ultk.effcomm.information_bottleneck.modeling", "qualname": "select_gamma", "kind": "function", "doc": "

Selects the gamma value that corresponds to the midpoint of I(M;U) for a distribution p(U|M) \u221d exp(gamma * sim(u, m)).

\n\n
Arguments:
\n\n
    \n
  • similarity_matrix (np.ndarray): Matrix encoding pairwise similarities between meanings (M) and referents (U).
  • \n
  • pM (np.ndarray, optional): Communicative need distribution over meanings (M). Defaults to None.
  • \n
  • gammas (np.ndarray, optional): Range of gamma values to sample. Defaults to logspace(-2, 2, 1000).
  • \n
\n\n
Returns:
\n\n
\n

tuple: A tuple containing:\n - float: Gamma value corresponding to the midpoint of I(M;U).\n - float: Midpoint of I(M;U).\n - int: Index of the midpoint in the gamma array.\n - np.ndarray: Array of gamma values used.\n - np.ndarray: Array of computed I(M;U) values.

\n
\n", "signature": "(\tsimilarity_matrix: numpy.ndarray,\tpM: numpy.ndarray = None,\tgammas: numpy.ndarray = array([1.00000000e-02, 1.00926219e-02, 1.01861017e-02, 1.02804473e-02,\n 1.03756668e-02, 1.04717682e-02, 1.05687597e-02, 1.06666496e-02,\n 1.07654461e-02, 1.08651577e-02, 1.09657929e-02, 1.10673602e-02,\n 1.11698682e-02, 1.12733256e-02, 1.13777413e-02, 1.14831241e-02,\n 1.15894830e-02, 1.16968270e-02, 1.18051653e-02, 1.19145070e-02,\n 1.20248614e-02, 1.21362380e-02, 1.22486461e-02, 1.23620954e-02,\n 1.24765955e-02, 1.25921561e-02, 1.27087871e-02, 1.28264983e-02,\n 1.29452998e-02, 1.30652016e-02, 1.31862140e-02, 1.33083472e-02,\n 1.34316117e-02, 1.35560179e-02, 1.36815763e-02, 1.38082977e-02,\n 1.39361927e-02, 1.40652724e-02, 1.41955477e-02, 1.43270295e-02,\n 1.44597292e-02, 1.45936580e-02, 1.47288272e-02, 1.48652484e-02,\n 1.50029332e-02, 1.51418933e-02, 1.52821404e-02, 1.54236865e-02,\n 1.55665436e-02, 1.57107239e-02, 1.58562396e-02, 1.60031031e-02,\n 1.61513269e-02, 1.63009236e-02, 1.64519059e-02, 1.66042866e-02,\n 1.67580786e-02, 1.69132952e-02, 1.70699493e-02, 1.72280545e-02,\n 1.73876240e-02, 1.75486715e-02, 1.77112106e-02, 1.78752553e-02,\n 1.80408193e-02, 1.82079168e-02, 1.83765620e-02, 1.85467692e-02,\n 1.87185529e-02, 1.88919278e-02, 1.90669084e-02, 1.92435098e-02,\n 1.94217468e-02, 1.96016347e-02, 1.97831888e-02, 1.99664245e-02,\n 2.01513573e-02, 2.03380031e-02, 2.05263775e-02, 2.07164968e-02,\n 2.09083769e-02, 2.11020343e-02, 2.12974854e-02, 2.14947467e-02,\n 2.16938352e-02, 2.18947676e-02, 2.20975611e-02, 2.23022330e-02,\n 2.25088005e-02, 2.27172813e-02, 2.29276931e-02, 2.31400538e-02,\n 2.33543814e-02, 2.35706941e-02, 2.37890104e-02, 2.40093488e-02,\n 2.42317279e-02, 2.44561668e-02, 2.46826845e-02, 2.49113003e-02,\n 2.51420335e-02, 2.53749038e-02, 2.56099310e-02, 2.58471351e-02,\n 2.60865362e-02, 2.63281547e-02, 2.65720111e-02, 2.68181261e-02,\n 2.70665207e-02, 2.73172160e-02, 2.75702333e-02, 2.78255940e-02,\n 2.80833200e-02, 2.83434331e-02, 2.86059554e-02, 2.88709092e-02,\n 2.91383170e-02, 2.94082017e-02, 2.96805861e-02, 2.99554933e-02,\n 3.02329468e-02, 3.05129702e-02, 3.07955871e-02, 3.10808217e-02,\n 3.13686982e-02, 3.16592411e-02, 3.19524751e-02, 3.22484250e-02,\n 3.25471161e-02, 3.28485737e-02, 3.31528234e-02, 3.34598912e-02,\n 3.37698031e-02, 3.40825855e-02, 3.43982649e-02, 3.47168682e-02,\n 3.50384225e-02, 3.53629550e-02, 3.56904935e-02, 3.60210656e-02,\n 3.63546996e-02, 3.66914238e-02, 3.70312668e-02, 3.73742574e-02,\n 3.77204249e-02, 3.80697987e-02, 3.84224085e-02, 3.87782841e-02,\n 3.91374560e-02, 3.94999546e-02, 3.98658107e-02, 4.02350555e-02,\n 4.06077203e-02, 4.09838367e-02, 4.13634368e-02, 4.17465529e-02,\n 4.21332174e-02, 4.25234633e-02, 4.29173238e-02, 4.33148322e-02,\n 4.37160225e-02, 4.41209286e-02, 4.45295851e-02, 4.49420266e-02,\n 4.53582883e-02, 4.57784054e-02, 4.62024137e-02, 4.66303493e-02,\n 4.70622485e-02, 4.74981480e-02, 4.79380850e-02, 4.83820966e-02,\n 4.88302209e-02, 4.92824957e-02, 4.97389596e-02, 5.01996513e-02,\n 5.06646101e-02, 5.11338754e-02, 5.16074871e-02, 5.20854855e-02,\n 5.25679112e-02, 5.30548053e-02, 5.35462090e-02, 5.40421642e-02,\n 5.45427131e-02, 5.50478981e-02, 5.55577622e-02, 5.60723488e-02,\n 5.65917016e-02, 5.71158648e-02, 5.76448828e-02, 5.81788007e-02,\n 5.87176639e-02, 5.92615181e-02, 5.98104096e-02, 6.03643851e-02,\n 6.09234915e-02, 6.14877765e-02, 6.20572881e-02, 6.26320745e-02,\n 6.32121848e-02, 6.37976681e-02, 6.43885743e-02, 6.49849535e-02,\n 6.55868566e-02, 6.61943346e-02, 6.68074392e-02, 6.74262224e-02,\n 6.80507370e-02, 6.86810359e-02, 6.93171728e-02, 6.99592017e-02,\n 7.06071771e-02, 7.12611543e-02, 7.19211887e-02, 7.25873365e-02,\n 7.32596543e-02, 7.39381992e-02, 7.46230289e-02, 7.53142017e-02,\n 7.60117762e-02, 7.67158118e-02, 7.74263683e-02, 7.81435061e-02,\n 7.88672862e-02, 7.95977700e-02, 8.03350198e-02, 8.10790981e-02,\n 8.18300682e-02, 8.25879939e-02, 8.33529397e-02, 8.41249705e-02,\n 8.49041520e-02, 8.56905505e-02, 8.64842328e-02, 8.72852662e-02,\n 8.80937190e-02, 8.89096599e-02, 8.97331581e-02, 9.05642838e-02,\n 9.14031075e-02, 9.22497005e-02, 9.31041349e-02, 9.39664831e-02,\n 9.48368187e-02, 9.57152154e-02, 9.66017480e-02, 9.74964918e-02,\n 9.83995230e-02, 9.93109181e-02, 1.00230755e-01, 1.01159111e-01,\n 1.02096066e-01, 1.03041699e-01, 1.03996091e-01, 1.04959323e-01,\n 1.05931476e-01, 1.06912634e-01, 1.07902879e-01, 1.08902296e-01,\n 1.09910970e-01, 1.10928986e-01, 1.11956432e-01, 1.12993394e-01,\n 1.14039960e-01, 1.15096220e-01, 1.16162263e-01, 1.17238180e-01,\n 1.18324063e-01, 1.19420003e-01, 1.20526094e-01, 1.21642429e-01,\n 1.22769105e-01, 1.23906216e-01, 1.25053859e-01, 1.26212131e-01,\n 1.27381132e-01, 1.28560961e-01, 1.29751717e-01, 1.30953502e-01,\n 1.32166418e-01, 1.33390569e-01, 1.34626058e-01, 1.35872990e-01,\n 1.37131472e-01, 1.38401610e-01, 1.39683512e-01, 1.40977287e-01,\n 1.42283046e-01, 1.43600898e-01, 1.44930957e-01, 1.46273336e-01,\n 1.47628147e-01, 1.48995507e-01, 1.50375532e-01, 1.51768339e-01,\n 1.53174046e-01, 1.54592774e-01, 1.56024641e-01, 1.57469771e-01,\n 1.58928287e-01, 1.60400311e-01, 1.61885969e-01, 1.63385388e-01,\n 1.64898694e-01, 1.66426018e-01, 1.67967487e-01, 1.69523234e-01,\n 1.71093391e-01, 1.72678090e-01, 1.74277468e-01, 1.75891659e-01,\n 1.77520801e-01, 1.79165033e-01, 1.80824493e-01, 1.82499324e-01,\n 1.84189668e-01, 1.85895668e-01, 1.87617469e-01, 1.89355218e-01,\n 1.91109062e-01, 1.92879151e-01, 1.94665634e-01, 1.96468665e-01,\n 1.98288395e-01, 2.00124980e-01, 2.01978576e-01, 2.03849340e-01,\n 2.05737431e-01, 2.07643011e-01, 2.09566240e-01, 2.11507282e-01,\n 2.13466303e-01, 2.15443469e-01, 2.17438948e-01, 2.19452909e-01,\n 2.21485523e-01, 2.23536965e-01, 2.25607407e-01, 2.27697026e-01,\n 2.29805999e-01, 2.31934506e-01, 2.34082728e-01, 2.36250847e-01,\n 2.38439047e-01, 2.40647515e-01, 2.42876438e-01, 2.45126006e-01,\n 2.47396410e-01, 2.49687843e-01, 2.52000499e-01, 2.54334576e-01,\n 2.56690272e-01, 2.59067786e-01, 2.61467321e-01, 2.63889081e-01,\n 2.66333273e-01, 2.68800102e-01, 2.71289780e-01, 2.73802518e-01,\n 2.76338529e-01, 2.78898029e-01, 2.81481236e-01, 2.84088369e-01,\n 2.86719650e-01, 2.89375302e-01, 2.92055551e-01, 2.94760626e-01,\n 2.97490755e-01, 3.00246171e-01, 3.03027108e-01, 3.05833803e-01,\n 3.08666494e-01, 3.11525422e-01, 3.14410830e-01, 3.17322963e-01,\n 3.20262069e-01, 3.23228398e-01, 3.26222201e-01, 3.29243733e-01,\n 3.32293252e-01, 3.35371015e-01, 3.38477286e-01, 3.41612327e-01,\n 3.44776405e-01, 3.47969790e-01, 3.51192753e-01, 3.54445567e-01,\n 3.57728510e-01, 3.61041860e-01, 3.64385898e-01, 3.67760910e-01,\n 3.71167182e-01, 3.74605003e-01, 3.78074666e-01, 3.81576466e-01,\n 3.85110700e-01, 3.88677669e-01, 3.92277676e-01, 3.95911027e-01,\n 3.99578030e-01, 4.03278998e-01, 4.07014245e-01, 4.10784089e-01,\n 4.14588850e-01, 4.18428851e-01, 4.22304419e-01, 4.26215883e-01,\n 4.30163576e-01, 4.34147833e-01, 4.38168993e-01, 4.42227398e-01,\n 4.46323393e-01, 4.50457325e-01, 4.54629547e-01, 4.58840413e-01,\n 4.63090280e-01, 4.67379511e-01, 4.71708469e-01, 4.76077523e-01,\n 4.80487044e-01, 4.84937407e-01, 4.89428990e-01, 4.93962174e-01,\n 4.98537346e-01, 5.03154895e-01, 5.07815211e-01, 5.12518693e-01,\n 5.17265739e-01, 5.22056753e-01, 5.26892142e-01, 5.31772318e-01,\n 5.36697695e-01, 5.41668691e-01, 5.46685730e-01, 5.51749238e-01,\n 5.56859644e-01, 5.62017385e-01, 5.67222897e-01, 5.72476624e-01,\n 5.77779012e-01, 5.83130511e-01, 5.88531578e-01, 5.93982669e-01,\n 5.99484250e-01, 6.05036788e-01, 6.10640754e-01, 6.16296626e-01,\n 6.22004883e-01, 6.27766011e-01, 6.33580499e-01, 6.39448843e-01,\n 6.45371540e-01, 6.51349095e-01, 6.57382014e-01, 6.63470812e-01,\n 6.69616005e-01, 6.75818117e-01, 6.82077673e-01, 6.88395207e-01,\n 6.94771255e-01, 7.01206359e-01, 7.07701066e-01, 7.14255929e-01,\n 7.20871503e-01, 7.27548353e-01, 7.34287045e-01, 7.41088152e-01,\n 7.47952252e-01, 7.54879928e-01, 7.61871770e-01, 7.68928372e-01,\n 7.76050334e-01, 7.83238260e-01, 7.90492762e-01, 7.97814457e-01,\n 8.05203967e-01, 8.12661920e-01, 8.20188950e-01, 8.27785697e-01,\n 8.35452806e-01, 8.43190929e-01, 8.51000725e-01, 8.58882856e-01,\n 8.66837993e-01, 8.74866812e-01, 8.82969996e-01, 8.91148232e-01,\n 8.99402217e-01, 9.07732653e-01, 9.16140246e-01, 9.24625712e-01,\n 9.33189772e-01, 9.41833153e-01, 9.50556592e-01, 9.59360829e-01,\n 9.68246612e-01, 9.77214697e-01, 9.86265846e-01, 9.95400829e-01,\n 1.00462042e+00, 1.01392541e+00, 1.02331658e+00, 1.03279473e+00,\n 1.04236067e+00, 1.05201522e+00, 1.06175918e+00, 1.07159340e+00,\n 1.08151870e+00, 1.09153594e+00, 1.10164595e+00, 1.11184960e+00,\n 1.12214777e+00, 1.13254132e+00, 1.14303113e+00, 1.15361810e+00,\n 1.16430313e+00, 1.17508713e+00, 1.18597101e+00, 1.19695570e+00,\n 1.20804213e+00, 1.21923125e+00, 1.23052400e+00, 1.24192135e+00,\n 1.25342427e+00, 1.26503372e+00, 1.27675070e+00, 1.28857621e+00,\n 1.30051125e+00, 1.31255684e+00, 1.32471399e+00, 1.33698374e+00,\n 1.34936714e+00, 1.36186524e+00, 1.37447909e+00, 1.38720978e+00,\n 1.40005838e+00, 1.41302599e+00, 1.42611371e+00, 1.43932264e+00,\n 1.45265393e+00, 1.46610868e+00, 1.47968806e+00, 1.49339322e+00,\n 1.50722531e+00, 1.52118552e+00, 1.53527503e+00, 1.54949504e+00,\n 1.56384676e+00, 1.57833141e+00, 1.59295021e+00, 1.60770442e+00,\n 1.62259529e+00, 1.63762407e+00, 1.65279206e+00, 1.66810054e+00,\n 1.68355080e+00, 1.69914417e+00, 1.71488197e+00, 1.73076553e+00,\n 1.74679622e+00, 1.76297538e+00, 1.77930439e+00, 1.79578465e+00,\n 1.81241755e+00, 1.82920450e+00, 1.84614695e+00, 1.86324631e+00,\n 1.88050406e+00, 1.89792164e+00, 1.91550056e+00, 1.93324229e+00,\n 1.95114835e+00, 1.96922026e+00, 1.98745955e+00, 2.00586778e+00,\n 2.02444651e+00, 2.04319732e+00, 2.06212180e+00, 2.08122157e+00,\n 2.10049824e+00, 2.11995346e+00, 2.13958887e+00, 2.15940615e+00,\n 2.17940698e+00, 2.19959307e+00, 2.21996612e+00, 2.24052787e+00,\n 2.26128007e+00, 2.28222447e+00, 2.30336287e+00, 2.32469706e+00,\n 2.34622885e+00, 2.36796007e+00, 2.38989257e+00, 2.41202821e+00,\n 2.43436887e+00, 2.45691646e+00, 2.47967289e+00, 2.50264010e+00,\n 2.52582003e+00, 2.54921465e+00, 2.57282597e+00, 2.59665597e+00,\n 2.62070670e+00, 2.64498018e+00, 2.66947849e+00, 2.69420371e+00,\n 2.71915794e+00, 2.74434330e+00, 2.76976194e+00, 2.79541600e+00,\n 2.82130768e+00, 2.84743917e+00, 2.87381269e+00, 2.90043049e+00,\n 2.92729484e+00, 2.95440800e+00, 2.98177229e+00, 3.00939003e+00,\n 3.03726358e+00, 3.06539530e+00, 3.09378757e+00, 3.12244282e+00,\n 3.15136348e+00, 3.18055202e+00, 3.21001090e+00, 3.23974263e+00,\n 3.26974974e+00, 3.30003479e+00, 3.33060034e+00, 3.36144900e+00,\n 3.39258338e+00, 3.42400614e+00, 3.45571994e+00, 3.48772747e+00,\n 3.52003147e+00, 3.55263468e+00, 3.58553986e+00, 3.61874981e+00,\n 3.65226736e+00, 3.68609536e+00, 3.72023668e+00, 3.75469422e+00,\n 3.78947092e+00, 3.82456972e+00, 3.85999362e+00, 3.89574562e+00,\n 3.93182876e+00, 3.96824610e+00, 4.00500076e+00, 4.04209584e+00,\n 4.07953450e+00, 4.11731993e+00, 4.15545533e+00, 4.19394396e+00,\n 4.23278907e+00, 4.27199397e+00, 4.31156199e+00, 4.35149650e+00,\n 4.39180089e+00, 4.43247859e+00, 4.47353305e+00, 4.51496777e+00,\n 4.55678627e+00, 4.59899209e+00, 4.64158883e+00, 4.68458012e+00,\n 4.72796959e+00, 4.77176095e+00, 4.81595791e+00, 4.86056423e+00,\n 4.90558371e+00, 4.95102016e+00, 4.99687745e+00, 5.04315949e+00,\n 5.08987019e+00, 5.13701354e+00, 5.18459354e+00, 5.23261424e+00,\n 5.28107971e+00, 5.32999408e+00, 5.37936150e+00, 5.42918618e+00,\n 5.47947234e+00, 5.53022426e+00, 5.58144625e+00, 5.63314267e+00,\n 5.68531791e+00, 5.73797641e+00, 5.79112265e+00, 5.84476113e+00,\n 5.89889643e+00, 5.95353313e+00, 6.00867589e+00, 6.06432940e+00,\n 6.12049837e+00, 6.17718760e+00, 6.23440189e+00, 6.29214611e+00,\n 6.35042517e+00, 6.40924402e+00, 6.46860766e+00, 6.52852114e+00,\n 6.58898955e+00, 6.65001803e+00, 6.71161177e+00, 6.77377600e+00,\n 6.83651600e+00, 6.89983712e+00, 6.96374473e+00, 7.02824426e+00,\n 7.09334120e+00, 7.15904109e+00, 7.22534949e+00, 7.29227206e+00,\n 7.35981448e+00, 7.42798248e+00, 7.49678187e+00, 7.56621850e+00,\n 7.63629826e+00, 7.70702711e+00, 7.77841107e+00, 7.85045620e+00,\n 7.92316862e+00, 7.99655453e+00, 8.07062014e+00, 8.14537177e+00,\n 8.22081576e+00, 8.29695852e+00, 8.37380654e+00, 8.45136633e+00,\n 8.52964450e+00, 8.60864770e+00, 8.68838264e+00, 8.76885609e+00,\n 8.85007491e+00, 8.93204600e+00, 9.01477631e+00, 9.09827289e+00,\n 9.18254284e+00, 9.26759330e+00, 9.35343152e+00, 9.44006479e+00,\n 9.52750047e+00, 9.61574600e+00, 9.70480888e+00, 9.79469667e+00,\n 9.88541702e+00, 9.97697764e+00, 1.00693863e+01, 1.01626509e+01,\n 1.02567793e+01, 1.03517796e+01, 1.04476597e+01, 1.05444279e+01,\n 1.06420924e+01, 1.07406615e+01, 1.08401436e+01, 1.09405471e+01,\n 1.10418805e+01, 1.11441525e+01, 1.12473718e+01, 1.13515471e+01,\n 1.14566873e+01, 1.15628013e+01, 1.16698982e+01, 1.17779870e+01,\n 1.18870770e+01, 1.19971774e+01, 1.21082975e+01, 1.22204469e+01,\n 1.23336350e+01, 1.24478715e+01, 1.25631660e+01, 1.26795285e+01,\n 1.27969687e+01, 1.29154967e+01, 1.30351224e+01, 1.31558562e+01,\n 1.32777083e+01, 1.34006890e+01, 1.35248087e+01, 1.36500781e+01,\n 1.37765077e+01, 1.39041083e+01, 1.40328908e+01, 1.41628662e+01,\n 1.42940453e+01, 1.44264395e+01, 1.45600600e+01, 1.46949180e+01,\n 1.48310251e+01, 1.49683929e+01, 1.51070330e+01, 1.52469573e+01,\n 1.53881775e+01, 1.55307057e+01, 1.56745541e+01, 1.58197348e+01,\n 1.59662602e+01, 1.61141428e+01, 1.62633950e+01, 1.64140297e+01,\n 1.65660596e+01, 1.67194976e+01, 1.68743568e+01, 1.70306503e+01,\n 1.71883914e+01, 1.73475936e+01, 1.75082703e+01, 1.76704353e+01,\n 1.78341022e+01, 1.79992851e+01, 1.81659979e+01, 1.83342548e+01,\n 1.85040702e+01, 1.86754584e+01, 1.88484341e+01, 1.90230119e+01,\n 1.91992067e+01, 1.93770334e+01, 1.95565072e+01, 1.97376433e+01,\n 1.99204571e+01, 2.01049642e+01, 2.02911802e+01, 2.04791210e+01,\n 2.06688025e+01, 2.08602409e+01, 2.10534524e+01, 2.12484535e+01,\n 2.14452608e+01, 2.16438909e+01, 2.18443607e+01, 2.20466874e+01,\n 2.22508880e+01, 2.24569800e+01, 2.26649808e+01, 2.28749082e+01,\n 2.30867799e+01, 2.33006141e+01, 2.35164288e+01, 2.37342425e+01,\n 2.39540736e+01, 2.41759408e+01, 2.43998630e+01, 2.46258592e+01,\n 2.48539486e+01, 2.50841506e+01, 2.53164848e+01, 2.55509709e+01,\n 2.57876289e+01, 2.60264788e+01, 2.62675410e+01, 2.65108360e+01,\n 2.67563844e+01, 2.70042072e+01, 2.72543253e+01, 2.75067601e+01,\n 2.77615329e+01, 2.80186656e+01, 2.82781798e+01, 2.85400977e+01,\n 2.88044415e+01, 2.90712338e+01, 2.93404971e+01, 2.96122544e+01,\n 2.98865287e+01, 3.01633435e+01, 3.04427221e+01, 3.07246884e+01,\n 3.10092664e+01, 3.12964801e+01, 3.15863541e+01, 3.18789129e+01,\n 3.21741815e+01, 3.24721849e+01, 3.27729485e+01, 3.30764978e+01,\n 3.33828586e+01, 3.36920571e+01, 3.40041193e+01, 3.43190720e+01,\n 3.46369418e+01, 3.49577557e+01, 3.52815412e+01, 3.56083255e+01,\n 3.59381366e+01, 3.62710025e+01, 3.66069515e+01, 3.69460121e+01,\n 3.72882131e+01, 3.76335836e+01, 3.79821531e+01, 3.83339510e+01,\n 3.86890074e+01, 3.90473524e+01, 3.94090164e+01, 3.97740302e+01,\n 4.01424249e+01, 4.05142317e+01, 4.08894823e+01, 4.12682085e+01,\n 4.16504425e+01, 4.20362168e+01, 4.24255643e+01, 4.28185180e+01,\n 4.32151113e+01, 4.36153779e+01, 4.40193519e+01, 4.44270675e+01,\n 4.48385595e+01, 4.52538628e+01, 4.56730127e+01, 4.60960449e+01,\n 4.65229952e+01, 4.69539001e+01, 4.73887961e+01, 4.78277202e+01,\n 4.82707097e+01, 4.87178022e+01, 4.91690358e+01, 4.96244488e+01,\n 5.00840799e+01, 5.05479682e+01, 5.10161531e+01, 5.14886745e+01,\n 5.19655724e+01, 5.24468875e+01, 5.29326606e+01, 5.34229330e+01,\n 5.39177464e+01, 5.44171429e+01, 5.49211648e+01, 5.54298552e+01,\n 5.59432571e+01, 5.64614142e+01, 5.69843706e+01, 5.75121707e+01,\n 5.80448594e+01, 5.85824820e+01, 5.91250841e+01, 5.96727120e+01,\n 6.02254120e+01, 6.07832313e+01, 6.13462172e+01, 6.19144176e+01,\n 6.24878807e+01, 6.30666554e+01, 6.36507908e+01, 6.42403366e+01,\n 6.48353429e+01, 6.54358602e+01, 6.60419396e+01, 6.66536327e+01,\n 6.72709914e+01, 6.78940681e+01, 6.85229160e+01, 6.91575883e+01,\n 6.97981391e+01, 7.04446228e+01, 7.10970943e+01, 7.17556092e+01,\n 7.24202233e+01, 7.30909933e+01, 7.37679760e+01, 7.44512291e+01,\n 7.51408106e+01, 7.58367791e+01, 7.65391939e+01, 7.72481145e+01,\n 7.79636013e+01, 7.86857151e+01, 7.94145172e+01, 8.01500696e+01,\n 8.08924349e+01, 8.16416760e+01, 8.23978568e+01, 8.31610415e+01,\n 8.39312950e+01, 8.47086827e+01, 8.54932707e+01, 8.62851257e+01,\n 8.70843150e+01, 8.78909065e+01, 8.87049689e+01, 8.95265713e+01,\n 9.03557835e+01, 9.11926760e+01, 9.20373200e+01, 9.28897872e+01,\n 9.37501502e+01, 9.46184819e+01, 9.54948564e+01, 9.63793480e+01,\n 9.72720319e+01, 9.81729841e+01, 9.90822810e+01, 1.00000000e+02])) -> tuple[float, float, int, numpy.ndarray, numpy.ndarray]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools", "modulename": "ultk.effcomm.information_bottleneck.tools", "kind": "module", "doc": "

\n"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.PRECISION", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "PRECISION", "kind": "variable", "doc": "

\n", "default_value": "1e-15"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.get_gaussian_noise", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "get_gaussian_noise", "kind": "function", "doc": "

Small Gaussian noise.

\n", "signature": "(shape):", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.add_noise_to_stochastic_matrix", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "add_noise_to_stochastic_matrix", "kind": "function", "doc": "

Given an input stochastic matrix q, sample a stochastic matrix p and\nmix it with the input with a small weight weight, i.e., return q + weight * p.

\n", "signature": "(q, weight=0.01):", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.random_stochastic_matrix", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "random_stochastic_matrix", "kind": "function", "doc": "

Initialize a stochastic matrix (2D array) that sums to 1 along the rows.

\n\n
Arguments:
\n\n
    \n
  • shape: tuple, the desired shape of the stochastic matrix (e.g., (rows, cols)).
  • \n
  • gamma: float, scaling factor for the random normal initialization.
  • \n
\n\n
Returns:
\n\n
\n

A stochastic matrix with rows summing to 1.

\n
\n", "signature": "(shape, gamma=1e-10):", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.entropy_bits", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "entropy_bits", "kind": "function", "doc": "

Compute entropy of p, $H(X) = - \\sum_x p(x) \\log p(x)$, in bits.

\n", "signature": "(p: numpy.ndarray, axis=None) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.mutual_info", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "mutual_info", "kind": "function", "doc": "

Compute mutual information, $I(X;Y)$ in bits.

\n\n
Arguments:
\n\n
    \n
  • pxy: 2D numpy array of shape (x, y)
  • \n
\n", "signature": "(pxy: numpy.ndarray) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.kl_divergence", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "kl_divergence", "kind": "function", "doc": "

Compute KL divergence (in nats by defaut) between p and q, $D_{KL}[p \\| q]$.

\n\n
Arguments:
\n\n
    \n
  • p: np.ndarray, lhs of KL divergence
  • \n
  • q: np.ndarray, rhs of KL divergence
  • \n
\n", "signature": "(\tp: numpy.ndarray,\tq: numpy.ndarray,\taxis=None,\tbase=2.718281828459045) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.information_cond", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "information_cond", "kind": "function", "doc": "

Compute the mutual information $I(A;B)$ from a joint distribution defind by $P(A)$ and $P(B|A)$

\n\n
Arguments:
\n\n
    \n
  • pA: array of shape |A| the prior probability of an input symbol (i.e., the source)
  • \n
  • pB_A: array of shape (|A|, |B|) the probability of an output symbol given the input
  • \n
\n", "signature": "(pA: numpy.ndarray, pB_A: numpy.ndarray) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.information_bottleneck.tools.compute_lower_bound", "modulename": "ultk.effcomm.information_bottleneck.tools", "qualname": "compute_lower_bound", "kind": "function", "doc": "

Remove all points in a rate-distortion curve that would make it nonmonotonic and\nreturn only the resulting monotonic indices.

\n\n

This is required to remove the random fluctuations in the result induced by the BA algorithm getting stuck in local minima.

\n\n

Acknowledgement: https://github.com/epiasini/embo-github-mirror/blob/master/embo/utils.py#L77.

\n\n
Arguments:
\n\n
    \n
  • rd_points: list of pairs of floats, where each pair represents an estimated (rate, distortion) pair,\nand ordered by increasing rate.
  • \n
\n\n
Returns:
\n\n
\n

selected_indices: 1D numpy array containing the indices of the points selected to ensure monotonically decreasing values.

\n
\n", "signature": "(rd_points):", "funcdef": "def"}, {"fullname": "ultk.effcomm.informativity", "modulename": "ultk.effcomm.informativity", "kind": "module", "doc": "

Functions for measuring informativity in efficient communication analyses of languages.

\n"}, {"fullname": "ultk.effcomm.informativity.build_utility_matrix", "modulename": "ultk.effcomm.informativity", "qualname": "build_utility_matrix", "kind": "function", "doc": "

Construct the square matrix specifying the utility function defined for pairs of meanings, used for computing communicative success.

\n", "signature": "(\tuniverse: ultk.language.semantics.Universe,\tutility: Callable[[ultk.language.semantics.Referent, ultk.language.semantics.Referent], float]) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.informativity.indicator_utility", "modulename": "ultk.effcomm.informativity", "qualname": "indicator_utility", "kind": "function", "doc": "

Indicator utility function, i.e. delta. Returns 1.0 iff ref1 equals ref2.

\n", "signature": "(\tref1: ultk.language.semantics.Referent,\tref2: ultk.language.semantics.Referent) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.informativity.informativity", "modulename": "ultk.effcomm.informativity", "qualname": "informativity", "kind": "function", "doc": "

The informativity of a language is identified with the successful communication between a speaker and a listener.

\n\n

This function is a wrapper for communicative_success.

\n\n
Arguments:
\n\n
    \n
  • language: the language to compute informativity of.
  • \n
  • prior: a probability distribution representing communicative need (frequency) for Referents.
  • \n
  • utility: a function representing the usefulness of listener guesses about speaker Referents, e.g. Referent similarity. To reward only exact recovery of meanings, use the indicator function (default).
  • \n
  • kind: {\"literal, pragmatic\"} Whether to measure informativity using literal or pragmatic agents, as canonically described in the Rational Speech Act framework. The default is \"literal\".
  • \n
\n\n

Concepts:\n The speaker can be thought of as a conditional distribution over expressions given meanings. The listener is likewise a conditional distribution over meanings given expressions. The communicative need, or cognitive source, is a prior probability over meanings representing how frequently agents need to use certain meanings in communication. The utility function represents the similarity, or appropriateness, of the listener's guess m' about the speaker's intended meaning m.

\n\n

Formula:\n The informativity of a language $L$ with meaning space $M$ is defined:

\n\n

$I(L) := \\sum_{m \\in M} p(m) \\sum_{i \\in L} p(i|m) \\sum_{\\hat{m} \\in i} p(\\hat{m}|i) \\cdot u(m, \\hat{m})$

\n\n

Bounds:\n A perfectly informative (=1.0) language can be constructed with a exactly one expression for each meaning.

\n\n
For u() = indicator(), every language has nonzero informativity because a language must contain at least one expression, and an expression must contain at least one meaning.\n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\tprior: numpy.ndarray,\tutility: Callable[[ultk.language.semantics.Referent, ultk.language.semantics.Referent], float] = <function indicator_utility>,\tagent_type: str = 'literal') -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.informativity.communicative_success", "modulename": "ultk.effcomm.informativity", "qualname": "communicative_success", "kind": "function", "doc": "

Helper function to compute the literal informativity of a language.

\n\n

$I(L) = \\sum_{m, \\hat{m}} P(m, \\hat{m}) \\cdot u(m, \\hat{m})$

\n\n

$ = \\sum_{m \\in M} p(m) \\sum_{i \\in L} p(i|m) \\sum_{\\hat{m} \\in i} p(\\hat{m} |i) \\cdot u(m, m')$

\n\n

$ = \\sum \\text{diag}(p)SR \\odot U $

\n\n

For more details, see docs/vectorized_informativity.

\n\n
Arguments:
\n\n
    \n
  • speaker: a literal or pragmatic speaker, containing a matrix S for P(e | m)
  • \n
  • listener: a literal or pragmatic listener, containing a matrix R for P(m | e)
  • \n
  • prior: p(m), distribution over meanings representing communicative need
  • \n
  • utility: a function u(m, m') representing similarity of meanings, or pair-wise usefulness of listener guesses about speaker meanings.
  • \n
\n", "signature": "(\tspeaker: ultk.effcomm.agent.Speaker,\tlistener: ultk.effcomm.agent.Listener,\tprior: numpy.ndarray,\tutility: Callable[[ultk.language.semantics.Referent, ultk.language.semantics.Referent], float]) -> float:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization", "modulename": "ultk.effcomm.optimization", "kind": "module", "doc": "

Classes and functions for generating languages that optimize the simplicity/informativeness trade-off, e.g. via an iterative evolutionary algorithm.

\n"}, {"fullname": "ultk.effcomm.optimization.Mutation", "modulename": "ultk.effcomm.optimization", "qualname": "Mutation", "kind": "class", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.Mutation.precondition", "modulename": "ultk.effcomm.optimization", "qualname": "Mutation.precondition", "kind": "function", "doc": "

Whether a mutation is allowed to apply to a language.

\n", "signature": "(language: ultk.language.language.Language, **kwargs) -> bool:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.Mutation.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "Mutation.mutate", "kind": "function", "doc": "

Mutate the language, possibly using a list of expressions.

\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpressions: list[ultk.language.language.Expression],\t**kwargs) -> ultk.language.language.Language:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.RemoveExpression", "modulename": "ultk.effcomm.optimization", "qualname": "RemoveExpression", "kind": "class", "doc": "

\n", "bases": "Mutation"}, {"fullname": "ultk.effcomm.optimization.RemoveExpression.precondition", "modulename": "ultk.effcomm.optimization", "qualname": "RemoveExpression.precondition", "kind": "function", "doc": "

Whether a mutation is allowed to apply to a language.

\n", "signature": "(language: ultk.language.language.Language, **kwargs) -> bool:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.RemoveExpression.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "RemoveExpression.mutate", "kind": "function", "doc": "

Mutate the language, possibly using a list of expressions.

\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpressions: list[ultk.language.language.Expression],\t**kwargs) -> ultk.language.language.Language:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.AddExpression", "modulename": "ultk.effcomm.optimization", "qualname": "AddExpression", "kind": "class", "doc": "

\n", "bases": "Mutation"}, {"fullname": "ultk.effcomm.optimization.AddExpression.precondition", "modulename": "ultk.effcomm.optimization", "qualname": "AddExpression.precondition", "kind": "function", "doc": "

Whether a mutation is allowed to apply to a language.

\n", "signature": "(language: ultk.language.language.Language, **kwargs) -> bool:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.AddExpression.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "AddExpression.mutate", "kind": "function", "doc": "

Mutate the language, possibly using a list of expressions.

\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpressions: list[ultk.language.language.Expression],\t**kwargs) -> ultk.language.language.Language:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer", "kind": "class", "doc": "

Class for approximating the Pareto frontier of languages optimizing the simplicity/informativity trade-off.

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.__init__", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.__init__", "kind": "function", "doc": "

Initialize the evolutionary algorithm configurations.

\n\n

The measures of complexity and informativity, the expressions, and the mutations are all specific to the particular semantic domain.

\n\n
Arguments:
\n\n
    \n
  • objectives: a dict of the two objectives to optimize for, e.g. simplicity and informativeness, of the form, e.g.\n{\n \"complexity\": comp_measure,\n \"comm_cost\": lambda l: 1 - inf_measure(l)\n}
  • \n
  • expressions: a list of expressions from which to apply mutations to languages.
  • \n
  • sample_size: the size of the population at every generation.
  • \n
  • max_muatations: between 1 and this number of mutations will be applied to a subset of the population at the end of each generation.
  • \n
  • generations: how many iterations to run the evolutionary algorithm for.
  • \n
  • lang_size: between 1 and this number of expressions comprise a language.
  • \n
  • mutations: (optional) a list of Mutation objects, defaults to add/remove expression
  • \n
\n", "signature": "(\tobjectives: list[typing.Callable[[ultk.language.language.Language], typing.Any]],\texpressions: list[ultk.language.language.Expression],\tsample_size: int,\tmax_mutations: int,\tgenerations: int,\tlang_size: int | None = None,\tmutations: tuple[typing.Type[ultk.effcomm.optimization.Mutation], ...] = (<class 'ultk.effcomm.optimization.AddExpression'>, <class 'ultk.effcomm.optimization.RemoveExpression'>))"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.objectives", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.objectives", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.expressions", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.expressions", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.mutations", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.mutations", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_size", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.sample_size", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.max_mutations", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.max_mutations", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.generations", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.generations", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.lang_size", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.lang_size", "kind": "variable", "doc": "

\n", "annotation": ": int"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.dominating_languages", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.dominating_languages", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.explored_languages", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.explored_languages", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.fit", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.fit", "kind": "function", "doc": "

Computes the Pareto frontier, a set languages which cannot be both more simple and more informative.

\n\n

Uses pygmo's nondominated_front method for computing a population's best solutions to a multi-objective optimization problem.

\n\n
Arguments:
\n\n
    \n
  • seed_population: a list of languages representing the population at generation 0 of the algorithm.
  • \n
  • explore: a float in [0,1] representing how much to optimize for fitness\n(optimality wrt pareto front of complexity and comm_cost), and how much to randomly explore.
  • \n
\n\n
Returns:
\n\n
\n

a dict of the estimated optimization solutions, as well as points explored along the way; of the form

\n\n
{\n\"dominating_languages\": list of languages as estimated solutions,\n\"explored_languages\": list of all the languages explored during the evolutionary algorithm,\n}\n
\n
\n", "signature": "(\tself,\tseed_population: list[ultk.language.language.Language],\texplore: float = 0.0) -> dict[str, list[ultk.language.language.Language]]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.sample_mutated", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.sample_mutated", "kind": "function", "doc": "
Arguments:
\n\n
    \n
  • languages: dominating languages of a generation
  • \n
  • amount: sample_size.
  • \n
  • expressions: the list of expressions
  • \n
\n\n
Returns:
\n\n
\n

list of updated languages

\n
\n", "signature": "(\tself,\tlanguages: list[ultk.language.language.Language]) -> list[ultk.language.language.Language]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.EvolutionaryOptimizer.mutate", "modulename": "ultk.effcomm.optimization", "qualname": "EvolutionaryOptimizer.mutate", "kind": "function", "doc": "

Randomly selects a mutation that is allowed to apply and applies it to a language.

\n\n
Arguments:
\n\n
    \n
  • language: the Language to mutate
  • \n
  • expressions: the list of all possible expressions.\nSome mutations need access to this list, so it is part of the mutation api.
  • \n
\n\n
Returns:
\n\n
\n

the mutated Language

\n
\n", "signature": "(\tself,\tlanguage: ultk.language.language.Language) -> ultk.language.language.Language:", "funcdef": "def"}, {"fullname": "ultk.effcomm.optimization.sample_parents", "modulename": "ultk.effcomm.optimization", "qualname": "sample_parents", "kind": "function", "doc": "

Use the explore parameter to explore possibly suboptimal areas of the language space.

\n\n
Arguments:
\n\n
    \n
  • dominating_languages: a list of the languages with current best fitness with respect to the objectives.
  • \n
  • explored_languages: a list of all languages encountered during the evolutionary algorithm.
  • \n
  • explore: a float in [0,1] specifying how much to explore possibly suboptimal languages.\nIf set to 0, parent_languages is just dominating_languages.
  • \n
\n\n
Returns:
\n\n
\n

the languages to serve as the next generation (after possible mutations)

\n
\n", "signature": "(\tdominating_languages: set[ultk.language.language.Language],\texplored_languages: set[ultk.language.language.Language],\texplore: float) -> list[ultk.language.language.Language]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.probability", "modulename": "ultk.effcomm.probability", "kind": "module", "doc": "

\n"}, {"fullname": "ultk.effcomm.probability.PRECISION", "modulename": "ultk.effcomm.probability", "qualname": "PRECISION", "kind": "variable", "doc": "

\n", "default_value": "1e-12"}, {"fullname": "ultk.effcomm.probability.marginal", "modulename": "ultk.effcomm.probability", "qualname": "marginal", "kind": "function", "doc": "

Computer marginals of a joint distribution.

\n\n
Arguments:
\n\n
    \n
  • pXY: a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)
  • \n
  • axis: the axis along which to compute the marginal
  • \n
\n\n
Returns:
\n\n
\n

either pY (axis = 0) or pX (default, axis = 1)

\n
\n", "signature": "(pXY: numpy.ndarray, axis: int = 1) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.probability.joint", "modulename": "ultk.effcomm.probability", "qualname": "joint", "kind": "function", "doc": "

Compute a joint distribution from a conditional and a prior.

\n\n
Arguments:
\n\n
    \n
  • pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
  • \n
  • pX: a prior distribution of shape (|X|,), corresponding to p(x)
  • \n
\n\n
Returns:
\n\n
\n

a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)

\n
\n", "signature": "(pY_X: numpy.ndarray, pX: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.probability.marginalize", "modulename": "ultk.effcomm.probability", "qualname": "marginalize", "kind": "function", "doc": "

Marginalize a conditional distribution (without a detour through the joint).

\n\n
Arguments:
\n\n
    \n
  • pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
  • \n
  • pX: a prior distribution of shape (|X|,), corresponding to p(x)
  • \n
\n\n
Returns:
\n\n
\n

a marginal distribution of shape (|Y|,), corresponding to p(y)

\n
\n", "signature": "(pY_X: numpy.ndarray, pX: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.probability.bayes", "modulename": "ultk.effcomm.probability", "qualname": "bayes", "kind": "function", "doc": "

Perform Bayesian inference, computing p(x|y) from p(y|x) and p(x).

\n\n
Arguments:
\n\n
    \n
  • pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
  • \n
  • pX: a prior distribution of shape (|X|,), corresponding to p(x)
  • \n
\n\n
Returns:
\n\n
\n

a posterior distribution of shape (|Y|, |X|), corresponding to p(x|y)

\n
\n", "signature": "(pY_X: numpy.ndarray, pX: numpy.ndarray) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.sampling", "modulename": "ultk.effcomm.sampling", "kind": "module", "doc": "

Functions for sampling expressions into languages.

\n"}, {"fullname": "ultk.effcomm.sampling.get_hypothetical_variants", "modulename": "ultk.effcomm.sampling", "qualname": "get_hypothetical_variants", "kind": "function", "doc": "

For each system (parameterized by a language or else a speaker), generate num hypothetical variants by permuting the signals that the system assigns to states.

\n\n
Arguments:
\n\n
    \n
  • languages: a list of languages to permute, by constructing LiteralSpeakers and permuting their weights.
  • \n
  • speakers: a list of speakers of a language, whose weights can be directly permuted. Should be used instead of languages if possible, because it can be more finegrained (every language can be associated with multiple speakers).
  • \n
  • total: the total number of hypothetical variants to obtain. Should be greater than the number of languages.
  • \n
\n\n
Returns:
\n\n
\n

hypothetical_variants: a list of type either Language or np.ndarray depending on whether languages or speakers was passed, representing hypothetical variants of the systems passed. If speakers was passed, a list of speakers is returned.

\n
\n", "signature": "(\tlanguages: list[ultk.language.language.Language] = None,\tspeakers: list[ultk.effcomm.agent.Speaker] = None,\ttotal: int = 0) -> list[typing.Any]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.tradeoff", "modulename": "ultk.effcomm.tradeoff", "kind": "module", "doc": "

Functions for constructing an efficient communication analysis by measuring the simplicity/informativeness trade-off languages and formatting results as a dataframe or a plot.

\n"}, {"fullname": "ultk.effcomm.tradeoff.dominates", "modulename": "ultk.effcomm.tradeoff", "qualname": "dominates", "kind": "function", "doc": "

Determine whether p1 dominates p2,\ni.e. whether for every i p1[i] <= p2[i]\nand for some i p1[i] < p2[i].

\n\n
Arguments:
\n\n
    \n
  • p1: a point
  • \n
  • p2: another point
  • \n
\n\n
Returns:
\n\n
\n

whether or not p1 dominates p2

\n
\n", "signature": "(p1: tuple[float, ...], p2: tuple[float, ...]) -> bool:", "funcdef": "def"}, {"fullname": "ultk.effcomm.tradeoff.non_dominated_2d", "modulename": "ultk.effcomm.tradeoff", "qualname": "non_dominated_2d", "kind": "function", "doc": "

Return the non-dominated (Pareto) front of a list of 2-D points, using Kung's algorithm.

\n\n
Arguments:
\n\n
    \n
  • points: A list of 2-D points
  • \n
\n\n
Returns:
\n\n
\n

a list, the indices of points for which no other point is as good on all dimensions\n and better on at least one

\n
\n", "signature": "(points: Sequence[tuple[float, float]]) -> list[int]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.tradeoff.pareto_optimal_languages", "modulename": "ultk.effcomm.tradeoff", "qualname": "pareto_optimal_languages", "kind": "function", "doc": "

Use non_dominated_2d to compute the Pareto languages.

\n", "signature": "(\tlanguages: list[ultk.language.language.Language],\tobjectives: list[typing.Callable[[ultk.language.language.Language], typing.Any]],\tunique: bool = False) -> list[ultk.language.language.Language]:", "funcdef": "def"}, {"fullname": "ultk.effcomm.tradeoff.pareto_min_distances", "modulename": "ultk.effcomm.tradeoff", "qualname": "pareto_min_distances", "kind": "function", "doc": "

Measure the Pareto optimality of each language by measuring its Euclidean closeness to the frontier. The frontier is a line (list of points) interpolated from the pareto points.

\n\n
Arguments:
\n\n
    \n
  • points: the list of all language (x, y) pairs, where x and y are usually communicative cost and complexity.
  • \n
  • pareto_points: the list of all dominant language (x, y) pairs to constitute the Pareto frontier. The points should have been measured by pygmo's non_dominated_front_2d function.
  • \n
\n\n
Returns:
\n\n
\n

min_distances: an array of shape len(points) Euclidean distances for each language to the closest point on the Pareto frontier.

\n
\n", "signature": "(points: list[tuple], pareto_points: list[tuple]) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.tradeoff.interpolate_data", "modulename": "ultk.effcomm.tradeoff", "qualname": "interpolate_data", "kind": "function", "doc": "

Interpolate the points yielded by the pareto optimal languages into a continuous (though not necessarily smooth) curve.

\n\n
Arguments:
\n\n
    \n
  • points: an list of (comm_cost, complexity) pairs of size [dominating_languages], a possibly non-smooth set of solutions to the trade-off.
  • \n
  • min_cost: the minimum communicative cost value possible to interpolate from.
  • \n
  • max_cost: the maximum communicative cost value possible to interpolate from. A natural assumption is to let complexity=0.0 if max_cost=1.0, which will result in a Pareto curve that spans the entire 2d space, and consequently the plot with x and y limits both ranging [0.0, 1.0].
  • \n
  • num: the number of x-axis points (cost) to interpolate. Controls smoothness of curve.
  • \n
\n\n
Returns:
\n\n
\n

interpolated_points: an array of size (num, num)

\n
\n", "signature": "(\tpoints: list[tuple[float]],\tmin_cost: float = 0.0,\tmax_cost: float = 1.0,\tnum=5000) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.effcomm.tradeoff.tradeoff", "modulename": "ultk.effcomm.tradeoff", "qualname": "tradeoff", "kind": "function", "doc": "

Builds a final efficient communication analysis by measuring a list of languages, updating their internal data, and returning the results.

\n\n

This function measures possibly many graded or categorical properties of each language, but minimally the properties of commmunicative cost and complexity. These two measures fully define the results of an efficiency analysis, in the sense they define the optimal solutions.

\n\n
Arguments:
\n\n
    \n
  • languages: A list representing the pool of all languages to be measured for an efficient communication analysis.
  • \n
  • x: the first pressure to measure, e.g. communicative cost.
  • \n
  • y: the second pressure to measure, e.g. cognitive complexity.
  • \n
  • frontier: a list of (comm_cost, complexity) points representing a Pareto frontier to measure optimality w.r.t.
  • \n
\n\n
Returns:
\n\n
\n

a dictionary of the population and the pareto front, of the form

\n\n
{\n    \"languages\": the list of languages, with their internal efficient communication data updated,\n\n    \"dominating_languages\": the list of the languages dominating the population w.r.t. comm_cost and complexity. If no `frontier` is none, this can be considered the Pareto frontier.\n}\n
\n
\n", "signature": "(\tlanguages: list[ultk.language.language.Language],\tproperties: dict[str, typing.Callable[[ultk.language.language.Language], typing.Any]],\tx: str = 'comm_cost',\ty: str = 'complexity',\tfrontier: list[tuple] = None) -> dict[str, list[ultk.language.language.Language]]:", "funcdef": "def"}, {"fullname": "ultk.language", "modulename": "ultk.language", "kind": "module", "doc": "

Classes for modeling (natural or hypothetical) languagese.

\n\n

At the current stage of development, ULTK focuses on supporting abstractions to model the mapping between expressions and meanings of a language. So far, we leave almost everything besides this basic mapping (morphosyntax, phonology, phonetic inventories, among other features of human languages) to future work.

\n\n

The ultk.language.language submodule contains classes for constructing a language, which can contain one or more expressions.

\n\n

The ultk.language.semantics submodule contains classes for defining a universe (meaning space) of referents (denotations) and meanings (categories).

\n"}, {"fullname": "ultk.language.grammar", "modulename": "ultk.language.grammar", "kind": "module", "doc": "

\n"}, {"fullname": "ultk.language.grammar.Rule", "modulename": "ultk.language.grammar", "qualname": "Rule", "kind": "class", "doc": "

Basic class for a grammar rule. Grammar rules in ULTK correspond\nto functions. One can think of a grammar as generating complex functions from\nmore basic ones.

\n\n
Attributes:
\n\n
    \n
  • lhs: left-hand side of the rule (can be anything)\nconceptually, the output type of a function
  • \n
  • rhs: right-hand side; assumed to be an iterable\nconceptually, a list of types of inputs
  • \n
  • func: a callable, the function to be computed when a node with this rule is executed
  • \n
  • name: name of the function
  • \n
  • weight: a relative weight to assign to this rule\nwhen added to a grammar, all rules with the same LHS will be weighted together
  • \n
\n"}, {"fullname": "ultk.language.grammar.Rule.__init__", "modulename": "ultk.language.grammar", "qualname": "Rule.__init__", "kind": "function", "doc": "

\n", "signature": "(\tname: str,\tlhs: Any,\trhs: Sequence | None,\tfunc: Callable = <function Rule.<lambda>>,\tweight: float = 1.0)"}, {"fullname": "ultk.language.grammar.Rule.name", "modulename": "ultk.language.grammar", "qualname": "Rule.name", "kind": "variable", "doc": "

\n", "annotation": ": str"}, {"fullname": "ultk.language.grammar.Rule.lhs", "modulename": "ultk.language.grammar", "qualname": "Rule.lhs", "kind": "variable", "doc": "

\n", "annotation": ": Any"}, {"fullname": "ultk.language.grammar.Rule.rhs", "modulename": "ultk.language.grammar", "qualname": "Rule.rhs", "kind": "variable", "doc": "

\n", "annotation": ": Sequence | None"}, {"fullname": "ultk.language.grammar.Rule.func", "modulename": "ultk.language.grammar", "qualname": "Rule.func", "kind": "function", "doc": "

\n", "signature": "(*args):", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Rule.weight", "modulename": "ultk.language.grammar", "qualname": "Rule.weight", "kind": "variable", "doc": "

\n", "annotation": ": float", "default_value": "1.0"}, {"fullname": "ultk.language.grammar.Rule.is_terminal", "modulename": "ultk.language.grammar", "qualname": "Rule.is_terminal", "kind": "function", "doc": "

Whether this is a terminal rule. In our framework, this means that RHS is empty,\ni.e. there are no arguments to the function.

\n", "signature": "(self) -> bool:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Rule.from_callable", "modulename": "ultk.language.grammar", "qualname": "Rule.from_callable", "kind": "function", "doc": "

Create a Rule from the type-annotations of a function.

\n\n

For example, given the following method definition:

\n\n
\n
def _and(p1: bool, p2: bool) -> bool:\n    return p1 and p2\n
\n
\n\n

This class method will return the Rule:

\n\n
Rule(name=\"_and\", lhs=bool, rhs=(bool, bool), func=_and)\n
\n\n

There are two special kwargs that can be used in the function definition:

\n\n
    \n
  • weight: a float, which will be used as the weight of the rule
  • \n
  • name: a string, which will be used as the name of the rule, if you want it to be different than the name of the method
  • \n
\n", "signature": "(cls, func: Callable) -> ultk.language.grammar.Rule:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.GrammaticalExpression", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression", "kind": "class", "doc": "

A GrammaticalExpression has been built up from a Grammar by applying a sequence of Rules.\nCrucially, it is _callable_, using the functions corresponding to each rule.

\n\n

A GrammaticalExpression, when called, takes in a Referent. Because of this, a Meaning can\nbe generated by specifying a Universe (which contains Referents).

\n\n
Attributes:
\n\n
    \n
  • rule_name: name of the top-most function
  • \n
  • func: the function
  • \n
  • children: child expressions (possibly empty)
  • \n
\n", "bases": "ultk.language.language.Expression[~T]"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.__init__", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.__init__", "kind": "function", "doc": "

\n", "signature": "(\tform: str = '',\tmeaning: ultk.language.semantics.Meaning[~T] = Meaning(mapping=FrozenDict({}), universe=Universe(referents=(), prior=())),\t*,\trule_name: str,\tfunc: Callable,\tchildren: tuple | None,\tterm_expression: str = '')"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.rule_name", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.rule_name", "kind": "variable", "doc": "

\n", "annotation": ": str"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.func", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.func", "kind": "variable", "doc": "

\n", "annotation": ": Callable"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.children", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.children", "kind": "variable", "doc": "

\n", "annotation": ": tuple | None"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.term_expression", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.term_expression", "kind": "variable", "doc": "

\n", "annotation": ": str", "default_value": "''"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.yield_string", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.yield_string", "kind": "function", "doc": "

Get the 'yield' string of this term, i.e. the concatenation\nof the leaf nodes.

\n\n

This is useful for thinking of a Grammar as generating derivation trees for\nan underlying CFG. This method will then generate the strings generated by\nthe corresponding CFG.

\n", "signature": "(self) -> str:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.evaluate", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.evaluate", "kind": "function", "doc": "

\n", "signature": "(\tself,\tuniverse: ultk.language.semantics.Universe) -> ultk.language.semantics.Meaning:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.add_child", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.add_child", "kind": "function", "doc": "

\n", "signature": "(self, child) -> None:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.to_dict", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.to_dict", "kind": "function", "doc": "

Return a dictionary representation of the expression.

\n", "signature": "(self) -> dict:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.GrammaticalExpression.from_dict", "modulename": "ultk.language.grammar", "qualname": "GrammaticalExpression.from_dict", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tthe_dict: dict,\tgrammar: ultk.language.grammar.Grammar) -> ultk.language.grammar.GrammaticalExpression:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.UniquenessArgs", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs", "kind": "class", "doc": "

Arguments for specifying uniqueness of GrammaticalExpressions in a Grammar.

\n\n
Attributes:
\n\n
    \n
  • unique_expressions: a dictionary in which to store unique Expressions
  • \n
  • key: a function used to evaluate uniqueness
  • \n
  • compare_func: a comparison function, used to decide which Expression to add to the dict\nnew Expressions will be added as values to unique_dict only if they are minimal\namong those sharing the same key (by unique_key) according to this func
  • \n
\n", "bases": "typing.TypedDict"}, {"fullname": "ultk.language.grammar.UniquenessArgs.unique_expressions", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs.unique_expressions", "kind": "variable", "doc": "

\n", "annotation": ": dict[typing.Any, dict[typing.Any, ultk.language.grammar.GrammaticalExpression]]"}, {"fullname": "ultk.language.grammar.UniquenessArgs.key", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs.key", "kind": "variable", "doc": "

\n", "annotation": ": Callable[[ultk.language.grammar.GrammaticalExpression], Any]"}, {"fullname": "ultk.language.grammar.UniquenessArgs.compare_func", "modulename": "ultk.language.grammar", "qualname": "UniquenessArgs.compare_func", "kind": "variable", "doc": "

\n", "annotation": ": Callable[[ultk.language.grammar.GrammaticalExpression, ultk.language.grammar.GrammaticalExpression], bool]"}, {"fullname": "ultk.language.grammar.Grammar", "modulename": "ultk.language.grammar", "qualname": "Grammar", "kind": "class", "doc": "

At its core, a Grammar is a set of Rules with methods for generating GrammaticalExpressions.

\n"}, {"fullname": "ultk.language.grammar.Grammar.__init__", "modulename": "ultk.language.grammar", "qualname": "Grammar.__init__", "kind": "function", "doc": "

\n", "signature": "(start: Any)"}, {"fullname": "ultk.language.grammar.Grammar.add_rule", "modulename": "ultk.language.grammar", "qualname": "Grammar.add_rule", "kind": "function", "doc": "

\n", "signature": "(self, rule: ultk.language.grammar.Rule):", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.parse", "modulename": "ultk.language.grammar", "qualname": "Grammar.parse", "kind": "function", "doc": "

Parse a string representation of an expression of a grammar.\nNote that this is not a general-purpose parsing algorithm. We assume that the strings are of the form\n parent_name(child1_name, ..., childn_name)\nwhere parent_name is the name of a rule of this grammar that has a length-n RHS, and that\nchildi_name is the name of a rule for each child i.

\n\n
Arguments:
\n\n
    \n
  • expression: string in the above format
  • \n
\n\n
Returns:
\n\n
\n

the corresponding GrammaticalExpression

\n
\n", "signature": "(\tself,\texpression: str,\topener: str = '(',\tcloser: str = ')',\tdelimiter: str = ',') -> ultk.language.grammar.GrammaticalExpression:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.generate", "modulename": "ultk.language.grammar", "qualname": "Grammar.generate", "kind": "function", "doc": "

Generate an expression from a given lhs.

\n", "signature": "(self, lhs: Any = None) -> ultk.language.grammar.GrammaticalExpression:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.enumerate", "modulename": "ultk.language.grammar", "qualname": "Grammar.enumerate", "kind": "function", "doc": "

Enumerate all expressions from the grammar up to a given depth from a given LHS.\nThis method also can update a specified dictionary to store only _unique_ expressions, with\na user-specified criterion of uniqueness.

\n\n
Arguments:
\n\n
    \n
  • depth: how deep the trees should be
  • \n
  • lhs: left hand side to start from; defaults to the grammar's start symbol
  • \n
  • uniqueness_args: a dictionary specifying the parameters for uniqueness:\nunique_dict: a dictionary in which to store unique Expressions\nkey: a function used to evaluate uniqueness\ncompare_func: a comparison function, used to decide which Expression to add to the dict\n new Expressions will be added as values to unique_dict only if they are _minimal_\n among those sharing the same key (by unique_key) according to this func
  • \n
\n\n
Yields:
\n\n
\n

all GrammaticalExpressions up to depth

\n
\n", "signature": "(\tself,\tdepth: int = 8,\tlhs: Any = None,\tuniqueness_args: ultk.language.grammar.UniquenessArgs | None = None) -> Generator[ultk.language.grammar.GrammaticalExpression, NoneType, NoneType]:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.enumerate_at_depth", "modulename": "ultk.language.grammar", "qualname": "Grammar.enumerate_at_depth", "kind": "function", "doc": "

Enumerate GrammaticalExpressions for this Grammar _at_ a fixed depth.

\n", "signature": "(\tself,\tdepth: int,\tlhs: Any,\tuniqueness_args: ultk.language.grammar.UniquenessArgs | None = None,\tcache: dict | None = None) -> Generator[ultk.language.grammar.GrammaticalExpression, NoneType, NoneType]:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.get_unique_expressions", "modulename": "ultk.language.grammar", "qualname": "Grammar.get_unique_expressions", "kind": "function", "doc": "

Get all unique GrammaticalExpressions, up to a certain depth, with a user-specified criterion\nof uniqueness, and a specified comparison function for determining which Expression to save when there's a clash.\nThis can be used, for instance, to measure the minimum description length of some\nMeanings, by using expression.evaluate(), which produces a Meaning for an Expression, as the\nkey for determining uniqueness, and length of the expression as comparison.

\n\n

This is a wrapper around enumerate, but which produces the dictionary of key->Expression entries\nand returns it. (enumerate is a generator with side effects).

\n\n

For Args, see the docstring for enumerate.

\n\n

Note: if you additionally want to store _all_ expressions, and not just the unique ones, you should\ndirectly use enumerate.

\n\n
Returns:
\n\n
\n

dictionary of {key: GrammaticalExpression}, where the keys are generated by unique_key\n The GrammticalExpression which is the value will be the one that is minimum among\n compare_func amongst all Expressions up to depth which share the same key

\n
\n", "signature": "(\tself,\tdepth: int,\tunique_key: Callable[[ultk.language.grammar.GrammaticalExpression], Any],\tcompare_func: Callable[[ultk.language.grammar.GrammaticalExpression, ultk.language.grammar.GrammaticalExpression], bool],\tlhs: Any = None,\tmax_size: float = inf) -> dict[typing.Any, ultk.language.grammar.GrammaticalExpression]:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.get_all_rules", "modulename": "ultk.language.grammar", "qualname": "Grammar.get_all_rules", "kind": "function", "doc": "

Get all rules as a list.

\n", "signature": "(self) -> list[ultk.language.grammar.Rule]:", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.from_yaml", "modulename": "ultk.language.grammar", "qualname": "Grammar.from_yaml", "kind": "function", "doc": "

Read a grammar specified in a simple YAML format.

\n\n

Expected format:

\n\n
start: bool\nrules:\n- lhs: bool\n  rhs:\n  - bool\n  - bool\n  name: \"and\"\n  func: \"lambda p1, p2 : p1 and p2\"\n- lhs: bool\n  rhs:\n  - bool\n  - bool\n  name: \"or\"\n  func: \"lambda p1, p2 : p1 or p2\"\n
\n\n

Note that for each fule, the value for func will be passed to\neval, so be careful!

\n\n
Arguments:
\n\n
    \n
  • filename: file containing a grammar in the above format
  • \n
\n", "signature": "(cls, filename: str):", "funcdef": "def"}, {"fullname": "ultk.language.grammar.Grammar.from_module", "modulename": "ultk.language.grammar", "qualname": "Grammar.from_module", "kind": "function", "doc": "

Read a grammar from a module.

\n\n

The module should have a list of type-annotated method definitions, each of which will correspond to one Rule in the new Grammar.\nSee the docstring for Rule.from_callable for more information on how that step works.

\n\n

The start symbol of the grammar can either be specified by start = XXX somewhere in the module,\nor will default to the LHS of the first rule in the module (aka the return type annotation of the first method definition).

\n\n
Arguments:
\n\n
    \n
  • module_name: name of the module
  • \n
\n", "signature": "(cls, module_name: str) -> ultk.language.grammar.Grammar:", "funcdef": "def"}, {"fullname": "ultk.language.language", "modulename": "ultk.language.language", "kind": "module", "doc": "

Classes for modeling languages as form-meaning mappings, most important among them the Language and Expression classes.

\n\n
Example usage:
\n\n
\n
\n
>>> from ultk.language.language import Expression, Language\n>>> # assuming the meaning `a_few_meaning` has already been constructed\n>>> # define the expression\n>>> a_few = NumeralExpression(form="a few", meaning=a_few_meaning)\n>>> # define a very small language\n>>> lang_1 = Language([a_few])\n>>> # or a slightly larger one with synonymy\n>>> lang_2 = Language([a_few] * 3)\n
\n
\n
\n"}, {"fullname": "ultk.language.language.Expression", "modulename": "ultk.language.language", "qualname": "Expression", "kind": "class", "doc": "

Minimally contains a form and a meaning.

\n", "bases": "typing.Generic[~T]"}, {"fullname": "ultk.language.language.Expression.__init__", "modulename": "ultk.language.language", "qualname": "Expression.__init__", "kind": "function", "doc": "

\n", "signature": "(\tform: str = '',\tmeaning: ultk.language.semantics.Meaning[~T] = Meaning(mapping=FrozenDict({}), universe=Universe(referents=(), prior=())))"}, {"fullname": "ultk.language.language.Expression.form", "modulename": "ultk.language.language", "qualname": "Expression.form", "kind": "variable", "doc": "

\n", "annotation": ": str", "default_value": "''"}, {"fullname": "ultk.language.language.Expression.meaning", "modulename": "ultk.language.language", "qualname": "Expression.meaning", "kind": "variable", "doc": "

\n", "annotation": ": ultk.language.semantics.Meaning[~T]", "default_value": "Meaning(mapping=FrozenDict({}), universe=Universe(referents=(), prior=()))"}, {"fullname": "ultk.language.language.Expression.can_express", "modulename": "ultk.language.language", "qualname": "Expression.can_express", "kind": "function", "doc": "

Return True if the expression can express the input single meaning point and false otherwise.

\n", "signature": "(self, referent: ultk.language.semantics.Referent) -> bool:", "funcdef": "def"}, {"fullname": "ultk.language.language.Expression.to_dict", "modulename": "ultk.language.language", "qualname": "Expression.to_dict", "kind": "function", "doc": "

Return a dictionary representation of the expression.

\n", "signature": "(self) -> dict:", "funcdef": "def"}, {"fullname": "ultk.language.language.Language", "modulename": "ultk.language.language", "qualname": "Language", "kind": "class", "doc": "

Minimally contains Expression objects.

\n"}, {"fullname": "ultk.language.language.Language.__init__", "modulename": "ultk.language.language", "qualname": "Language.__init__", "kind": "function", "doc": "

\n", "signature": "(expressions: tuple[ultk.language.language.Expression, ...], **kwargs)"}, {"fullname": "ultk.language.language.Language.universe", "modulename": "ultk.language.language", "qualname": "Language.universe", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.language.language.Language.expressions", "modulename": "ultk.language.language", "qualname": "Language.expressions", "kind": "variable", "doc": "

\n", "annotation": ": frozenset[ultk.language.language.Expression]"}, {"fullname": "ultk.language.language.Language.add_expression", "modulename": "ultk.language.language", "qualname": "Language.add_expression", "kind": "function", "doc": "

Add an expression to the list of expressions in a language.

\n", "signature": "(self, e: ultk.language.language.Expression):", "funcdef": "def"}, {"fullname": "ultk.language.language.Language.is_natural", "modulename": "ultk.language.language", "qualname": "Language.is_natural", "kind": "function", "doc": "

Whether a language represents a human natural language.

\n", "signature": "(self) -> bool:", "funcdef": "def"}, {"fullname": "ultk.language.language.Language.degree_property", "modulename": "ultk.language.language", "qualname": "Language.degree_property", "kind": "function", "doc": "

Count what percentage of expressions in a language have a given property.

\n", "signature": "(\tself,\tproperty: Callable[[ultk.language.language.Expression], bool]) -> float:", "funcdef": "def"}, {"fullname": "ultk.language.language.Language.binary_matrix", "modulename": "ultk.language.language", "qualname": "Language.binary_matrix", "kind": "function", "doc": "

Get a binary matrix of shape (num_meanings, num_expressions)\nspecifying which expressions can express which meanings.

\n", "signature": "(self) -> numpy.ndarray:", "funcdef": "def"}, {"fullname": "ultk.language.language.Language.as_dict_with_properties", "modulename": "ultk.language.language", "qualname": "Language.as_dict_with_properties", "kind": "function", "doc": "

Return a dictionary representation of the language, including additional properties as keyword arguments.

\n\n

This is used in some examples to serialize the language to outputs.

\n", "signature": "(self, **kwargs) -> dict:", "funcdef": "def"}, {"fullname": "ultk.language.language.aggregate_expression_complexity", "modulename": "ultk.language.language", "qualname": "aggregate_expression_complexity", "kind": "function", "doc": "

Aggregate complexities for individual Expressions into a complexity for a Language.

\n\n
Arguments:
\n\n
    \n
  • language: the Language to measure
  • \n
  • expression_complexity_func: the function that returns the complexity of an individual expression
  • \n
  • aggregator: (optional, default = sum) the function that aggregates individual complexities
  • \n
\n\n
Returns:
\n\n
\n

a float, the complexity of a language

\n
\n", "signature": "(\tlanguage: ultk.language.language.Language,\texpression_complexity_func: Callable[[ultk.language.language.Expression], float],\taggregator: Callable[[Iterable[float]], float] = <built-in function sum>) -> float:", "funcdef": "def"}, {"fullname": "ultk.language.sampling", "modulename": "ultk.language.sampling", "kind": "module", "doc": "

\n"}, {"fullname": "ultk.language.sampling.powerset", "modulename": "ultk.language.sampling", "qualname": "powerset", "kind": "function", "doc": "

Enumerate all _non-empty_ subsets of an iterable up to a given maximum size, e.g.:\npowerset([1,2,3]) --> (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)

\n\n

lightly adapted from itertools Recipes at\nhttps://docs.python.org/3/library/itertools.html#itertools-recipes

\n\n
Arguments:
\n\n
    \n
  • iterable: elements from which to form subsets
  • \n
  • max_size: largest subsets (inclusive) to return
  • \n
\n\n
Returns:
\n\n
\n

iterator over all subsets from size 1 to max_size of elements from iterable

\n
\n", "signature": "(iterable: Iterable, max_size: int | None = None) -> Iterable:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.all_meanings", "modulename": "ultk.language.sampling", "qualname": "all_meanings", "kind": "function", "doc": "

Generate all Meanings (sets of Referents) from a given Universe.

\n", "signature": "(\tuniverse: ultk.language.semantics.Universe) -> Generator[ultk.language.semantics.Meaning, NoneType, NoneType]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.all_expressions", "modulename": "ultk.language.sampling", "qualname": "all_expressions", "kind": "function", "doc": "

Generate Expressions from an iterable of Meanings.

\n", "signature": "(\tmeanings: Iterable[ultk.language.semantics.Meaning]) -> Generator[ultk.language.language.Expression, NoneType, NoneType]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.all_languages", "modulename": "ultk.language.sampling", "qualname": "all_languages", "kind": "function", "doc": "

Generate all Languages (sets of Expressions) from a given set of Expressions.

\n\n
Arguments:
\n\n
    \n
  • expressions: iterable of all possible expressions
  • \n
  • language_class: the type of language to generate
  • \n
  • max_size: largest size for a language; if None, all subsets of expressions will be used
  • \n
\n\n
Yields:
\n\n
\n

Languages with subsets of Expressions from expressions

\n
\n", "signature": "(\texpressions: Iterable[ultk.language.language.Expression],\tlanguage_class: Type[ultk.language.language.Language] = <class 'ultk.language.language.Language'>,\tmax_size: int | None = None) -> Generator[ultk.language.language.Language, NoneType, NoneType]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.upto_comb", "modulename": "ultk.language.sampling", "qualname": "upto_comb", "kind": "function", "doc": "

Return the number of ways of choosing _up to max_k_ items from\nn items without repetition. Just an iterator of math.comb for n from\n1 to max_k.

\n", "signature": "(num: int, max_k: int) -> int:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.random_languages", "modulename": "ultk.language.sampling", "qualname": "random_languages", "kind": "function", "doc": "

Generate unique Languages by randomly sampling subsets of Expressions, either in a uniform or stratified way.\nIf there are fewer than sample_size possible Languages up to size max_size,\nthis method will just return all languages up to that size (and so the sample may\nbe smaller than sample_size).

\n\n

Some use cases:

\n\n

With sample_size=None, get all languages.

\n\n
\n
>>> random_languages(expressions)\n
\n
\n\n

With sample_size and uniform sampling, get random languages:

\n\n
\n
>>> random_languages(expressions, sample_size=1000)\n
\n
\n\n

Stratified sampling, with and without a max_size:

\n\n
\n
>>> random_languages(expressions, sample_size=1000, sampling_strategy="stratified")\n>>> random_languages(expressions, sample_size=1000, sampling_strategy="stratified", max_size=10)\n
\n
\n\n
Arguments:
\n\n
    \n
  • expressions: all possible expressions
  • \n
  • sampling_strategy: how to sample subsets of expressions\nuniform: for every expression, choose whether or not to include it in a given language\nstratified: first sample a size for a Language, then choose that many random Expressions\n (i) this has the effect of \"upsampling\" from smaller Language sizes\n (ii) this can be used with max_size to only generate Languages up to a given number of expressions
  • \n
  • sample_size: how many languages to return\nif None, will return all languages up to max_size
  • \n
  • language_class: type of Language
  • \n
  • max_size: largest possible Language to generate\nif None, will be the length of expressions\nNB: this argument has no effect when sampling_strategy is \"uniform\"
  • \n
\n\n
Returns:
\n\n
\n

a list of randomly sampled Languages

\n
\n", "signature": "(\texpressions: Iterable[ultk.language.language.Expression],\tsampling_strategy: str = 'uniform',\tsample_size: int | None = None,\tlanguage_class: Type[ultk.language.language.Language] = <class 'ultk.language.language.Language'>,\tmax_size: int | None = None) -> list[ultk.language.language.Language]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.generate_languages", "modulename": "ultk.language.sampling", "qualname": "generate_languages", "kind": "function", "doc": "

Generate languages by randomly sampling vocabularies as bags of expressions.

\n\n

A predicate (binary-valued property) of expressions may be supplied, which can be used to adjust the composition of vocabularies (e.g., by the percent of expressions satisfying the predicate).

\n\n

If sample size <= nCr, then take a random sample_size set of combinations. Otherwise, to prevent repeat languages, treat nCr as the sample size.

\n\n
Arguments:
\n\n
    \n
  • expressions: a list of the possible expressions to sample from.
  • \n
  • lang_size: the maximum (or exact) number of expressions in each language.
  • \n
  • sample_size: the number of languages to generate.
  • \n
  • criterion: the predicate, (e.g. semantic universal) by which to split the expressions into those satisfying and those not, and then sample languages with degrees of naturalness based on the percentage from those satisfying. Must apply at the expression level. By default is a trivial criterion, so that all expressions are 'quasi-natural'.
  • \n
  • fixed_wordcount: whether to vary the language size from 1 to lang_size.
  • \n
  • verbose: How detailed the progress of sampling should be, printed to stdout.
  • \n
  • dummy_name: the default name to give to each sampled language, e.g. sampled_lang_42. These should not collide with any actual natural language names if the efficient communication experiment does use natural language data.
  • \n
  • id_start: an integer representing the number of languages already generated in an experiment. Languages sampled will be named according to this number. For example, if id_start is 0, the first language sampled will be named sampled_lang_0. Note that the largest id does not necessarily track the actual size of languages saved for the experiment, but it does track how many languages have been generated.
  • \n
  • exact_sample: a boolean representing whether to sample until the exact sample size is filled. If True, the resulting pool of languages may not be unique.
  • \n
  • verbose: a boolean representing how verbose output should be during sampling.
  • \n
\n\n
Returns:
\n\n
\n

a dict representing the generated pool of languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n\n
Examples:
\n\n
\n
\n
>>> # Turn the knob on a universal property for modals\n>>> expressions = load_expressions(expressions_file)\n>>> universal_property = iff\n>>> result = generate_languages(\n...    ModalLanguage,\n...    expressions,\n...    lang_size,\n...    sample_size,\n...    universal_property,\n...)\n>>> languages = result["languages"]\n>>> id_start = result["id_start"]\n
\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\texpressions: list[ultk.language.language.Expression],\tlang_size: int,\tsample_size: int,\tcriterion: Callable[[ultk.language.language.Expression], bool] = <function <lambda>>,\tfixed_wordcount=False,\tdummy_name='sampled_lang_',\tid_start: int = 0,\texact_sample=False,\tverbose=False) -> dict[str, typing.Any]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.sample_lang_size", "modulename": "ultk.language.sampling", "qualname": "sample_lang_size", "kind": "function", "doc": "

Get a sample of languages each of exactly lang_size.

\n\n
Arguments:
\n\n
    \n
  • language_class: a subclass of ultk.Language
  • \n
  • expressions: a list of Expressions to sample from
  • \n
  • lang_size: int representing the maximum language size to sample
  • \n
  • sample_size: int representing the number of total languages to return
  • \n
  • id_start: an int representing the number of languages already generated in an experiment.
  • \n
\n\n
Returns:
\n\n
\n

a dict containing the randomly sampled languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\texpressions: list[ultk.language.language.Expression],\tlang_size: int,\tsample_size: int,\tid_start: int = 0,\tverbose=False,\tdummy_name='sampled_lang_id') -> dict[str, typing.Any]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.sample_quasi_natural", "modulename": "ultk.language.sampling", "qualname": "sample_quasi_natural", "kind": "function", "doc": "

Turn the knob on degree quasi-naturalness for a sample of languages, either by enumerating or randomly sampling unique subsets of all possible combinations.

\n\n
Arguments:
\n\n
    \n
  • natural_terms: expressions satisfying some criteria of quasi-naturalness, e.g, a semantic universal.
  • \n
  • unnatural_terms: expressions not satisfying the criteria.
  • \n
  • lang_size: the exact number of expressions a language must have.
  • \n
  • sample_size: how many languages to sample.
  • \n
\n\n
Returns:
\n\n
\n

a dict containing the randomly sampled quasi-natural languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\tnatural_terms: list[ultk.language.language.Expression],\tunnatural_terms: list[ultk.language.language.Expression],\tlang_size: int,\tsample_size: int,\tid_start: int,\tdummy_name='sampled_lang_id',\tverbose=False) -> dict[str, typing.Any]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.rename_id", "modulename": "ultk.language.sampling", "qualname": "rename_id", "kind": "function", "doc": "

Updates a string of form sampled_lang_X with a new id for X.

\n", "signature": "(name: str, id: int) -> str:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.enumerate_all_languages", "modulename": "ultk.language.sampling", "qualname": "enumerate_all_languages", "kind": "function", "doc": "

When the sample size requested is greater than the size of all possible languages, just enumerate all the possible languages.

\n\n
Arguments:
\n\n
    \n
  • language_class: the kind of Language to construct
  • \n
  • id_start: a number to start counting from for assigning names with numerical ids to languages.
  • \n
  • natural_indices: the indices of quasi-natural languages already seen
  • \n
  • num_natural: the number of quasi-natural languages to sample
  • \n
  • natural_terms: the list of quasi-natural terms to sample from
  • \n
  • unnatural_indices: the indices of non-quasi-natural languages already seen
  • \n
  • num_unnatural: the number of non-quasi-natural languages to sample; 0 by default
  • \n
  • unnatural_terms: the list of non-quasi-natural terms to sample from; empty by default.
  • \n
  • dummy_name: the format of the string to name each language constructed.
  • \n
\n\n
Returns:
\n\n
\n

a dict containing a set of languages and the updated id_start, of the form

\n\n
{\n    \"languages\": (list of updated languages)\n    \"id_start\": (updated length of languages)\n}\n
\n
\n", "signature": "(\tlanguage_class: Type[ultk.language.language.Language],\tid_start: int,\tnatural_terms: list[ultk.language.language.Expression],\tnatural_indices: list[int],\tnum_natural: int = 0,\tunnatural_terms: list[ultk.language.language.Expression] = [],\tunnatural_indices: list[int] = [],\tnum_unnatural: int = 0,\tdummy_name='sampled_lang_id',\tverbose=False) -> dict[str, typing.Any]:", "funcdef": "def"}, {"fullname": "ultk.language.sampling.random_combination_vocabulary", "modulename": "ultk.language.sampling", "qualname": "random_combination_vocabulary", "kind": "function", "doc": "

Get a single vocabulary for a specific language size by choosing a random combination of natural and unnatural terms.

\n\n
Arguments:
\n\n
    \n
  • seen: the list of language indices already seen
  • \n
  • num_natural: int
  • \n
  • natural_terms: list[Expression]
  • \n
  • num_unnatural: int=0
  • \n
  • unnatural_terms: list[Expression]=[]
  • \n
\n\n
Returns:
\n\n
\n

languages: the extended list of input languages.

\n
\n", "signature": "(\tseen: set,\tnum_natural: int,\tnatural_terms: list[ultk.language.language.Expression],\tnum_unnatural: int = 0,\tunnatural_terms: list[ultk.language.language.Expression] = []) -> list[ultk.language.language.Expression]:", "funcdef": "def"}, {"fullname": "ultk.language.semantics", "modulename": "ultk.language.semantics", "kind": "module", "doc": "

Classes for modeling the meanings of a language.

\n\n

Meanings are modeled as things which map linguistic forms to objects of reference. The linguistic forms and objects of reference can in principle be very detailed, and future work may elaborate the meaning classes and implement a Form class.

\n\n

In efficient communication analyses, simplicity and informativeness can be measured as properties of semantic aspects of a language. E.g., a meaning is simple if it is easy to represent, or to compress into some code; a meaning is informative if it is easy for a listener to recover a speaker's intended literal meaning.

\n\n
Examples:
\n\n
\n
\n
>>> from ultk.language.semantics import Referent, Meaning, Universe\n>>> from ultk.language.language import Expression\n>>> # construct the meaning space for numerals\n>>> numerals_universe = NumeralUniverse(referents=[NumeralReferent(str(i)) for i in range(1, 100)])\n>>> # construct a list of referents for the expression 'a few'\n>>> a_few_refs = [NumeralReferent(name=str(i)) for i in range(2, 6)]\n>>> a_few_meaning = NumeralMeaning(referents=a_few_refs, universe=numerals_universe)\n>>> # define the expression\n>>> a_few = NumeralExpression(form="a few", meaning=a_few_meaning)\n
\n
\n
\n"}, {"fullname": "ultk.language.semantics.Referent", "modulename": "ultk.language.semantics", "qualname": "Referent", "kind": "class", "doc": "

A referent is some object in the universe for a language.

\n\n

Conceptually, a Referent can be any kind of object. This functions like a generic python object that is _immutable_ after initialization.\nAt initialization, properties can be specified either by passing a dictionary or by keyword arguments.

\n"}, {"fullname": "ultk.language.semantics.Referent.__init__", "modulename": "ultk.language.semantics", "qualname": "Referent.__init__", "kind": "function", "doc": "

Initialize a referent.

\n\n
Arguments:
\n\n
    \n
  • name: a string representing the name of the referent
  • \n
\n", "signature": "(name: str, properties: dict[str, typing.Any] = {}, **kwargs)"}, {"fullname": "ultk.language.semantics.Referent.name", "modulename": "ultk.language.semantics", "qualname": "Referent.name", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.language.semantics.Universe", "modulename": "ultk.language.semantics", "qualname": "Universe", "kind": "class", "doc": "

The universe is the collection of possible referent objects for a meaning.

\n"}, {"fullname": "ultk.language.semantics.Universe.__init__", "modulename": "ultk.language.semantics", "qualname": "Universe.__init__", "kind": "function", "doc": "

\n", "signature": "(\treferents: tuple[ultk.language.semantics.Referent, ...],\tprior: tuple[float, ...])"}, {"fullname": "ultk.language.semantics.Universe.referents", "modulename": "ultk.language.semantics", "qualname": "Universe.referents", "kind": "variable", "doc": "

\n", "annotation": ": tuple[ultk.language.semantics.Referent, ...]"}, {"fullname": "ultk.language.semantics.Universe.prior", "modulename": "ultk.language.semantics", "qualname": "Universe.prior", "kind": "variable", "doc": "

\n", "annotation": ": tuple[float, ...]"}, {"fullname": "ultk.language.semantics.Universe.size", "modulename": "ultk.language.semantics", "qualname": "Universe.size", "kind": "variable", "doc": "

\n"}, {"fullname": "ultk.language.semantics.Universe.prior_numpy", "modulename": "ultk.language.semantics", "qualname": "Universe.prior_numpy", "kind": "variable", "doc": "

\n", "annotation": ": numpy.ndarray"}, {"fullname": "ultk.language.semantics.Universe.from_dataframe", "modulename": "ultk.language.semantics", "qualname": "Universe.from_dataframe", "kind": "function", "doc": "

Build a Universe from a DataFrame.\nIt's assumed that each row specifies one Referent, and each column will be a property\nof that Referent. We assume that name is one of the columns of the DataFrame.

\n\n
Arguments:
\n\n
    \n
  • a DataFrame representing the meaning space of interest, assumed to have a column name
  • \n
\n", "signature": "(cls, df: pandas.core.frame.DataFrame):", "funcdef": "def"}, {"fullname": "ultk.language.semantics.Universe.from_csv", "modulename": "ultk.language.semantics", "qualname": "Universe.from_csv", "kind": "function", "doc": "

Build a Universe from a CSV file. This is a small wrapper around\nUniverse.from_dataframe, so see that documentation for more information.

\n", "signature": "(cls, filename: str):", "funcdef": "def"}, {"fullname": "ultk.language.semantics.Meaning", "modulename": "ultk.language.semantics", "qualname": "Meaning", "kind": "class", "doc": "

A meaning maps Referents to any type of object.

\n\n

For instance, sentence meanings are often modeled as sets of points (e.g. possible worlds).\nThese correspond to mappings from points (i.e. Referents) to truth values, corresponding to the characteristic function of a set.\nBut, in general, meanings can have a different output type for, e.g. sub-sentential meanings..

\n\n
Properties:
\n\n
\n

mapping: a FrozenDict with Referent keys, but arbitrary type T as values.

\n \n

universe: a Universe object. The Referents in the keys of mapping are expected to be exactly those in universe.

\n \n

_dist: a mapping representing a probability distribution over referents to associate with the meaning. By default, will be assumed to be uniform over the \"true-like\" Referents in mapping (see .dist).

\n
\n", "bases": "typing.Generic[~T]"}, {"fullname": "ultk.language.semantics.Meaning.__init__", "modulename": "ultk.language.semantics", "qualname": "Meaning.__init__", "kind": "function", "doc": "

\n", "signature": "(\tmapping: ultk.util.frozendict.FrozenDict[ultk.language.semantics.Referent, ~T],\tuniverse: ultk.language.semantics.Universe)"}, {"fullname": "ultk.language.semantics.Meaning.mapping", "modulename": "ultk.language.semantics", "qualname": "Meaning.mapping", "kind": "variable", "doc": "

\n", "annotation": ": ultk.util.frozendict.FrozenDict[ultk.language.semantics.Referent, ~T]"}, {"fullname": "ultk.language.semantics.Meaning.universe", "modulename": "ultk.language.semantics", "qualname": "Meaning.universe", "kind": "variable", "doc": "

\n", "annotation": ": ultk.language.semantics.Universe"}, {"fullname": "ultk.language.semantics.Meaning.dist", "modulename": "ultk.language.semantics", "qualname": "Meaning.dist", "kind": "variable", "doc": "

\n", "annotation": ": ultk.util.frozendict.FrozenDict[ultk.language.semantics.Referent, float]"}, {"fullname": "ultk.language.semantics.Meaning.is_uniformly_false", "modulename": "ultk.language.semantics", "qualname": "Meaning.is_uniformly_false", "kind": "function", "doc": "

Return True if all referents in the meaning are mapped to False (or coercible to False).In the case where the meaning type is boolean, this corresponds to the characteristic function of the empty set.

\n", "signature": "(self) -> bool:", "funcdef": "def"}, {"fullname": "ultk.util", "modulename": "ultk.util", "kind": "module", "doc": "

Various utility classes and helper functions for the ULTK package.

\n\n

Submodules:

\n\n
    \n
  • frozendict: An immutable dictionary, so that various mappings (e.g. Meanings) can be hashed, serialized, etc.
  • \n
  • io: some basic input/output functions.
  • \n
\n"}, {"fullname": "ultk.util.frozendict", "modulename": "ultk.util.frozendict", "kind": "module", "doc": "

\n"}, {"fullname": "ultk.util.frozendict.FrozenDict", "modulename": "ultk.util.frozendict", "qualname": "FrozenDict", "kind": "class", "doc": "

\n", "bases": "dict[~K, ~V], typing.Generic[~K, ~V], yaml.YAMLObject"}, {"fullname": "ultk.util.frozendict.FrozenDict.clear", "modulename": "ultk.util.frozendict", "qualname": "FrozenDict.clear", "kind": "function", "doc": "

D.clear() -> None. Remove all items from D.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "ultk.util.frozendict.FrozenDict.pop", "modulename": "ultk.util.frozendict", "qualname": "FrozenDict.pop", "kind": "function", "doc": "

D.pop(k[,d]) -> v, remove specified key and return the corresponding value.

\n\n

If the key is not found, return the default if given; otherwise,\nraise a KeyError.

\n", "signature": "(self, key, default=None):", "funcdef": "def"}, {"fullname": "ultk.util.frozendict.FrozenDict.popitem", "modulename": "ultk.util.frozendict", "qualname": "FrozenDict.popitem", "kind": "function", "doc": "

Remove and return a (key, value) pair as a 2-tuple.

\n\n

Pairs are returned in LIFO (last-in, first-out) order.\nRaises KeyError if the dict is empty.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "ultk.util.frozendict.FrozenDict.setdefault", "modulename": "ultk.util.frozendict", "qualname": "FrozenDict.setdefault", "kind": "function", "doc": "

Insert key with a value of default if key is not in the dictionary.

\n\n

Return the value for key if key is in the dictionary, else default.

\n", "signature": "(self, key, default=None):", "funcdef": "def"}, {"fullname": "ultk.util.frozendict.FrozenDict.update", "modulename": "ultk.util.frozendict", "qualname": "FrozenDict.update", "kind": "function", "doc": "

D.update([E, ]**F) -> None. Update D from dict/iterable E and F.\nIf E is present and has a .keys() method, then does: for k in E: D[k] = E[k]\nIf E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v\nIn either case, this is followed by: for k in F: D[k] = F[k]

\n", "signature": "(self, *args, **kwargs):", "funcdef": "def"}, {"fullname": "ultk.util.io", "modulename": "ultk.util.io", "kind": "module", "doc": "

\n"}, {"fullname": "ultk.util.io.write_expressions", "modulename": "ultk.util.io", "qualname": "write_expressions", "kind": "function", "doc": "

Write expressions to a YAML file.

\n\n

This is particularly useful for writing GrammaticalExpressions, which have a func field that can't be serialized. This function uses to_dict to determine which properties of the Expression to write.

\n\n
Arguments:
\n\n
    \n
  • expressions: the expressions to write
  • \n
  • filename: the file to write to
  • \n
\n", "signature": "(\texpressions: Iterable[ultk.language.language.Expression],\tfilename: str) -> None:", "funcdef": "def"}, {"fullname": "ultk.util.io.read_grammatical_expressions", "modulename": "ultk.util.io", "qualname": "read_grammatical_expressions", "kind": "function", "doc": "

Read grammatical expressions from a YAML file.

\n\n

Optionally re-parse and (re-)evaluate the expressions using the provided grammar and universe.

\n\n
Arguments:
\n\n
    \n
  • filename: the file to read
  • \n
  • grammar: the grammar to use for parsing (and for re-populating the .func attribute of each GrammaticalExpression)
  • \n
  • re_parse: whether to re-parse the expressions
  • \n
  • universe: the universe to use for evaluation
  • \n
  • return_by_meaning: whether to return a dictionary mapping meanings to expressions or not
  • \n
\n\n
Returns:
\n\n
\n

a list of GrammaticalExpressions and a dictionary mapping meanings to expressions (empty if return_by_meaning is False)

\n
\n", "signature": "(\tfilename: str,\tgrammar: ultk.language.grammar.Grammar,\tre_parse: bool = False,\tuniverse: ultk.language.semantics.Universe | None = None,\treturn_by_meaning=True) -> tuple[list[ultk.language.grammar.GrammaticalExpression], dict[ultk.language.semantics.Meaning, ultk.language.grammar.GrammaticalExpression]]:", "funcdef": "def"}, {"fullname": "ultk.util.io.write_pickle", "modulename": "ultk.util.io", "qualname": "write_pickle", "kind": "function", "doc": "

\n", "signature": "(fn: str, data):", "funcdef": "def"}, {"fullname": "ultk.util.io.read_pickle", "modulename": "ultk.util.io", "qualname": "read_pickle", "kind": "function", "doc": "

\n", "signature": "(fn: str):", "funcdef": "def"}]; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/docs/ultk.html b/docs/ultk.html index 2db877d..6c71f5a 100644 --- a/docs/ultk.html +++ b/docs/ultk.html @@ -3,14 +3,14 @@ - + ultk API documentation - + - - - - + + + + + +
+
+

+ultk.effcomm.information_bottleneck

+ +

Submodule for Information Bottleneck based analyses of the efficiency of semantic category systems.

+ +

The ultk.effcomm.information_bottleneck.modeling includes a friendly API for obtaining IB theoretical bounds and naming models given a specification of the statistics of the semantic domain. This is likely the only submodule you need to import.

+ +

The ultk.effcomm.information_bottlneck.ib implements the IB update equations, and includes an optimizer object that inherits from the base object in ba.

+ +

The ultk.effcomm.information_bottleneck.ba submodule implements the Blahut-Arimoto algorithm for computing the theoretical bounds of efficient compression. It includes code for simulated annealing (reverse or not) of $\beta$.

+ +

The ultk.effcomm.information_bottleneck.tools submodule includes helper methods for computing informational quantities and dealing with numerical instability.

+
+ + + + + +
 1"""Submodule for Information Bottleneck based analyses of the efficiency of semantic category systems. 
+ 2
+ 3The `ultk.effcomm.information_bottleneck.modeling` includes a friendly API for obtaining IB theoretical bounds and naming models given a specification of the statistics of the semantic domain. This is likely the only submodule you need to import.
+ 4
+ 5The `ultk.effcomm.information_bottlneck.ib` implements the IB update equations, and includes an optimizer object that inherits from the base object in `ba`.
+ 6
+ 7The `ultk.effcomm.information_bottleneck.ba` submodule implements the Blahut-Arimoto algorithm for computing the theoretical bounds of efficient compression. It includes code for simulated annealing (reverse or not) of $\\beta$. 
+ 8
+ 9The `ultk.effcomm.information_bottleneck.tools` submodule includes helper methods for computing informational quantities and dealing with numerical instability.
+10"""
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/ultk/effcomm/information_bottleneck/ba.html b/docs/ultk/effcomm/information_bottleneck/ba.html new file mode 100644 index 0000000..438f82b --- /dev/null +++ b/docs/ultk/effcomm/information_bottleneck/ba.html @@ -0,0 +1,1305 @@ + + + + + + + ultk.effcomm.information_bottleneck.ba API documentation + + + + + + + + + + + + +
+
+

+ultk.effcomm.information_bottleneck.ba

+ + + + + + +
  1import numpy as np
+  2
+  3from typing import Any
+  4from tqdm import tqdm
+  5from .tools import information_cond, random_stochastic_matrix, add_noise_to_stochastic_matrix, compute_lower_bound
+  6
+  7
+  8##############################################################################
+  9# Base Rate Distortion class
+ 10##############################################################################
+ 11
+ 12
+ 13class BaseRDOptimizer:
+ 14    def __init__(
+ 15        self,
+ 16        betas: np.ndarray,
+ 17        *args,
+ 18        max_it: int = 1000,
+ 19        eps: float = 1e-15,
+ 20        ignore_converge: bool = False,
+ 21        xhat_size = None,
+ 22        **kwargs,
+ 23    ) -> None:
+ 24        """Base initializer for a Blahut-Arimoto-based optimizer of the Rate Distortion function.
+ 25
+ 26        Args:
+ 27            betas: 1D array, values of beta to search
+ 28
+ 29            max_it: max number of iterations
+ 30
+ 31            args: propagated to `self.beta_iterate` as *kwargs
+ 32
+ 33            eps: accuracy required by the algorithm: the algorithm stops if there is no change in distortion value of more than `eps` between consecutive iterations
+ 34
+ 35            ignore_converge: whether to run the optimization until `max_it`, ignoring the stopping criterion specified by `eps`.
+ 36
+ 37            xhat_size: the size of the output alphabet. The resulting encoders will be of shape (x, xhat)
+ 38
+ 39            kwargs: propagated to `self.beta_iterate` as **kwargs
+ 40        """
+ 41        self.betas = betas
+ 42        self.max_it = max_it
+ 43        self.eps = eps
+ 44        self.ignore_converge = ignore_converge
+ 45
+ 46        self.init_args = args
+ 47        self.init_kwargs = kwargs
+ 48
+ 49        self.ln_px = None  # shape `(x)`
+ 50        self.ln_qxhat_x = None  # shape `(x, xhat)`
+ 51        self.dist_mat = None  # shape `(x, xhat)`
+ 52
+ 53        self.xhat_size = xhat_size
+ 54        # if xhat_size is None:
+ 55            # self.xhat_size = len(self.ln_px)
+ 56
+ 57        self.result = None  # namedtuple
+ 58        self.results: list[Any] = []  # list of namedtuples
+ 59
+ 60    def get_results(self) -> list[Any]:
+ 61        # Re-initialize results
+ 62        self.result = None
+ 63        self.results = []
+ 64
+ 65        self.beta_iterate(*self.init_args, **self.init_kwargs)
+ 66        return self.results
+ 67
+ 68    def update_eqs(
+ 69        self,
+ 70        *args,
+ 71        **kwargs,
+ 72    ) -> None:
+ 73        """Main Blahut-Arimoto update steps."""
+ 74        raise NotImplementedError
+ 75
+ 76    def next_result(self, beta, *args, **kwargs) -> None:
+ 77        """Get the result of the converged BA iteration."""
+ 78        raise NotImplementedError
+ 79
+ 80    def beta_iterate(
+ 81        self,
+ 82        *args,
+ 83        num_restarts: int = 0,
+ 84        ensure_monotonicity: bool = True,
+ 85        disable_tqdm: bool = False,
+ 86        reverse_annealing: bool = True,
+ 87        **kwargs,
+ 88    ) -> None:
+ 89        """Iterate the BA algorithm for an array of values of beta, using reverse deterministic annealing.
+ 90
+ 91        Args:
+ 92            num_restarts: number of times to restart each beta-optimization
+ 93
+ 94            ensure_monotonicity: whether to remove points that would make a rate distortion curve non-monotonic
+ 95
+ 96            reverse_annealing: whether to use reverse annealing or regular annealing. If self.output_size < len(self.ln_px), then this is set to false.
+ 97        """
+ 98        if (self.xhat_size is not None and self.xhat_size < len(self.ln_px)) or not reverse_annealing:
+ 99            reverse = False
+100        else:
+101            reverse = True
+102
+103        results = self.anneal(
+104            *args,
+105            reverse=reverse,
+106            num_restarts=num_restarts,
+107            ensure_monotonicity=ensure_monotonicity,
+108            disable_tqdm=disable_tqdm,
+109            **kwargs,
+110        )
+111
+112        # Postprocessing
+113        if ensure_monotonicity:
+114            indices = compute_lower_bound(
+115                [(item.rate, item.distortion) for item in results]
+116            )
+117            results = [x if i in indices else None for i, x in enumerate(results)]
+118            self.results = results
+119
+120    def anneal(
+121        self,
+122        *args,
+123        reverse: bool = True,
+124        num_restarts: int = 0,
+125        disable_tqdm: bool = False,
+126        **kwargs,
+127    ) -> list:
+128
+129        results = []
+130        betas = np.sort(self.betas)
+131
+132        if reverse:
+133            # sort betas in decreasing order
+134            betas = betas[::-1]
+135            # start with bijective mapping
+136            init_q = np.eye(
+137                len(self.ln_px)
+138            )
+139        else:
+140            # Random degenerate initialization
+141            xhat = random_stochastic_matrix(shape=(1, self.xhat_size), gamma=1e-2)
+142            init_q = np.stack([xhat.squeeze()] * len(self.ln_px))
+143
+144        pbar = tqdm(
+145            betas,
+146            disable=disable_tqdm,
+147            desc=f"{'reverse ' if reverse else ''}annealing beta",
+148        )
+149        for beta in pbar:
+150            pbar.set_description(f"beta={beta:.5f}")
+151            candidates = []
+152            for _ in range(num_restarts+1):
+153                self.blahut_arimoto(beta, *args, init_q=init_q, **kwargs)
+154                cand = self.results[-1]
+155                init_q = cand.qxhat_x
+156                candidates.append(cand)
+157            best = min(candidates, key=lambda x: x.rate + beta * x.distortion)
+158            results.append(best)
+159
+160        if reverse:
+161            results = results[::-1]
+162
+163        return results
+164
+165    ############################################################################
+166    # Blahut Arimoto iteration
+167    ############################################################################
+168
+169    def blahut_arimoto(
+170        self,
+171        beta,
+172        *args,
+173        **kwargs,
+174    ) -> None:
+175        """Update the self-consistent equations for a Rate Distortion objective.
+176
+177        Args:
+178            beta: (scalar) the slope of the rate-distoriton function at the point where evaluation is required
+179        """
+180        len_x = len(self.ln_px)
+181        if "init_q" in kwargs:
+182            init_q: np.ndarray = kwargs["init_q"]
+183            # Add small value for working in logspace
+184            # init_q_precision = init_q + PRECISION
+185            init_q_precision = add_noise_to_stochastic_matrix(init_q, weight=1e-2)
+186            init_q_precision /= init_q_precision.sum(axis=1, keepdims=True)
+187            self.ln_qxhat_x = np.log(init_q_precision)
+188        else:
+189            self.ln_qxhat_x = np.log(random_stochastic_matrix((len_x, len_x)))
+190
+191        it = 0
+192        converged = False
+193        while not converged:
+194            it += 1
+195            prev_q = np.copy(self.ln_qxhat_x)
+196
+197            # Main BA update
+198            self.update_eqs(beta, *args, **kwargs)
+199
+200            # convergence check
+201            # TODO: consider updating the Result tuple to include convergence field. if converged, record the iteration. If not, record False/None
+202            if self.ignore_converge:
+203                converged = it >= self.max_it
+204            else:
+205                converged = (
+206                    it == self.max_it
+207                    or np.sum(np.abs(np.exp(self.ln_qxhat_x) - np.exp(prev_q)))
+208                    < self.eps
+209                )
+210
+211        self.results.append(self.next_result(beta, *args, **kwargs))
+212
+213    def compute_distortion(self, *args, **kwargs) -> float:
+214        """Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat."""
+215        raise NotImplementedError
+216
+217    def compute_rate(
+218        self,
+219        *args,
+220        **kwargs,
+221    ) -> float:
+222        """Compute the information rate for the current p(x), q(xhat|x)."""
+223        return information_cond(np.exp(self.ln_px), np.exp(self.ln_qxhat_x))
+
+ + +
+
+ +
+ + class + BaseRDOptimizer: + + + +
+ +
 14class BaseRDOptimizer:
+ 15    def __init__(
+ 16        self,
+ 17        betas: np.ndarray,
+ 18        *args,
+ 19        max_it: int = 1000,
+ 20        eps: float = 1e-15,
+ 21        ignore_converge: bool = False,
+ 22        xhat_size = None,
+ 23        **kwargs,
+ 24    ) -> None:
+ 25        """Base initializer for a Blahut-Arimoto-based optimizer of the Rate Distortion function.
+ 26
+ 27        Args:
+ 28            betas: 1D array, values of beta to search
+ 29
+ 30            max_it: max number of iterations
+ 31
+ 32            args: propagated to `self.beta_iterate` as *kwargs
+ 33
+ 34            eps: accuracy required by the algorithm: the algorithm stops if there is no change in distortion value of more than `eps` between consecutive iterations
+ 35
+ 36            ignore_converge: whether to run the optimization until `max_it`, ignoring the stopping criterion specified by `eps`.
+ 37
+ 38            xhat_size: the size of the output alphabet. The resulting encoders will be of shape (x, xhat)
+ 39
+ 40            kwargs: propagated to `self.beta_iterate` as **kwargs
+ 41        """
+ 42        self.betas = betas
+ 43        self.max_it = max_it
+ 44        self.eps = eps
+ 45        self.ignore_converge = ignore_converge
+ 46
+ 47        self.init_args = args
+ 48        self.init_kwargs = kwargs
+ 49
+ 50        self.ln_px = None  # shape `(x)`
+ 51        self.ln_qxhat_x = None  # shape `(x, xhat)`
+ 52        self.dist_mat = None  # shape `(x, xhat)`
+ 53
+ 54        self.xhat_size = xhat_size
+ 55        # if xhat_size is None:
+ 56            # self.xhat_size = len(self.ln_px)
+ 57
+ 58        self.result = None  # namedtuple
+ 59        self.results: list[Any] = []  # list of namedtuples
+ 60
+ 61    def get_results(self) -> list[Any]:
+ 62        # Re-initialize results
+ 63        self.result = None
+ 64        self.results = []
+ 65
+ 66        self.beta_iterate(*self.init_args, **self.init_kwargs)
+ 67        return self.results
+ 68
+ 69    def update_eqs(
+ 70        self,
+ 71        *args,
+ 72        **kwargs,
+ 73    ) -> None:
+ 74        """Main Blahut-Arimoto update steps."""
+ 75        raise NotImplementedError
+ 76
+ 77    def next_result(self, beta, *args, **kwargs) -> None:
+ 78        """Get the result of the converged BA iteration."""
+ 79        raise NotImplementedError
+ 80
+ 81    def beta_iterate(
+ 82        self,
+ 83        *args,
+ 84        num_restarts: int = 0,
+ 85        ensure_monotonicity: bool = True,
+ 86        disable_tqdm: bool = False,
+ 87        reverse_annealing: bool = True,
+ 88        **kwargs,
+ 89    ) -> None:
+ 90        """Iterate the BA algorithm for an array of values of beta, using reverse deterministic annealing.
+ 91
+ 92        Args:
+ 93            num_restarts: number of times to restart each beta-optimization
+ 94
+ 95            ensure_monotonicity: whether to remove points that would make a rate distortion curve non-monotonic
+ 96
+ 97            reverse_annealing: whether to use reverse annealing or regular annealing. If self.output_size < len(self.ln_px), then this is set to false.
+ 98        """
+ 99        if (self.xhat_size is not None and self.xhat_size < len(self.ln_px)) or not reverse_annealing:
+100            reverse = False
+101        else:
+102            reverse = True
+103
+104        results = self.anneal(
+105            *args,
+106            reverse=reverse,
+107            num_restarts=num_restarts,
+108            ensure_monotonicity=ensure_monotonicity,
+109            disable_tqdm=disable_tqdm,
+110            **kwargs,
+111        )
+112
+113        # Postprocessing
+114        if ensure_monotonicity:
+115            indices = compute_lower_bound(
+116                [(item.rate, item.distortion) for item in results]
+117            )
+118            results = [x if i in indices else None for i, x in enumerate(results)]
+119            self.results = results
+120
+121    def anneal(
+122        self,
+123        *args,
+124        reverse: bool = True,
+125        num_restarts: int = 0,
+126        disable_tqdm: bool = False,
+127        **kwargs,
+128    ) -> list:
+129
+130        results = []
+131        betas = np.sort(self.betas)
+132
+133        if reverse:
+134            # sort betas in decreasing order
+135            betas = betas[::-1]
+136            # start with bijective mapping
+137            init_q = np.eye(
+138                len(self.ln_px)
+139            )
+140        else:
+141            # Random degenerate initialization
+142            xhat = random_stochastic_matrix(shape=(1, self.xhat_size), gamma=1e-2)
+143            init_q = np.stack([xhat.squeeze()] * len(self.ln_px))
+144
+145        pbar = tqdm(
+146            betas,
+147            disable=disable_tqdm,
+148            desc=f"{'reverse ' if reverse else ''}annealing beta",
+149        )
+150        for beta in pbar:
+151            pbar.set_description(f"beta={beta:.5f}")
+152            candidates = []
+153            for _ in range(num_restarts+1):
+154                self.blahut_arimoto(beta, *args, init_q=init_q, **kwargs)
+155                cand = self.results[-1]
+156                init_q = cand.qxhat_x
+157                candidates.append(cand)
+158            best = min(candidates, key=lambda x: x.rate + beta * x.distortion)
+159            results.append(best)
+160
+161        if reverse:
+162            results = results[::-1]
+163
+164        return results
+165
+166    ############################################################################
+167    # Blahut Arimoto iteration
+168    ############################################################################
+169
+170    def blahut_arimoto(
+171        self,
+172        beta,
+173        *args,
+174        **kwargs,
+175    ) -> None:
+176        """Update the self-consistent equations for a Rate Distortion objective.
+177
+178        Args:
+179            beta: (scalar) the slope of the rate-distoriton function at the point where evaluation is required
+180        """
+181        len_x = len(self.ln_px)
+182        if "init_q" in kwargs:
+183            init_q: np.ndarray = kwargs["init_q"]
+184            # Add small value for working in logspace
+185            # init_q_precision = init_q + PRECISION
+186            init_q_precision = add_noise_to_stochastic_matrix(init_q, weight=1e-2)
+187            init_q_precision /= init_q_precision.sum(axis=1, keepdims=True)
+188            self.ln_qxhat_x = np.log(init_q_precision)
+189        else:
+190            self.ln_qxhat_x = np.log(random_stochastic_matrix((len_x, len_x)))
+191
+192        it = 0
+193        converged = False
+194        while not converged:
+195            it += 1
+196            prev_q = np.copy(self.ln_qxhat_x)
+197
+198            # Main BA update
+199            self.update_eqs(beta, *args, **kwargs)
+200
+201            # convergence check
+202            # TODO: consider updating the Result tuple to include convergence field. if converged, record the iteration. If not, record False/None
+203            if self.ignore_converge:
+204                converged = it >= self.max_it
+205            else:
+206                converged = (
+207                    it == self.max_it
+208                    or np.sum(np.abs(np.exp(self.ln_qxhat_x) - np.exp(prev_q)))
+209                    < self.eps
+210                )
+211
+212        self.results.append(self.next_result(beta, *args, **kwargs))
+213
+214    def compute_distortion(self, *args, **kwargs) -> float:
+215        """Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat."""
+216        raise NotImplementedError
+217
+218    def compute_rate(
+219        self,
+220        *args,
+221        **kwargs,
+222    ) -> float:
+223        """Compute the information rate for the current p(x), q(xhat|x)."""
+224        return information_cond(np.exp(self.ln_px), np.exp(self.ln_qxhat_x))
+
+ + + + +
+ +
+ + BaseRDOptimizer( betas: numpy.ndarray, *args, max_it: int = 1000, eps: float = 1e-15, ignore_converge: bool = False, xhat_size=None, **kwargs) + + + +
+ +
15    def __init__(
+16        self,
+17        betas: np.ndarray,
+18        *args,
+19        max_it: int = 1000,
+20        eps: float = 1e-15,
+21        ignore_converge: bool = False,
+22        xhat_size = None,
+23        **kwargs,
+24    ) -> None:
+25        """Base initializer for a Blahut-Arimoto-based optimizer of the Rate Distortion function.
+26
+27        Args:
+28            betas: 1D array, values of beta to search
+29
+30            max_it: max number of iterations
+31
+32            args: propagated to `self.beta_iterate` as *kwargs
+33
+34            eps: accuracy required by the algorithm: the algorithm stops if there is no change in distortion value of more than `eps` between consecutive iterations
+35
+36            ignore_converge: whether to run the optimization until `max_it`, ignoring the stopping criterion specified by `eps`.
+37
+38            xhat_size: the size of the output alphabet. The resulting encoders will be of shape (x, xhat)
+39
+40            kwargs: propagated to `self.beta_iterate` as **kwargs
+41        """
+42        self.betas = betas
+43        self.max_it = max_it
+44        self.eps = eps
+45        self.ignore_converge = ignore_converge
+46
+47        self.init_args = args
+48        self.init_kwargs = kwargs
+49
+50        self.ln_px = None  # shape `(x)`
+51        self.ln_qxhat_x = None  # shape `(x, xhat)`
+52        self.dist_mat = None  # shape `(x, xhat)`
+53
+54        self.xhat_size = xhat_size
+55        # if xhat_size is None:
+56            # self.xhat_size = len(self.ln_px)
+57
+58        self.result = None  # namedtuple
+59        self.results: list[Any] = []  # list of namedtuples
+
+ + +

Base initializer for a Blahut-Arimoto-based optimizer of the Rate Distortion function.

+ +
Arguments:
+ +
    +
  • betas: 1D array, values of beta to search
  • +
  • max_it: max number of iterations
  • +
  • args: propagated to self.beta_iterate as *kwargs
  • +
  • eps: accuracy required by the algorithm: the algorithm stops if there is no change in distortion value of more than eps between consecutive iterations
  • +
  • ignore_converge: whether to run the optimization until max_it, ignoring the stopping criterion specified by eps.
  • +
  • xhat_size: the size of the output alphabet. The resulting encoders will be of shape (x, xhat)
  • +
  • kwargs: propagated to self.beta_iterate as **kwargs
  • +
+
+ + +
+
+
+ betas + + +
+ + + + +
+
+
+ max_it + + +
+ + + + +
+
+
+ eps + + +
+ + + + +
+
+
+ ignore_converge + + +
+ + + + +
+
+
+ init_args + + +
+ + + + +
+
+
+ init_kwargs + + +
+ + + + +
+
+
+ ln_px + + +
+ + + + +
+
+
+ ln_qxhat_x + + +
+ + + + +
+
+
+ dist_mat + + +
+ + + + +
+
+
+ xhat_size + + +
+ + + + +
+
+
+ result + + +
+ + + + +
+
+
+ results: list[typing.Any] + + +
+ + + + +
+
+ +
+ + def + get_results(self) -> list[typing.Any]: + + + +
+ +
61    def get_results(self) -> list[Any]:
+62        # Re-initialize results
+63        self.result = None
+64        self.results = []
+65
+66        self.beta_iterate(*self.init_args, **self.init_kwargs)
+67        return self.results
+
+ + + + +
+
+ +
+ + def + update_eqs(self, *args, **kwargs) -> None: + + + +
+ +
69    def update_eqs(
+70        self,
+71        *args,
+72        **kwargs,
+73    ) -> None:
+74        """Main Blahut-Arimoto update steps."""
+75        raise NotImplementedError
+
+ + +

Main Blahut-Arimoto update steps.

+
+ + +
+
+ +
+ + def + next_result(self, beta, *args, **kwargs) -> None: + + + +
+ +
77    def next_result(self, beta, *args, **kwargs) -> None:
+78        """Get the result of the converged BA iteration."""
+79        raise NotImplementedError
+
+ + +

Get the result of the converged BA iteration.

+
+ + +
+
+ +
+ + def + beta_iterate( self, *args, num_restarts: int = 0, ensure_monotonicity: bool = True, disable_tqdm: bool = False, reverse_annealing: bool = True, **kwargs) -> None: + + + +
+ +
 81    def beta_iterate(
+ 82        self,
+ 83        *args,
+ 84        num_restarts: int = 0,
+ 85        ensure_monotonicity: bool = True,
+ 86        disable_tqdm: bool = False,
+ 87        reverse_annealing: bool = True,
+ 88        **kwargs,
+ 89    ) -> None:
+ 90        """Iterate the BA algorithm for an array of values of beta, using reverse deterministic annealing.
+ 91
+ 92        Args:
+ 93            num_restarts: number of times to restart each beta-optimization
+ 94
+ 95            ensure_monotonicity: whether to remove points that would make a rate distortion curve non-monotonic
+ 96
+ 97            reverse_annealing: whether to use reverse annealing or regular annealing. If self.output_size < len(self.ln_px), then this is set to false.
+ 98        """
+ 99        if (self.xhat_size is not None and self.xhat_size < len(self.ln_px)) or not reverse_annealing:
+100            reverse = False
+101        else:
+102            reverse = True
+103
+104        results = self.anneal(
+105            *args,
+106            reverse=reverse,
+107            num_restarts=num_restarts,
+108            ensure_monotonicity=ensure_monotonicity,
+109            disable_tqdm=disable_tqdm,
+110            **kwargs,
+111        )
+112
+113        # Postprocessing
+114        if ensure_monotonicity:
+115            indices = compute_lower_bound(
+116                [(item.rate, item.distortion) for item in results]
+117            )
+118            results = [x if i in indices else None for i, x in enumerate(results)]
+119            self.results = results
+
+ + +

Iterate the BA algorithm for an array of values of beta, using reverse deterministic annealing.

+ +
Arguments:
+ +
    +
  • num_restarts: number of times to restart each beta-optimization
  • +
  • ensure_monotonicity: whether to remove points that would make a rate distortion curve non-monotonic
  • +
  • reverse_annealing: whether to use reverse annealing or regular annealing. If self.output_size < len(self.ln_px), then this is set to false.
  • +
+
+ + +
+
+ +
+ + def + anneal( self, *args, reverse: bool = True, num_restarts: int = 0, disable_tqdm: bool = False, **kwargs) -> list: + + + +
+ +
121    def anneal(
+122        self,
+123        *args,
+124        reverse: bool = True,
+125        num_restarts: int = 0,
+126        disable_tqdm: bool = False,
+127        **kwargs,
+128    ) -> list:
+129
+130        results = []
+131        betas = np.sort(self.betas)
+132
+133        if reverse:
+134            # sort betas in decreasing order
+135            betas = betas[::-1]
+136            # start with bijective mapping
+137            init_q = np.eye(
+138                len(self.ln_px)
+139            )
+140        else:
+141            # Random degenerate initialization
+142            xhat = random_stochastic_matrix(shape=(1, self.xhat_size), gamma=1e-2)
+143            init_q = np.stack([xhat.squeeze()] * len(self.ln_px))
+144
+145        pbar = tqdm(
+146            betas,
+147            disable=disable_tqdm,
+148            desc=f"{'reverse ' if reverse else ''}annealing beta",
+149        )
+150        for beta in pbar:
+151            pbar.set_description(f"beta={beta:.5f}")
+152            candidates = []
+153            for _ in range(num_restarts+1):
+154                self.blahut_arimoto(beta, *args, init_q=init_q, **kwargs)
+155                cand = self.results[-1]
+156                init_q = cand.qxhat_x
+157                candidates.append(cand)
+158            best = min(candidates, key=lambda x: x.rate + beta * x.distortion)
+159            results.append(best)
+160
+161        if reverse:
+162            results = results[::-1]
+163
+164        return results
+
+ + + + +
+
+ +
+ + def + blahut_arimoto(self, beta, *args, **kwargs) -> None: + + + +
+ +
170    def blahut_arimoto(
+171        self,
+172        beta,
+173        *args,
+174        **kwargs,
+175    ) -> None:
+176        """Update the self-consistent equations for a Rate Distortion objective.
+177
+178        Args:
+179            beta: (scalar) the slope of the rate-distoriton function at the point where evaluation is required
+180        """
+181        len_x = len(self.ln_px)
+182        if "init_q" in kwargs:
+183            init_q: np.ndarray = kwargs["init_q"]
+184            # Add small value for working in logspace
+185            # init_q_precision = init_q + PRECISION
+186            init_q_precision = add_noise_to_stochastic_matrix(init_q, weight=1e-2)
+187            init_q_precision /= init_q_precision.sum(axis=1, keepdims=True)
+188            self.ln_qxhat_x = np.log(init_q_precision)
+189        else:
+190            self.ln_qxhat_x = np.log(random_stochastic_matrix((len_x, len_x)))
+191
+192        it = 0
+193        converged = False
+194        while not converged:
+195            it += 1
+196            prev_q = np.copy(self.ln_qxhat_x)
+197
+198            # Main BA update
+199            self.update_eqs(beta, *args, **kwargs)
+200
+201            # convergence check
+202            # TODO: consider updating the Result tuple to include convergence field. if converged, record the iteration. If not, record False/None
+203            if self.ignore_converge:
+204                converged = it >= self.max_it
+205            else:
+206                converged = (
+207                    it == self.max_it
+208                    or np.sum(np.abs(np.exp(self.ln_qxhat_x) - np.exp(prev_q)))
+209                    < self.eps
+210                )
+211
+212        self.results.append(self.next_result(beta, *args, **kwargs))
+
+ + +

Update the self-consistent equations for a Rate Distortion objective.

+ +
Arguments:
+ +
    +
  • beta: (scalar) the slope of the rate-distoriton function at the point where evaluation is required
  • +
+
+ + +
+
+ +
+ + def + compute_distortion(self, *args, **kwargs) -> float: + + + +
+ +
214    def compute_distortion(self, *args, **kwargs) -> float:
+215        """Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat."""
+216        raise NotImplementedError
+
+ + +

Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat.

+
+ + +
+
+ +
+ + def + compute_rate(self, *args, **kwargs) -> float: + + + +
+ +
218    def compute_rate(
+219        self,
+220        *args,
+221        **kwargs,
+222    ) -> float:
+223        """Compute the information rate for the current p(x), q(xhat|x)."""
+224        return information_cond(np.exp(self.ln_px), np.exp(self.ln_qxhat_x))
+
+ + +

Compute the information rate for the current p(x), q(xhat|x).

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/ultk/effcomm/information_bottleneck/ib.html b/docs/ultk/effcomm/information_bottleneck/ib.html new file mode 100644 index 0000000..dab6d94 --- /dev/null +++ b/docs/ultk/effcomm/information_bottleneck/ib.html @@ -0,0 +1,1174 @@ + + + + + + + ultk.effcomm.information_bottleneck.ib API documentation + + + + + + + + + + + + +
+
+

+ultk.effcomm.information_bottleneck.ib

+ +

Information Bottleneck optimizer.

+
+ + + + + +
  1"""Information Bottleneck optimizer."""
+  2
+  3import numpy as np
+  4
+  5from collections import namedtuple
+  6from scipy.special import logsumexp, log_softmax
+  7
+  8from .ba import BaseRDOptimizer
+  9from .tools import PRECISION, information_cond, mutual_info, kl_divergence
+ 10
+ 11
+ 12def ib_kl(py_x: np.ndarray, qy_xhat: np.ndarray) -> np.ndarray:
+ 13    """Compute the IB distortion matrix, the KL divergence between p(y|x) and q(y|xhat), in nats."""
+ 14    # D[p(y|x) || q(y|xhat)],
+ 15    # input shape `(x, xhat, y)`, output shape `(x, xhat)`
+ 16    return kl_divergence(py_x[:, None, :], qy_xhat[None, :, :], axis=2)
+ 17
+ 18
+ 19##############################################################################
+ 20# Return type of each item in `get_results()`
+ 21##############################################################################
+ 22
+ 23IBResult = namedtuple(
+ 24    "IBResult",
+ 25    [
+ 26        "qxhat_x",
+ 27        "rate",
+ 28        "distortion",
+ 29        "accuracy",
+ 30        "beta",
+ 31    ],
+ 32)
+ 33
+ 34##############################################################################
+ 35# Update equations
+ 36##############################################################################
+ 37
+ 38
+ 39def next_ln_qxhat(ln_px: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray:
+ 40    # q(xhat) = sum_x p(x) q(xhat | x),
+ 41    # shape `(xhat)`
+ 42    return logsumexp(ln_px[:, None] + ln_qxhat_x, axis=0)
+ 43
+ 44
+ 45def next_ln_qxhat_x(ln_qxhat: np.ndarray, beta: float, dist_mat: np.ndarray):
+ 46    # q(x_hat | x) = q(x_hat) exp(- beta * d(x, x_hat)) / Z(x)
+ 47    return log_softmax(ln_qxhat[None, :] - beta * dist_mat, axis=1)
+ 48
+ 49
+ 50def next_ln_qy_xhat(ln_pxy: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray:
+ 51    # p(x),
+ 52    # shape `(x)`
+ 53    ln_px = logsumexp(ln_pxy, axis=1)
+ 54
+ 55    # p(y|x),
+ 56    # shape `(x,y)`
+ 57    ln_py_x = ln_pxy - ln_px[:, None]
+ 58
+ 59    ln_qx_xhat = next_ln_qx_xhat(ln_px, ln_qxhat_x)  # `(xhat, x)`
+ 60
+ 61    # p(y|xhat) = sum_x p(y|x) p(x|xhat),
+ 62    # shape `(xhat, y)`
+ 63    ln_qy_xhat = logsumexp(
+ 64        ln_py_x[None, :, :] + ln_qx_xhat[:, :, None],  # `(xhat, x, y)`
+ 65        axis=1,
+ 66    )
+ 67
+ 68    return ln_qy_xhat
+ 69
+ 70
+ 71def next_ln_qx_xhat(ln_px: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray:
+ 72    # q(xhat),
+ 73    # shape `(xhat)`
+ 74    ln_qxhat = next_ln_qxhat(ln_px, ln_qxhat_x)
+ 75
+ 76    # q(x,xhat) = p(x) q(xhat|x),
+ 77    # shape `(x, xhat)`
+ 78    ln_qxxhat = ln_px[:, None] + ln_qxhat_x
+ 79
+ 80    # p(x|xhat) = q(x, xhat) / q(xhat),
+ 81    # shape `(xhat, x)`
+ 82    ln_qx_xhat = ln_qxxhat.T - ln_qxhat[:, None]
+ 83
+ 84    return ln_qx_xhat
+ 85
+ 86
+ 87##############################################################################
+ 88# IB Optimizer
+ 89##############################################################################
+ 90
+ 91
+ 92class IBOptimizer(BaseRDOptimizer):
+ 93    def __init__(
+ 94        self,
+ 95        pxy: np.ndarray,
+ 96        betas: np.ndarray,
+ 97        *args,
+ 98        **kwargs,
+ 99    ) -> None:
+100        """Estimate the optimal encoder for a given value of `beta` for the Information Bottleneck objective [Tishby et al., 1999]:
+101
+102        $\min_{q} I[X:\hat{X}] + \\beta \mathbb{E}[D_{KL}[p(y|x) || p(y|\hat{x})]].$
+103
+104        Args:
+105            pxy: 2D array of shape `(|X|, |Y|)` representing the joint probability mass function of the source and relevance variables.
+106
+107            betas: 1D array of values of beta, where each beta is a float corresponding to the slope of the rate-distoriton function at the point where evaluation is required
+108        """
+109        super().__init__(betas, *args, **kwargs)
+110
+111        # Add small value for working in logspace
+112        pxy_precision = pxy + PRECISION
+113        pxy_precision /= pxy_precision.sum()
+114        self.ln_pxy = np.log(pxy_precision)
+115
+116        self.ln_px = logsumexp(self.ln_pxy, axis=1)  # `(x)`
+117        self.px = np.exp(self.ln_px)
+118        self.ln_py_x = self.ln_pxy - logsumexp(
+119            self.ln_pxy, axis=1, keepdims=True
+120        )  # `(x, y)`
+121        self.results: list[IBResult] = None
+122
+123    def get_results(self) -> list[IBResult]:
+124        return super().get_results()
+125
+126    def next_dist_mat(
+127        self,
+128        *args,
+129        **kwargs,
+130    ) -> None:
+131        """IB distortion matrix."""
+132        self.dist_mat = ib_kl(np.exp(self.ln_py_x), np.exp(self.ln_qy_xhat))
+133
+134    def update_eqs(
+135        self,
+136        beta,
+137        *args,
+138        **kwargs,
+139    ) -> None:
+140        """Iterate the IB update equations."""
+141        self.ln_qxhat = next_ln_qxhat(self.ln_px, self.ln_qxhat_x)
+142        self.ln_qy_xhat = next_ln_qy_xhat(self.ln_pxy, self.ln_qxhat_x)
+143        self.next_dist_mat(*args, **kwargs)
+144        self.ln_qxhat_x = next_ln_qxhat_x(self.ln_qxhat, beta, self.dist_mat)
+145
+146    def compute_distortion(self, *args, **kwargs) -> float:
+147        # NOTE: we may still need to debug this; watch out for negative values
+148        # return np.exp(logsumexp(self.ln_px + self.ln_qxhat_x + np.log(self.dist_mat)))
+149        I_xy = mutual_info(np.exp(self.ln_pxy))
+150        edkl = I_xy - self.compute_accuracy()
+151        return edkl
+152
+153    def compute_accuracy(self, *args, **kwargs) -> float:
+154        return information_cond(
+155            np.exp(self.ln_qxhat),
+156            np.exp(self.ln_qy_xhat),
+157        )
+158
+159    def next_result(self, beta, *args, **kwargs) -> IBResult:
+160        """Get the result of the converged BA iteration for the IB objective.
+161
+162        Returns:
+163            an IBResult namedtuple of `(qxhat_x, rate, distortion, accuracy, beta)` values. This is:
+164
+165                `qxhat_x`, the optimal encoder, such that the
+166
+167                `rate` (in bits) of compressing X into X_hat, is minimized for the level of
+168
+169                `distortion` between X, X_hat with respect to Y, i.e. the
+170
+171                `accuracy` I[X_hat:Y] is maximized, for the specified
+172
+173                `beta` trade-off parameter
+174        """
+175        return IBResult(
+176            np.exp(self.ln_qxhat_x),
+177            self.compute_rate(),
+178            self.compute_distortion(),
+179            self.compute_accuracy(),
+180            beta,
+181        )
+
+ + +
+
+ +
+ + def + ib_kl(py_x: numpy.ndarray, qy_xhat: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
13def ib_kl(py_x: np.ndarray, qy_xhat: np.ndarray) -> np.ndarray:
+14    """Compute the IB distortion matrix, the KL divergence between p(y|x) and q(y|xhat), in nats."""
+15    # D[p(y|x) || q(y|xhat)],
+16    # input shape `(x, xhat, y)`, output shape `(x, xhat)`
+17    return kl_divergence(py_x[:, None, :], qy_xhat[None, :, :], axis=2)
+
+ + +

Compute the IB distortion matrix, the KL divergence between p(y|x) and q(y|xhat), in nats.

+
+ + +
+
+
+ + class + IBResult(builtins.tuple): + + +
+ + +

IBResult(qxhat_x, rate, distortion, accuracy, beta)

+
+ + +
+
+ + IBResult(qxhat_x, rate, distortion, accuracy, beta) + + +
+ + +

Create new instance of IBResult(qxhat_x, rate, distortion, accuracy, beta)

+
+ + +
+
+
+ qxhat_x + + +
+ + +

Alias for field number 0

+
+ + +
+
+
+ rate + + +
+ + +

Alias for field number 1

+
+ + +
+
+
+ distortion + + +
+ + +

Alias for field number 2

+
+ + +
+
+
+ accuracy + + +
+ + +

Alias for field number 3

+
+ + +
+
+
+ beta + + +
+ + +

Alias for field number 4

+
+ + +
+
+
+ +
+ + def + next_ln_qxhat(ln_px: numpy.ndarray, ln_qxhat_x: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
40def next_ln_qxhat(ln_px: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray:
+41    # q(xhat) = sum_x p(x) q(xhat | x),
+42    # shape `(xhat)`
+43    return logsumexp(ln_px[:, None] + ln_qxhat_x, axis=0)
+
+ + + + +
+
+ +
+ + def + next_ln_qxhat_x(ln_qxhat: numpy.ndarray, beta: float, dist_mat: numpy.ndarray): + + + +
+ +
46def next_ln_qxhat_x(ln_qxhat: np.ndarray, beta: float, dist_mat: np.ndarray):
+47    # q(x_hat | x) = q(x_hat) exp(- beta * d(x, x_hat)) / Z(x)
+48    return log_softmax(ln_qxhat[None, :] - beta * dist_mat, axis=1)
+
+ + + + +
+
+ +
+ + def + next_ln_qy_xhat(ln_pxy: numpy.ndarray, ln_qxhat_x: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
51def next_ln_qy_xhat(ln_pxy: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray:
+52    # p(x),
+53    # shape `(x)`
+54    ln_px = logsumexp(ln_pxy, axis=1)
+55
+56    # p(y|x),
+57    # shape `(x,y)`
+58    ln_py_x = ln_pxy - ln_px[:, None]
+59
+60    ln_qx_xhat = next_ln_qx_xhat(ln_px, ln_qxhat_x)  # `(xhat, x)`
+61
+62    # p(y|xhat) = sum_x p(y|x) p(x|xhat),
+63    # shape `(xhat, y)`
+64    ln_qy_xhat = logsumexp(
+65        ln_py_x[None, :, :] + ln_qx_xhat[:, :, None],  # `(xhat, x, y)`
+66        axis=1,
+67    )
+68
+69    return ln_qy_xhat
+
+ + + + +
+
+ +
+ + def + next_ln_qx_xhat(ln_px: numpy.ndarray, ln_qxhat_x: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
72def next_ln_qx_xhat(ln_px: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray:
+73    # q(xhat),
+74    # shape `(xhat)`
+75    ln_qxhat = next_ln_qxhat(ln_px, ln_qxhat_x)
+76
+77    # q(x,xhat) = p(x) q(xhat|x),
+78    # shape `(x, xhat)`
+79    ln_qxxhat = ln_px[:, None] + ln_qxhat_x
+80
+81    # p(x|xhat) = q(x, xhat) / q(xhat),
+82    # shape `(xhat, x)`
+83    ln_qx_xhat = ln_qxxhat.T - ln_qxhat[:, None]
+84
+85    return ln_qx_xhat
+
+ + + + +
+
+ +
+ + class + IBOptimizer(ultk.effcomm.information_bottleneck.ba.BaseRDOptimizer): + + + +
+ +
 93class IBOptimizer(BaseRDOptimizer):
+ 94    def __init__(
+ 95        self,
+ 96        pxy: np.ndarray,
+ 97        betas: np.ndarray,
+ 98        *args,
+ 99        **kwargs,
+100    ) -> None:
+101        """Estimate the optimal encoder for a given value of `beta` for the Information Bottleneck objective [Tishby et al., 1999]:
+102
+103        $\min_{q} I[X:\hat{X}] + \\beta \mathbb{E}[D_{KL}[p(y|x) || p(y|\hat{x})]].$
+104
+105        Args:
+106            pxy: 2D array of shape `(|X|, |Y|)` representing the joint probability mass function of the source and relevance variables.
+107
+108            betas: 1D array of values of beta, where each beta is a float corresponding to the slope of the rate-distoriton function at the point where evaluation is required
+109        """
+110        super().__init__(betas, *args, **kwargs)
+111
+112        # Add small value for working in logspace
+113        pxy_precision = pxy + PRECISION
+114        pxy_precision /= pxy_precision.sum()
+115        self.ln_pxy = np.log(pxy_precision)
+116
+117        self.ln_px = logsumexp(self.ln_pxy, axis=1)  # `(x)`
+118        self.px = np.exp(self.ln_px)
+119        self.ln_py_x = self.ln_pxy - logsumexp(
+120            self.ln_pxy, axis=1, keepdims=True
+121        )  # `(x, y)`
+122        self.results: list[IBResult] = None
+123
+124    def get_results(self) -> list[IBResult]:
+125        return super().get_results()
+126
+127    def next_dist_mat(
+128        self,
+129        *args,
+130        **kwargs,
+131    ) -> None:
+132        """IB distortion matrix."""
+133        self.dist_mat = ib_kl(np.exp(self.ln_py_x), np.exp(self.ln_qy_xhat))
+134
+135    def update_eqs(
+136        self,
+137        beta,
+138        *args,
+139        **kwargs,
+140    ) -> None:
+141        """Iterate the IB update equations."""
+142        self.ln_qxhat = next_ln_qxhat(self.ln_px, self.ln_qxhat_x)
+143        self.ln_qy_xhat = next_ln_qy_xhat(self.ln_pxy, self.ln_qxhat_x)
+144        self.next_dist_mat(*args, **kwargs)
+145        self.ln_qxhat_x = next_ln_qxhat_x(self.ln_qxhat, beta, self.dist_mat)
+146
+147    def compute_distortion(self, *args, **kwargs) -> float:
+148        # NOTE: we may still need to debug this; watch out for negative values
+149        # return np.exp(logsumexp(self.ln_px + self.ln_qxhat_x + np.log(self.dist_mat)))
+150        I_xy = mutual_info(np.exp(self.ln_pxy))
+151        edkl = I_xy - self.compute_accuracy()
+152        return edkl
+153
+154    def compute_accuracy(self, *args, **kwargs) -> float:
+155        return information_cond(
+156            np.exp(self.ln_qxhat),
+157            np.exp(self.ln_qy_xhat),
+158        )
+159
+160    def next_result(self, beta, *args, **kwargs) -> IBResult:
+161        """Get the result of the converged BA iteration for the IB objective.
+162
+163        Returns:
+164            an IBResult namedtuple of `(qxhat_x, rate, distortion, accuracy, beta)` values. This is:
+165
+166                `qxhat_x`, the optimal encoder, such that the
+167
+168                `rate` (in bits) of compressing X into X_hat, is minimized for the level of
+169
+170                `distortion` between X, X_hat with respect to Y, i.e. the
+171
+172                `accuracy` I[X_hat:Y] is maximized, for the specified
+173
+174                `beta` trade-off parameter
+175        """
+176        return IBResult(
+177            np.exp(self.ln_qxhat_x),
+178            self.compute_rate(),
+179            self.compute_distortion(),
+180            self.compute_accuracy(),
+181            beta,
+182        )
+
+ + + + +
+ +
+ + IBOptimizer(pxy: numpy.ndarray, betas: numpy.ndarray, *args, **kwargs) + + + +
+ +
 94    def __init__(
+ 95        self,
+ 96        pxy: np.ndarray,
+ 97        betas: np.ndarray,
+ 98        *args,
+ 99        **kwargs,
+100    ) -> None:
+101        """Estimate the optimal encoder for a given value of `beta` for the Information Bottleneck objective [Tishby et al., 1999]:
+102
+103        $\min_{q} I[X:\hat{X}] + \\beta \mathbb{E}[D_{KL}[p(y|x) || p(y|\hat{x})]].$
+104
+105        Args:
+106            pxy: 2D array of shape `(|X|, |Y|)` representing the joint probability mass function of the source and relevance variables.
+107
+108            betas: 1D array of values of beta, where each beta is a float corresponding to the slope of the rate-distoriton function at the point where evaluation is required
+109        """
+110        super().__init__(betas, *args, **kwargs)
+111
+112        # Add small value for working in logspace
+113        pxy_precision = pxy + PRECISION
+114        pxy_precision /= pxy_precision.sum()
+115        self.ln_pxy = np.log(pxy_precision)
+116
+117        self.ln_px = logsumexp(self.ln_pxy, axis=1)  # `(x)`
+118        self.px = np.exp(self.ln_px)
+119        self.ln_py_x = self.ln_pxy - logsumexp(
+120            self.ln_pxy, axis=1, keepdims=True
+121        )  # `(x, y)`
+122        self.results: list[IBResult] = None
+
+ + +

Estimate the optimal encoder for a given value of beta for the Information Bottleneck objective [Tishby et al., 1999]:

+ +

$\min_{q} I[X:\hat{X}] + \beta \mathbb{E}[D_{KL}[p(y|x) || p(y|\hat{x})]].$

+ +
Arguments:
+ +
    +
  • pxy: 2D array of shape (|X|, |Y|) representing the joint probability mass function of the source and relevance variables.
  • +
  • betas: 1D array of values of beta, where each beta is a float corresponding to the slope of the rate-distoriton function at the point where evaluation is required
  • +
+
+ + +
+
+
+ ln_pxy + + +
+ + + + +
+
+
+ ln_px + + +
+ + + + +
+
+
+ px + + +
+ + + + +
+
+
+ ln_py_x + + +
+ + + + +
+
+
+ results: list[IBResult] + + +
+ + + + +
+
+ +
+ + def + get_results(self) -> list[IBResult]: + + + +
+ +
124    def get_results(self) -> list[IBResult]:
+125        return super().get_results()
+
+ + + + +
+
+ +
+ + def + next_dist_mat(self, *args, **kwargs) -> None: + + + +
+ +
127    def next_dist_mat(
+128        self,
+129        *args,
+130        **kwargs,
+131    ) -> None:
+132        """IB distortion matrix."""
+133        self.dist_mat = ib_kl(np.exp(self.ln_py_x), np.exp(self.ln_qy_xhat))
+
+ + +

IB distortion matrix.

+
+ + +
+
+ +
+ + def + update_eqs(self, beta, *args, **kwargs) -> None: + + + +
+ +
135    def update_eqs(
+136        self,
+137        beta,
+138        *args,
+139        **kwargs,
+140    ) -> None:
+141        """Iterate the IB update equations."""
+142        self.ln_qxhat = next_ln_qxhat(self.ln_px, self.ln_qxhat_x)
+143        self.ln_qy_xhat = next_ln_qy_xhat(self.ln_pxy, self.ln_qxhat_x)
+144        self.next_dist_mat(*args, **kwargs)
+145        self.ln_qxhat_x = next_ln_qxhat_x(self.ln_qxhat, beta, self.dist_mat)
+
+ + +

Iterate the IB update equations.

+
+ + +
+
+ +
+ + def + compute_distortion(self, *args, **kwargs) -> float: + + + +
+ +
147    def compute_distortion(self, *args, **kwargs) -> float:
+148        # NOTE: we may still need to debug this; watch out for negative values
+149        # return np.exp(logsumexp(self.ln_px + self.ln_qxhat_x + np.log(self.dist_mat)))
+150        I_xy = mutual_info(np.exp(self.ln_pxy))
+151        edkl = I_xy - self.compute_accuracy()
+152        return edkl
+
+ + +

Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat.

+
+ + +
+
+ +
+ + def + compute_accuracy(self, *args, **kwargs) -> float: + + + +
+ +
154    def compute_accuracy(self, *args, **kwargs) -> float:
+155        return information_cond(
+156            np.exp(self.ln_qxhat),
+157            np.exp(self.ln_qy_xhat),
+158        )
+
+ + + + +
+
+ +
+ + def + next_result( self, beta, *args, **kwargs) -> IBResult: + + + +
+ +
160    def next_result(self, beta, *args, **kwargs) -> IBResult:
+161        """Get the result of the converged BA iteration for the IB objective.
+162
+163        Returns:
+164            an IBResult namedtuple of `(qxhat_x, rate, distortion, accuracy, beta)` values. This is:
+165
+166                `qxhat_x`, the optimal encoder, such that the
+167
+168                `rate` (in bits) of compressing X into X_hat, is minimized for the level of
+169
+170                `distortion` between X, X_hat with respect to Y, i.e. the
+171
+172                `accuracy` I[X_hat:Y] is maximized, for the specified
+173
+174                `beta` trade-off parameter
+175        """
+176        return IBResult(
+177            np.exp(self.ln_qxhat_x),
+178            self.compute_rate(),
+179            self.compute_distortion(),
+180            self.compute_accuracy(),
+181            beta,
+182        )
+
+ + +

Get the result of the converged BA iteration for the IB objective.

+ +
Returns:
+ +
+

an IBResult namedtuple of (qxhat_x, rate, distortion, accuracy, beta) values. This is:

+ +
`qxhat_x`, the optimal encoder, such that the
+
+`rate` (in bits) of compressing X into X_hat, is minimized for the level of
+
+`distortion` between X, X_hat with respect to Y, i.e. the
+
+`accuracy` I[X_hat:Y] is maximized, for the specified
+
+`beta` trade-off parameter
+
+
+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/ultk/effcomm/information_bottleneck/modeling.html b/docs/ultk/effcomm/information_bottleneck/modeling.html new file mode 100644 index 0000000..a0fe40a --- /dev/null +++ b/docs/ultk/effcomm/information_bottleneck/modeling.html @@ -0,0 +1,1928 @@ + + + + + + + ultk.effcomm.information_bottleneck.modeling API documentation + + + + + + + + + + + + +
+
+

+ultk.effcomm.information_bottleneck.modeling

+ + + + + + + +
  1"""Re-implementation of the IBNamingModel at https://github.com/nogazs/ib-color-naming/blob/master/src/ib_naming_model.py."""
+  2
+  3import numpy as np
+  4import warnings
+  5from ultk.util.io import read_pickle, write_pickle
+  6from ultk.language.language import Language, Expression, Meaning, FrozenDict, Universe
+  7from .tools import mutual_info, information_cond
+  8from .ib import IBOptimizer, IBResult
+  9from ..probability import joint
+ 10
+ 11##############################################################################
+ 12# Base IBNamingModel class
+ 13##############################################################################
+ 14
+ 15class IBNamingModel:
+ 16    """A model for simulating Information Bottleneck (IB) naming systems."""
+ 17
+ 18    def __init__(
+ 19        self, 
+ 20        pM: np.ndarray, 
+ 21        pU_M: np.ndarray, 
+ 22        betas: np.ndarray, 
+ 23        IB_curve: tuple[np.ndarray, np.ndarray], 
+ 24        qW_M: np.ndarray,
+ 25    ):
+ 26        """
+ 27        Initializes the IBNamingModel with given parameters.
+ 28
+ 29        Args:
+ 30            pM (np.ndarray): Prior distribution over meanings. Expected shape is (n, 1).
+ 31            pU_M (np.ndarray): Conditional distribution of observations given meanings.
+ 32            betas (np.ndarray): Array of beta values used for the IB curve.
+ 33            IB_curve (tuple[np.ndarray, np.ndarray]): tuple containing complexity and accuracy values along the IB curve.
+ 34            qW_M (np.ndarray): Initial encoder (naming system) matrix.
+ 35        """
+ 36        self.pM = pM if len(pM.shape) == 2 else pM[:, None]
+ 37        self.pU_M = pU_M
+ 38        self.I_MU = mutual_info(pU_M * self.pM)
+ 39        self.betas = betas
+ 40        self.IB_curve = np.array(IB_curve)
+ 41        self.qW_M = qW_M
+ 42        self.qW_M_orig = None
+ 43        self.F = IB_curve[0] - betas * IB_curve[1]
+ 44
+ 45    def m_hat(self, qW_M: np.ndarray) -> np.ndarray:
+ 46        """
+ 47        Computes the optimal Bayesian listener corresponding to the encoder.
+ 48
+ 49        Args:
+ 50            qW_M (np.ndarray): Encoder (naming system) matrix.
+ 51
+ 52        Returns:
+ 53            np.ndarray: Optimal decoder that corresponds to the given encoder.
+ 54        """
+ 55        pMW = qW_M * self.pM
+ 56        pM_W = pMW.T / pMW.sum(axis=0)[:, None]
+ 57        return pM_W.dot(self.pU_M)
+ 58
+ 59    def complexity(self, pW_M: np.ndarray) -> float:
+ 60        """
+ 61        Calculates the mutual information I(M;W) for a given encoder.
+ 62
+ 63        Args:
+ 64            pW_M (np.ndarray): Encoder (naming system) matrix.
+ 65
+ 66        Returns:
+ 67            float: Mutual information I(M;W).
+ 68        """
+ 69        return mutual_info(pW_M * self.pM)
+ 70
+ 71    def accuracy(self, pW_M: np.ndarray) -> float:
+ 72        """
+ 73        Calculates the mutual information I(W;U) for a given encoder.
+ 74
+ 75        Args:
+ 76            pW_M (np.ndarray): Encoder (naming system) matrix.
+ 77
+ 78        Returns:
+ 79            float: Mutual information I(W;U).
+ 80        """
+ 81        pMW = pW_M * self.pM
+ 82        pWU = pMW.T @ self.pU_M
+ 83        return mutual_info(pWU)
+ 84
+ 85    def d_IB(self, pW_M: np.ndarray) -> float:
+ 86        """
+ 87        Calculates the IB distortion for a given encoder, i.e. the KL divergence between speaker and listener meanings, $
+ 88        \mathbb{E}\left[D[m||\hat{m}]\right] = I(M;U) - I(W;U)$.
+ 89
+ 90        Args:
+ 91            pW_M (np.ndarray): Encoder (naming system) matrix.
+ 92
+ 93        Returns:
+ 94            float: Deviation from the optimal IB solution.
+ 95        """
+ 96        return self.I_MU - self.accuracy(pW_M)
+ 97
+ 98    def fit(self, pW_M: np.ndarray) -> tuple[float, float, float, np.ndarray]:
+ 99        """
+100        Fits the naming system to the IB curve.
+101
+102        Args:
+103            pW_M (np.ndarray): Encoder (naming system) matrix.
+104
+105        Returns:
+106            tuple containing:
+107                - epsilon (float): Deviation from optimality of pW_M.
+108                - gnid (float): Generalized normalized information distance (gNID) between qW_M and qW_M_fit.
+109                - bl (float): Fitted value of beta.
+110                - qW_M_fit (np.ndarray): Optimal IB system at bl.
+111        """
+112        Fl = self.complexity(pW_M) - self.betas * self.accuracy(pW_M)
+113        dFl = Fl - self.F
+114        bl_ind = dFl.argmin()
+115        bl = self.betas[bl_ind]
+116        epsilon = dFl.min() / bl
+117        qW_M_fit = self.qW_M[bl_ind]
+118        gnid = gNID(pW_M, qW_M_fit, self.pM)
+119        return epsilon, gnid, bl, qW_M_fit
+120    
+121    def save(self, fn: str = "ib_naming_model.pkl") -> None:
+122        """Save as pickle binary."""
+123        write_pickle(fn, self)
+124
+125    @classmethod
+126    def from_pickle(cls, fn: str):
+127        breakpoint()
+128        return read_pickle(fn)
+129
+130
+131# Helper
+132def gNID(pW_X: np.ndarray, pV_X: np.ndarray, pX: np.ndarray):
+133    """Compute Generalized Normalized Informational Distance (gNID, in Zaslavsky et al. 2018, SI, Section 3.2) between two encoders. Code credit: https://github.com/nogazs/ib-color-naming/blob/master/src/tools.py#L94
+134
+135    Args:
+136        pW_X: first encoder of shape `(|meanings|, |words|)`
+137
+138        pV_X: second encoder of shape `(|meanings|, |words|)`
+139
+140        pX: prior over source variables of shape `(|meanings|,)`
+141    """
+142    if len(pX.shape) == 1:
+143        pX = pX[:, None]
+144    elif pX.shape[0] == 1 and pX.shape[1] > 1:
+145        pX = pX.T
+146    pXW = pW_X * pX
+147    pWV = pXW.T @ (pV_X)
+148    pWW = pXW.T @ (pW_X)
+149    pVV = (pV_X * pX).T @ (pV_X)
+150    score = 1 - mutual_info(pWV) / (np.max([mutual_info(pWW), mutual_info(pVV)]))
+151    if score < 0:
+152        # N.B.: gNID is not necessarily non-negative (See SI, Section 3.2, paragraph 2.)
+153        warnings.warn(f"Negative gNID: {score}.")    
+154    return score
+155
+156
+157##############################################################################
+158# IB Bound computation
+159##############################################################################
+160
+161def compute_bound(
+162    pU_M: np.ndarray,
+163    pM: np.ndarray,
+164    betas: np.ndarray = np.logspace(0, 10, 100),
+165    **kwargs,
+166) -> list[IBResult]:
+167    """
+168    Computes the IB bound based on input distributions.
+169
+170    Args:
+171        pU_M (np.ndarray): Conditional distribution of observations given meanings.
+172        pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
+173        betas (np.ndarray, optional): Range of beta values for the IB curve. Defaults to logspace(0, 10, 100).
+174        **kwargs: Additional parameters for the IB optimizer.
+175
+176    Returns:
+177        list[IBResult]: List of results from the IB optimizer.
+178    """
+179    pxy = joint(pU_M, pM)
+180    optim = IBOptimizer(
+181        pxy,
+182        betas,
+183        **kwargs,
+184    )
+185    results = optim.get_results()
+186    return results
+187
+188def get_ib_naming_model(
+189    pU_M: np.ndarray,
+190    pM: np.ndarray = None,
+191    **bound_kwargs,    
+192) -> IBNamingModel:
+193    """
+194    Constructs an IBNamingModel by constructing the IB bound for the domain distribution P(M,U).
+195
+196    Args:
+197        pU_M (np.ndarray): Conditional distribution of observations given meanings.
+198        pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
+199        gammas (np.ndarray, optional): Range of gamma values for similarity selection. Defaults to logspace(-2, 2, 1000).
+200        **bound_kwargs: Additional parameters for IB bound computation. See `compute_bound` kwargs.
+201
+202    Returns:
+203        IBNamingModel: An IBNamingModel instance configured with the computed IB bound.    
+204    
+205    """
+206    results = compute_bound(pU_M, pM, **bound_kwargs)
+207
+208    qW_M, complexity, accuracy, beta = zip(*[(res.qxhat_x, res.rate, res.accuracy, res.beta) for res in results if res is not None])
+209
+210    IB_curve = (np.array(complexity), np.array(accuracy))
+211    
+212    naming_model = IBNamingModel(
+213        pM[:, None],
+214        pU_M,
+215        beta,
+216        IB_curve,
+217        qW_M,
+218    )
+219
+220    return naming_model    
+221
+222
+223##############################################################################
+224# Integration with ULTK Language
+225##############################################################################
+226
+227def encoder_to_language(
+228    qW_M: np.ndarray, 
+229    naming_model: IBNamingModel,
+230    universe: Universe,
+231    words: list[str] = None, 
+232    name: str = None, 
+233    natural: bool = False,
+234    ) -> Language:
+235    """Convert a stochastic encoder to a ULTK Language using an IBNamingModel bayesian decoder.
+236    
+237    Args:
+238        qW_M (np.ndarray): A stochastic matrix where rows correspond to meanings
+239            and columns correspond to words, defining the encoder.
+240        naming_model (IBNamingModel): An instance of the IBNamingModel used to 
+241            decode the encoder into a language.
+242        universe (Universe): The universe containing referents and the structure 
+243            in which the meanings are defined.
+244        words (list[str], optional): A list of word forms to use. If None, default 
+245            numeric indices are used. Defaults to None.
+246        name (str, optional): The name of the resulting Language. Defaults to None.
+247        natural (bool, optional): Whether the resulting Language is a natural 
+248            language. Defaults to False.
+249
+250    Returns:
+251        Language: The constructed Language object, where each expression maps a 
+252        word form to its corresponding meaning.
+253    """
+254
+255    if words is None:
+256        words = range(qW_M.shape[1])
+257
+258    return Language(
+259        expressions=tuple([
+260            Expression(
+261                form=str(words[i]),
+262                meaning=Meaning[float](
+263                    FrozenDict({
+264                        # define each mapping from referent -> probability
+265                        universe.referents[chip_num]: qm[chip_num]
+266                        for chip_num in range(qW_M.shape[0])
+267                    }), 
+268                    universe,
+269                )
+270            )
+271        for i, qm in enumerate(naming_model.m_hat(qW_M))
+272        ]),
+273        name=name,
+274        natural=natural,
+275    )
+276
+277
+278
+279
+280def pU_M_from_similarity(gamma: float, sim_mat: np.ndarray) -> np.ndarray:
+281    """
+282    Computes the conditional distribution p(U|M) based on similarity.
+283
+284    Args:
+285        gamma (float): Scaling factor for the similarity matrix.
+286        sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
+287
+288    Returns:
+289        np.ndarray: Conditional distribution p(U|M).
+290    """
+291    pU_M = np.exp(gamma * sim_mat)
+292    pU_M /= pU_M.sum(axis=1, keepdims=True)
+293    return pU_M
+294
+295
+296def get_imu(gamma: float, sim_mat: np.ndarray, pM: np.ndarray = None) -> np.ndarray:
+297    """
+298    Calculates the mutual information I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)).
+299
+300    Args:
+301        gamma (float): Scaling factor for the similarity matrix.
+302        sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
+303        pM (np.ndarray, optional): Prior distribution over meanings (M). Defaults to a uniform distribution.
+304
+305    Returns:
+306        np.ndarray: Mutual information I(M;U).
+307    """
+308    return information_cond(
+309        pB_A=pU_M_from_similarity(gamma, sim_mat),
+310        pA=pM if pM is not None else np.full(sim_mat.shape[0], 1/sim_mat.shape[0])
+311    )
+312
+313
+314def select_gamma(
+315    similarity_matrix: np.ndarray,
+316    pM: np.ndarray = None,
+317    gammas: np.ndarray = np.logspace(-2, 2, 1000)
+318) -> tuple[float, float, int, np.ndarray, np.ndarray]:
+319    """
+320    Selects the gamma value that corresponds to the midpoint of I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)).
+321
+322    Args:
+323        similarity_matrix (np.ndarray): Matrix encoding pairwise similarities between meanings (M) and referents (U).
+324        pM (np.ndarray, optional): Communicative need distribution over meanings (M). Defaults to None.
+325        gammas (np.ndarray, optional): Range of gamma values to sample. Defaults to logspace(-2, 2, 1000).
+326
+327    Returns:
+328        tuple: A tuple containing:
+329            - float: Gamma value corresponding to the midpoint of I(M;U).
+330            - float: Midpoint of I(M;U).
+331            - int: Index of the midpoint in the gamma array.
+332            - np.ndarray: Array of gamma values used.
+333            - np.ndarray: Array of computed I(M;U) values.
+334    """
+335    imus = np.array([get_imu(g, similarity_matrix, pM) for g in gammas])
+336    mid = (np.max(imus) - np.min(imus)) / 2
+337    mid_ind = np.argmin((imus - mid) ** 2)
+338    return gammas[mid_ind], mid, mid_ind, gammas, imus
+
+ + +
+
+ +
+ + class + IBNamingModel: + + + +
+ +
 16class IBNamingModel:
+ 17    """A model for simulating Information Bottleneck (IB) naming systems."""
+ 18
+ 19    def __init__(
+ 20        self, 
+ 21        pM: np.ndarray, 
+ 22        pU_M: np.ndarray, 
+ 23        betas: np.ndarray, 
+ 24        IB_curve: tuple[np.ndarray, np.ndarray], 
+ 25        qW_M: np.ndarray,
+ 26    ):
+ 27        """
+ 28        Initializes the IBNamingModel with given parameters.
+ 29
+ 30        Args:
+ 31            pM (np.ndarray): Prior distribution over meanings. Expected shape is (n, 1).
+ 32            pU_M (np.ndarray): Conditional distribution of observations given meanings.
+ 33            betas (np.ndarray): Array of beta values used for the IB curve.
+ 34            IB_curve (tuple[np.ndarray, np.ndarray]): tuple containing complexity and accuracy values along the IB curve.
+ 35            qW_M (np.ndarray): Initial encoder (naming system) matrix.
+ 36        """
+ 37        self.pM = pM if len(pM.shape) == 2 else pM[:, None]
+ 38        self.pU_M = pU_M
+ 39        self.I_MU = mutual_info(pU_M * self.pM)
+ 40        self.betas = betas
+ 41        self.IB_curve = np.array(IB_curve)
+ 42        self.qW_M = qW_M
+ 43        self.qW_M_orig = None
+ 44        self.F = IB_curve[0] - betas * IB_curve[1]
+ 45
+ 46    def m_hat(self, qW_M: np.ndarray) -> np.ndarray:
+ 47        """
+ 48        Computes the optimal Bayesian listener corresponding to the encoder.
+ 49
+ 50        Args:
+ 51            qW_M (np.ndarray): Encoder (naming system) matrix.
+ 52
+ 53        Returns:
+ 54            np.ndarray: Optimal decoder that corresponds to the given encoder.
+ 55        """
+ 56        pMW = qW_M * self.pM
+ 57        pM_W = pMW.T / pMW.sum(axis=0)[:, None]
+ 58        return pM_W.dot(self.pU_M)
+ 59
+ 60    def complexity(self, pW_M: np.ndarray) -> float:
+ 61        """
+ 62        Calculates the mutual information I(M;W) for a given encoder.
+ 63
+ 64        Args:
+ 65            pW_M (np.ndarray): Encoder (naming system) matrix.
+ 66
+ 67        Returns:
+ 68            float: Mutual information I(M;W).
+ 69        """
+ 70        return mutual_info(pW_M * self.pM)
+ 71
+ 72    def accuracy(self, pW_M: np.ndarray) -> float:
+ 73        """
+ 74        Calculates the mutual information I(W;U) for a given encoder.
+ 75
+ 76        Args:
+ 77            pW_M (np.ndarray): Encoder (naming system) matrix.
+ 78
+ 79        Returns:
+ 80            float: Mutual information I(W;U).
+ 81        """
+ 82        pMW = pW_M * self.pM
+ 83        pWU = pMW.T @ self.pU_M
+ 84        return mutual_info(pWU)
+ 85
+ 86    def d_IB(self, pW_M: np.ndarray) -> float:
+ 87        """
+ 88        Calculates the IB distortion for a given encoder, i.e. the KL divergence between speaker and listener meanings, $
+ 89        \mathbb{E}\left[D[m||\hat{m}]\right] = I(M;U) - I(W;U)$.
+ 90
+ 91        Args:
+ 92            pW_M (np.ndarray): Encoder (naming system) matrix.
+ 93
+ 94        Returns:
+ 95            float: Deviation from the optimal IB solution.
+ 96        """
+ 97        return self.I_MU - self.accuracy(pW_M)
+ 98
+ 99    def fit(self, pW_M: np.ndarray) -> tuple[float, float, float, np.ndarray]:
+100        """
+101        Fits the naming system to the IB curve.
+102
+103        Args:
+104            pW_M (np.ndarray): Encoder (naming system) matrix.
+105
+106        Returns:
+107            tuple containing:
+108                - epsilon (float): Deviation from optimality of pW_M.
+109                - gnid (float): Generalized normalized information distance (gNID) between qW_M and qW_M_fit.
+110                - bl (float): Fitted value of beta.
+111                - qW_M_fit (np.ndarray): Optimal IB system at bl.
+112        """
+113        Fl = self.complexity(pW_M) - self.betas * self.accuracy(pW_M)
+114        dFl = Fl - self.F
+115        bl_ind = dFl.argmin()
+116        bl = self.betas[bl_ind]
+117        epsilon = dFl.min() / bl
+118        qW_M_fit = self.qW_M[bl_ind]
+119        gnid = gNID(pW_M, qW_M_fit, self.pM)
+120        return epsilon, gnid, bl, qW_M_fit
+121    
+122    def save(self, fn: str = "ib_naming_model.pkl") -> None:
+123        """Save as pickle binary."""
+124        write_pickle(fn, self)
+125
+126    @classmethod
+127    def from_pickle(cls, fn: str):
+128        breakpoint()
+129        return read_pickle(fn)
+
+ + +

A model for simulating Information Bottleneck (IB) naming systems.

+
+ + +
+ +
+ + IBNamingModel( pM: numpy.ndarray, pU_M: numpy.ndarray, betas: numpy.ndarray, IB_curve: tuple[numpy.ndarray, numpy.ndarray], qW_M: numpy.ndarray) + + + +
+ +
19    def __init__(
+20        self, 
+21        pM: np.ndarray, 
+22        pU_M: np.ndarray, 
+23        betas: np.ndarray, 
+24        IB_curve: tuple[np.ndarray, np.ndarray], 
+25        qW_M: np.ndarray,
+26    ):
+27        """
+28        Initializes the IBNamingModel with given parameters.
+29
+30        Args:
+31            pM (np.ndarray): Prior distribution over meanings. Expected shape is (n, 1).
+32            pU_M (np.ndarray): Conditional distribution of observations given meanings.
+33            betas (np.ndarray): Array of beta values used for the IB curve.
+34            IB_curve (tuple[np.ndarray, np.ndarray]): tuple containing complexity and accuracy values along the IB curve.
+35            qW_M (np.ndarray): Initial encoder (naming system) matrix.
+36        """
+37        self.pM = pM if len(pM.shape) == 2 else pM[:, None]
+38        self.pU_M = pU_M
+39        self.I_MU = mutual_info(pU_M * self.pM)
+40        self.betas = betas
+41        self.IB_curve = np.array(IB_curve)
+42        self.qW_M = qW_M
+43        self.qW_M_orig = None
+44        self.F = IB_curve[0] - betas * IB_curve[1]
+
+ + +

Initializes the IBNamingModel with given parameters.

+ +
Arguments:
+ +
    +
  • pM (np.ndarray): Prior distribution over meanings. Expected shape is (n, 1).
  • +
  • pU_M (np.ndarray): Conditional distribution of observations given meanings.
  • +
  • betas (np.ndarray): Array of beta values used for the IB curve.
  • +
  • IB_curve (tuple[np.ndarray, np.ndarray]): tuple containing complexity and accuracy values along the IB curve.
  • +
  • qW_M (np.ndarray): Initial encoder (naming system) matrix.
  • +
+
+ + +
+
+
+ pM + + +
+ + + + +
+
+
+ pU_M + + +
+ + + + +
+
+
+ I_MU + + +
+ + + + +
+
+
+ betas + + +
+ + + + +
+
+
+ IB_curve + + +
+ + + + +
+
+
+ qW_M + + +
+ + + + +
+
+
+ qW_M_orig + + +
+ + + + +
+
+
+ F + + +
+ + + + +
+
+ +
+ + def + m_hat(self, qW_M: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
46    def m_hat(self, qW_M: np.ndarray) -> np.ndarray:
+47        """
+48        Computes the optimal Bayesian listener corresponding to the encoder.
+49
+50        Args:
+51            qW_M (np.ndarray): Encoder (naming system) matrix.
+52
+53        Returns:
+54            np.ndarray: Optimal decoder that corresponds to the given encoder.
+55        """
+56        pMW = qW_M * self.pM
+57        pM_W = pMW.T / pMW.sum(axis=0)[:, None]
+58        return pM_W.dot(self.pU_M)
+
+ + +

Computes the optimal Bayesian listener corresponding to the encoder.

+ +
Arguments:
+ +
    +
  • qW_M (np.ndarray): Encoder (naming system) matrix.
  • +
+ +
Returns:
+ +
+

np.ndarray: Optimal decoder that corresponds to the given encoder.

+
+
+ + +
+
+ +
+ + def + complexity(self, pW_M: numpy.ndarray) -> float: + + + +
+ +
60    def complexity(self, pW_M: np.ndarray) -> float:
+61        """
+62        Calculates the mutual information I(M;W) for a given encoder.
+63
+64        Args:
+65            pW_M (np.ndarray): Encoder (naming system) matrix.
+66
+67        Returns:
+68            float: Mutual information I(M;W).
+69        """
+70        return mutual_info(pW_M * self.pM)
+
+ + +

Calculates the mutual information I(M;W) for a given encoder.

+ +
Arguments:
+ +
    +
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • +
+ +
Returns:
+ +
+

float: Mutual information I(M;W).

+
+
+ + +
+
+ +
+ + def + accuracy(self, pW_M: numpy.ndarray) -> float: + + + +
+ +
72    def accuracy(self, pW_M: np.ndarray) -> float:
+73        """
+74        Calculates the mutual information I(W;U) for a given encoder.
+75
+76        Args:
+77            pW_M (np.ndarray): Encoder (naming system) matrix.
+78
+79        Returns:
+80            float: Mutual information I(W;U).
+81        """
+82        pMW = pW_M * self.pM
+83        pWU = pMW.T @ self.pU_M
+84        return mutual_info(pWU)
+
+ + +

Calculates the mutual information I(W;U) for a given encoder.

+ +
Arguments:
+ +
    +
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • +
+ +
Returns:
+ +
+

float: Mutual information I(W;U).

+
+
+ + +
+
+ +
+ + def + d_IB(self, pW_M: numpy.ndarray) -> float: + + + +
+ +
86    def d_IB(self, pW_M: np.ndarray) -> float:
+87        """
+88        Calculates the IB distortion for a given encoder, i.e. the KL divergence between speaker and listener meanings, $
+89        \mathbb{E}\left[D[m||\hat{m}]\right] = I(M;U) - I(W;U)$.
+90
+91        Args:
+92            pW_M (np.ndarray): Encoder (naming system) matrix.
+93
+94        Returns:
+95            float: Deviation from the optimal IB solution.
+96        """
+97        return self.I_MU - self.accuracy(pW_M)
+
+ + +

Calculates the IB distortion for a given encoder, i.e. the KL divergence between speaker and listener meanings, $ +\mathbb{E}\left[D[m||\hat{m}] +ight] = I(M;U) - I(W;U)$.

+ +
Arguments:
+ +
    +
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • +
+ +
Returns:
+ +
+

float: Deviation from the optimal IB solution.

+
+
+ + +
+
+ +
+ + def + fit(self, pW_M: numpy.ndarray) -> tuple[float, float, float, numpy.ndarray]: + + + +
+ +
 99    def fit(self, pW_M: np.ndarray) -> tuple[float, float, float, np.ndarray]:
+100        """
+101        Fits the naming system to the IB curve.
+102
+103        Args:
+104            pW_M (np.ndarray): Encoder (naming system) matrix.
+105
+106        Returns:
+107            tuple containing:
+108                - epsilon (float): Deviation from optimality of pW_M.
+109                - gnid (float): Generalized normalized information distance (gNID) between qW_M and qW_M_fit.
+110                - bl (float): Fitted value of beta.
+111                - qW_M_fit (np.ndarray): Optimal IB system at bl.
+112        """
+113        Fl = self.complexity(pW_M) - self.betas * self.accuracy(pW_M)
+114        dFl = Fl - self.F
+115        bl_ind = dFl.argmin()
+116        bl = self.betas[bl_ind]
+117        epsilon = dFl.min() / bl
+118        qW_M_fit = self.qW_M[bl_ind]
+119        gnid = gNID(pW_M, qW_M_fit, self.pM)
+120        return epsilon, gnid, bl, qW_M_fit
+
+ + +

Fits the naming system to the IB curve.

+ +
Arguments:
+ +
    +
  • pW_M (np.ndarray): Encoder (naming system) matrix.
  • +
+ +
Returns:
+ +
+

tuple containing: + - epsilon (float): Deviation from optimality of pW_M. + - gnid (float): Generalized normalized information distance (gNID) between qW_M and qW_M_fit. + - bl (float): Fitted value of beta. + - qW_M_fit (np.ndarray): Optimal IB system at bl.

+
+
+ + +
+
+ +
+ + def + save(self, fn: str = 'ib_naming_model.pkl') -> None: + + + +
+ +
122    def save(self, fn: str = "ib_naming_model.pkl") -> None:
+123        """Save as pickle binary."""
+124        write_pickle(fn, self)
+
+ + +

Save as pickle binary.

+
+ + +
+
+ +
+
@classmethod
+ + def + from_pickle(cls, fn: str): + + + +
+ +
126    @classmethod
+127    def from_pickle(cls, fn: str):
+128        breakpoint()
+129        return read_pickle(fn)
+
+ + + + +
+
+
+ +
+ + def + gNID(pW_X: numpy.ndarray, pV_X: numpy.ndarray, pX: numpy.ndarray): + + + +
+ +
133def gNID(pW_X: np.ndarray, pV_X: np.ndarray, pX: np.ndarray):
+134    """Compute Generalized Normalized Informational Distance (gNID, in Zaslavsky et al. 2018, SI, Section 3.2) between two encoders. Code credit: https://github.com/nogazs/ib-color-naming/blob/master/src/tools.py#L94
+135
+136    Args:
+137        pW_X: first encoder of shape `(|meanings|, |words|)`
+138
+139        pV_X: second encoder of shape `(|meanings|, |words|)`
+140
+141        pX: prior over source variables of shape `(|meanings|,)`
+142    """
+143    if len(pX.shape) == 1:
+144        pX = pX[:, None]
+145    elif pX.shape[0] == 1 and pX.shape[1] > 1:
+146        pX = pX.T
+147    pXW = pW_X * pX
+148    pWV = pXW.T @ (pV_X)
+149    pWW = pXW.T @ (pW_X)
+150    pVV = (pV_X * pX).T @ (pV_X)
+151    score = 1 - mutual_info(pWV) / (np.max([mutual_info(pWW), mutual_info(pVV)]))
+152    if score < 0:
+153        # N.B.: gNID is not necessarily non-negative (See SI, Section 3.2, paragraph 2.)
+154        warnings.warn(f"Negative gNID: {score}.")    
+155    return score
+
+ + +

Compute Generalized Normalized Informational Distance (gNID, in Zaslavsky et al. 2018, SI, Section 3.2) between two encoders. Code credit: https://github.com/nogazs/ib-color-naming/blob/master/src/tools.py#L94

+ +
Arguments:
+ +
    +
  • pW_X: first encoder of shape (|meanings|, |words|)
  • +
  • pV_X: second encoder of shape (|meanings|, |words|)
  • +
  • pX: prior over source variables of shape (|meanings|,)
  • +
+
+ + +
+
+ +
+ + def + compute_bound( pU_M: numpy.ndarray, pM: numpy.ndarray, betas: numpy.ndarray = array([1.00000000e+00, 1.26185688e+00, 1.59228279e+00, 2.00923300e+00, + 2.53536449e+00, 3.19926714e+00, 4.03701726e+00, 5.09413801e+00, + 6.42807312e+00, 8.11130831e+00, 1.02353102e+01, 1.29154967e+01, + 1.62975083e+01, 2.05651231e+01, 2.59502421e+01, 3.27454916e+01, + 4.13201240e+01, 5.21400829e+01, 6.57933225e+01, 8.30217568e+01, + 1.04761575e+02, 1.32194115e+02, 1.66810054e+02, 2.10490414e+02, + 2.65608778e+02, 3.35160265e+02, 4.22924287e+02, 5.33669923e+02, + 6.73415066e+02, 8.49753436e+02, 1.07226722e+03, 1.35304777e+03, + 1.70735265e+03, 2.15443469e+03, 2.71858824e+03, 3.43046929e+03, + 4.32876128e+03, 5.46227722e+03, 6.89261210e+03, 8.69749003e+03, + 1.09749877e+04, 1.38488637e+04, 1.74752840e+04, 2.20513074e+04, + 2.78255940e+04, 3.51119173e+04, 4.43062146e+04, 5.59081018e+04, + 7.05480231e+04, 8.90215085e+04, 1.12332403e+05, 1.41747416e+05, + 1.78864953e+05, 2.25701972e+05, 2.84803587e+05, 3.59381366e+05, + 4.53487851e+05, 5.72236766e+05, 7.22080902e+05, 9.11162756e+05, + 1.14975700e+06, 1.45082878e+06, 1.83073828e+06, 2.31012970e+06, + 2.91505306e+06, 3.67837977e+06, 4.64158883e+06, 5.85702082e+06, + 7.39072203e+06, 9.32603347e+06, 1.17681195e+07, 1.48496826e+07, + 1.87381742e+07, 2.36448941e+07, 2.98364724e+07, 3.76493581e+07, + 4.75081016e+07, 5.99484250e+07, 7.56463328e+07, 9.54548457e+07, + 1.20450354e+08, 1.51991108e+08, 1.91791026e+08, 2.42012826e+08, + 3.05385551e+08, 3.85352859e+08, 4.86260158e+08, 6.13590727e+08, + 7.74263683e+08, 9.77009957e+08, 1.23284674e+09, 1.55567614e+09, + 1.96304065e+09, 2.47707636e+09, 3.12571585e+09, 3.94420606e+09, + 4.97702356e+09, 6.28029144e+09, 7.92482898e+09, 1.00000000e+10]), **kwargs) -> list[ultk.effcomm.information_bottleneck.ib.IBResult]: + + + +
+ +
162def compute_bound(
+163    pU_M: np.ndarray,
+164    pM: np.ndarray,
+165    betas: np.ndarray = np.logspace(0, 10, 100),
+166    **kwargs,
+167) -> list[IBResult]:
+168    """
+169    Computes the IB bound based on input distributions.
+170
+171    Args:
+172        pU_M (np.ndarray): Conditional distribution of observations given meanings.
+173        pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
+174        betas (np.ndarray, optional): Range of beta values for the IB curve. Defaults to logspace(0, 10, 100).
+175        **kwargs: Additional parameters for the IB optimizer.
+176
+177    Returns:
+178        list[IBResult]: List of results from the IB optimizer.
+179    """
+180    pxy = joint(pU_M, pM)
+181    optim = IBOptimizer(
+182        pxy,
+183        betas,
+184        **kwargs,
+185    )
+186    results = optim.get_results()
+187    return results
+
+ + +

Computes the IB bound based on input distributions.

+ +
Arguments:
+ +
    +
  • pU_M (np.ndarray): Conditional distribution of observations given meanings.
  • +
  • pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
  • +
  • betas (np.ndarray, optional): Range of beta values for the IB curve. Defaults to logspace(0, 10, 100).
  • +
  • **kwargs: Additional parameters for the IB optimizer.
  • +
+ +
Returns:
+ +
+

list[IBResult]: List of results from the IB optimizer.

+
+
+ + +
+
+ +
+ + def + get_ib_naming_model( pU_M: numpy.ndarray, pM: numpy.ndarray = None, **bound_kwargs) -> IBNamingModel: + + + +
+ +
189def get_ib_naming_model(
+190    pU_M: np.ndarray,
+191    pM: np.ndarray = None,
+192    **bound_kwargs,    
+193) -> IBNamingModel:
+194    """
+195    Constructs an IBNamingModel by constructing the IB bound for the domain distribution P(M,U).
+196
+197    Args:
+198        pU_M (np.ndarray): Conditional distribution of observations given meanings.
+199        pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
+200        gammas (np.ndarray, optional): Range of gamma values for similarity selection. Defaults to logspace(-2, 2, 1000).
+201        **bound_kwargs: Additional parameters for IB bound computation. See `compute_bound` kwargs.
+202
+203    Returns:
+204        IBNamingModel: An IBNamingModel instance configured with the computed IB bound.    
+205    
+206    """
+207    results = compute_bound(pU_M, pM, **bound_kwargs)
+208
+209    qW_M, complexity, accuracy, beta = zip(*[(res.qxhat_x, res.rate, res.accuracy, res.beta) for res in results if res is not None])
+210
+211    IB_curve = (np.array(complexity), np.array(accuracy))
+212    
+213    naming_model = IBNamingModel(
+214        pM[:, None],
+215        pU_M,
+216        beta,
+217        IB_curve,
+218        qW_M,
+219    )
+220
+221    return naming_model    
+
+ + +

Constructs an IBNamingModel by constructing the IB bound for the domain distribution P(M,U).

+ +
Arguments:
+ +
    +
  • pU_M (np.ndarray): Conditional distribution of observations given meanings.
  • +
  • pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None.
  • +
  • gammas (np.ndarray, optional): Range of gamma values for similarity selection. Defaults to logspace(-2, 2, 1000).
  • +
  • **bound_kwargs: Additional parameters for IB bound computation. See compute_bound kwargs.
  • +
+ +
Returns:
+ +
+

IBNamingModel: An IBNamingModel instance configured with the computed IB bound.

+
+
+ + +
+
+ +
+ + def + encoder_to_language( qW_M: numpy.ndarray, naming_model: IBNamingModel, universe: ultk.language.semantics.Universe, words: list[str] = None, name: str = None, natural: bool = False) -> ultk.language.language.Language: + + + +
+ +
228def encoder_to_language(
+229    qW_M: np.ndarray, 
+230    naming_model: IBNamingModel,
+231    universe: Universe,
+232    words: list[str] = None, 
+233    name: str = None, 
+234    natural: bool = False,
+235    ) -> Language:
+236    """Convert a stochastic encoder to a ULTK Language using an IBNamingModel bayesian decoder.
+237    
+238    Args:
+239        qW_M (np.ndarray): A stochastic matrix where rows correspond to meanings
+240            and columns correspond to words, defining the encoder.
+241        naming_model (IBNamingModel): An instance of the IBNamingModel used to 
+242            decode the encoder into a language.
+243        universe (Universe): The universe containing referents and the structure 
+244            in which the meanings are defined.
+245        words (list[str], optional): A list of word forms to use. If None, default 
+246            numeric indices are used. Defaults to None.
+247        name (str, optional): The name of the resulting Language. Defaults to None.
+248        natural (bool, optional): Whether the resulting Language is a natural 
+249            language. Defaults to False.
+250
+251    Returns:
+252        Language: The constructed Language object, where each expression maps a 
+253        word form to its corresponding meaning.
+254    """
+255
+256    if words is None:
+257        words = range(qW_M.shape[1])
+258
+259    return Language(
+260        expressions=tuple([
+261            Expression(
+262                form=str(words[i]),
+263                meaning=Meaning[float](
+264                    FrozenDict({
+265                        # define each mapping from referent -> probability
+266                        universe.referents[chip_num]: qm[chip_num]
+267                        for chip_num in range(qW_M.shape[0])
+268                    }), 
+269                    universe,
+270                )
+271            )
+272        for i, qm in enumerate(naming_model.m_hat(qW_M))
+273        ]),
+274        name=name,
+275        natural=natural,
+276    )
+
+ + +

Convert a stochastic encoder to a ULTK Language using an IBNamingModel bayesian decoder.

+ +
Arguments:
+ +
    +
  • qW_M (np.ndarray): A stochastic matrix where rows correspond to meanings +and columns correspond to words, defining the encoder.
  • +
  • naming_model (IBNamingModel): An instance of the IBNamingModel used to +decode the encoder into a language.
  • +
  • universe (Universe): The universe containing referents and the structure +in which the meanings are defined.
  • +
  • words (list[str], optional): A list of word forms to use. If None, default +numeric indices are used. Defaults to None.
  • +
  • name (str, optional): The name of the resulting Language. Defaults to None.
  • +
  • natural (bool, optional): Whether the resulting Language is a natural +language. Defaults to False.
  • +
+ +
Returns:
+ +
+

Language: The constructed Language object, where each expression maps a + word form to its corresponding meaning.

+
+
+ + +
+
+ +
+ + def + pU_M_from_similarity(gamma: float, sim_mat: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
281def pU_M_from_similarity(gamma: float, sim_mat: np.ndarray) -> np.ndarray:
+282    """
+283    Computes the conditional distribution p(U|M) based on similarity.
+284
+285    Args:
+286        gamma (float): Scaling factor for the similarity matrix.
+287        sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
+288
+289    Returns:
+290        np.ndarray: Conditional distribution p(U|M).
+291    """
+292    pU_M = np.exp(gamma * sim_mat)
+293    pU_M /= pU_M.sum(axis=1, keepdims=True)
+294    return pU_M
+
+ + +

Computes the conditional distribution p(U|M) based on similarity.

+ +
Arguments:
+ +
    +
  • gamma (float): Scaling factor for the similarity matrix.
  • +
  • sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
  • +
+ +
Returns:
+ +
+

np.ndarray: Conditional distribution p(U|M).

+
+
+ + +
+
+ +
+ + def + get_imu( gamma: float, sim_mat: numpy.ndarray, pM: numpy.ndarray = None) -> numpy.ndarray: + + + +
+ +
297def get_imu(gamma: float, sim_mat: np.ndarray, pM: np.ndarray = None) -> np.ndarray:
+298    """
+299    Calculates the mutual information I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)).
+300
+301    Args:
+302        gamma (float): Scaling factor for the similarity matrix.
+303        sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
+304        pM (np.ndarray, optional): Prior distribution over meanings (M). Defaults to a uniform distribution.
+305
+306    Returns:
+307        np.ndarray: Mutual information I(M;U).
+308    """
+309    return information_cond(
+310        pB_A=pU_M_from_similarity(gamma, sim_mat),
+311        pA=pM if pM is not None else np.full(sim_mat.shape[0], 1/sim_mat.shape[0])
+312    )
+
+ + +

Calculates the mutual information I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)).

+ +
Arguments:
+ +
    +
  • gamma (float): Scaling factor for the similarity matrix.
  • +
  • sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U).
  • +
  • pM (np.ndarray, optional): Prior distribution over meanings (M). Defaults to a uniform distribution.
  • +
+ +
Returns:
+ +
+

np.ndarray: Mutual information I(M;U).

+
+
+ + +
+
+ +
+ + def + select_gamma( similarity_matrix: numpy.ndarray, pM: numpy.ndarray = None, gammas: numpy.ndarray = array([1.00000000e-02, 1.00926219e-02, 1.01861017e-02, 1.02804473e-02, + 1.03756668e-02, 1.04717682e-02, 1.05687597e-02, 1.06666496e-02, + 1.07654461e-02, 1.08651577e-02, 1.09657929e-02, 1.10673602e-02, + 1.11698682e-02, 1.12733256e-02, 1.13777413e-02, 1.14831241e-02, + 1.15894830e-02, 1.16968270e-02, 1.18051653e-02, 1.19145070e-02, + 1.20248614e-02, 1.21362380e-02, 1.22486461e-02, 1.23620954e-02, + 1.24765955e-02, 1.25921561e-02, 1.27087871e-02, 1.28264983e-02, + 1.29452998e-02, 1.30652016e-02, 1.31862140e-02, 1.33083472e-02, + 1.34316117e-02, 1.35560179e-02, 1.36815763e-02, 1.38082977e-02, + 1.39361927e-02, 1.40652724e-02, 1.41955477e-02, 1.43270295e-02, + 1.44597292e-02, 1.45936580e-02, 1.47288272e-02, 1.48652484e-02, + 1.50029332e-02, 1.51418933e-02, 1.52821404e-02, 1.54236865e-02, + 1.55665436e-02, 1.57107239e-02, 1.58562396e-02, 1.60031031e-02, + 1.61513269e-02, 1.63009236e-02, 1.64519059e-02, 1.66042866e-02, + 1.67580786e-02, 1.69132952e-02, 1.70699493e-02, 1.72280545e-02, + 1.73876240e-02, 1.75486715e-02, 1.77112106e-02, 1.78752553e-02, + 1.80408193e-02, 1.82079168e-02, 1.83765620e-02, 1.85467692e-02, + 1.87185529e-02, 1.88919278e-02, 1.90669084e-02, 1.92435098e-02, + 1.94217468e-02, 1.96016347e-02, 1.97831888e-02, 1.99664245e-02, + 2.01513573e-02, 2.03380031e-02, 2.05263775e-02, 2.07164968e-02, + 2.09083769e-02, 2.11020343e-02, 2.12974854e-02, 2.14947467e-02, + 2.16938352e-02, 2.18947676e-02, 2.20975611e-02, 2.23022330e-02, + 2.25088005e-02, 2.27172813e-02, 2.29276931e-02, 2.31400538e-02, + 2.33543814e-02, 2.35706941e-02, 2.37890104e-02, 2.40093488e-02, + 2.42317279e-02, 2.44561668e-02, 2.46826845e-02, 2.49113003e-02, + 2.51420335e-02, 2.53749038e-02, 2.56099310e-02, 2.58471351e-02, + 2.60865362e-02, 2.63281547e-02, 2.65720111e-02, 2.68181261e-02, + 2.70665207e-02, 2.73172160e-02, 2.75702333e-02, 2.78255940e-02, + 2.80833200e-02, 2.83434331e-02, 2.86059554e-02, 2.88709092e-02, + 2.91383170e-02, 2.94082017e-02, 2.96805861e-02, 2.99554933e-02, + 3.02329468e-02, 3.05129702e-02, 3.07955871e-02, 3.10808217e-02, + 3.13686982e-02, 3.16592411e-02, 3.19524751e-02, 3.22484250e-02, + 3.25471161e-02, 3.28485737e-02, 3.31528234e-02, 3.34598912e-02, + 3.37698031e-02, 3.40825855e-02, 3.43982649e-02, 3.47168682e-02, + 3.50384225e-02, 3.53629550e-02, 3.56904935e-02, 3.60210656e-02, + 3.63546996e-02, 3.66914238e-02, 3.70312668e-02, 3.73742574e-02, + 3.77204249e-02, 3.80697987e-02, 3.84224085e-02, 3.87782841e-02, + 3.91374560e-02, 3.94999546e-02, 3.98658107e-02, 4.02350555e-02, + 4.06077203e-02, 4.09838367e-02, 4.13634368e-02, 4.17465529e-02, + 4.21332174e-02, 4.25234633e-02, 4.29173238e-02, 4.33148322e-02, + 4.37160225e-02, 4.41209286e-02, 4.45295851e-02, 4.49420266e-02, + 4.53582883e-02, 4.57784054e-02, 4.62024137e-02, 4.66303493e-02, + 4.70622485e-02, 4.74981480e-02, 4.79380850e-02, 4.83820966e-02, + 4.88302209e-02, 4.92824957e-02, 4.97389596e-02, 5.01996513e-02, + 5.06646101e-02, 5.11338754e-02, 5.16074871e-02, 5.20854855e-02, + 5.25679112e-02, 5.30548053e-02, 5.35462090e-02, 5.40421642e-02, + 5.45427131e-02, 5.50478981e-02, 5.55577622e-02, 5.60723488e-02, + 5.65917016e-02, 5.71158648e-02, 5.76448828e-02, 5.81788007e-02, + 5.87176639e-02, 5.92615181e-02, 5.98104096e-02, 6.03643851e-02, + 6.09234915e-02, 6.14877765e-02, 6.20572881e-02, 6.26320745e-02, + 6.32121848e-02, 6.37976681e-02, 6.43885743e-02, 6.49849535e-02, + 6.55868566e-02, 6.61943346e-02, 6.68074392e-02, 6.74262224e-02, + 6.80507370e-02, 6.86810359e-02, 6.93171728e-02, 6.99592017e-02, + 7.06071771e-02, 7.12611543e-02, 7.19211887e-02, 7.25873365e-02, + 7.32596543e-02, 7.39381992e-02, 7.46230289e-02, 7.53142017e-02, + 7.60117762e-02, 7.67158118e-02, 7.74263683e-02, 7.81435061e-02, + 7.88672862e-02, 7.95977700e-02, 8.03350198e-02, 8.10790981e-02, + 8.18300682e-02, 8.25879939e-02, 8.33529397e-02, 8.41249705e-02, + 8.49041520e-02, 8.56905505e-02, 8.64842328e-02, 8.72852662e-02, + 8.80937190e-02, 8.89096599e-02, 8.97331581e-02, 9.05642838e-02, + 9.14031075e-02, 9.22497005e-02, 9.31041349e-02, 9.39664831e-02, + 9.48368187e-02, 9.57152154e-02, 9.66017480e-02, 9.74964918e-02, + 9.83995230e-02, 9.93109181e-02, 1.00230755e-01, 1.01159111e-01, + 1.02096066e-01, 1.03041699e-01, 1.03996091e-01, 1.04959323e-01, + 1.05931476e-01, 1.06912634e-01, 1.07902879e-01, 1.08902296e-01, + 1.09910970e-01, 1.10928986e-01, 1.11956432e-01, 1.12993394e-01, + 1.14039960e-01, 1.15096220e-01, 1.16162263e-01, 1.17238180e-01, + 1.18324063e-01, 1.19420003e-01, 1.20526094e-01, 1.21642429e-01, + 1.22769105e-01, 1.23906216e-01, 1.25053859e-01, 1.26212131e-01, + 1.27381132e-01, 1.28560961e-01, 1.29751717e-01, 1.30953502e-01, + 1.32166418e-01, 1.33390569e-01, 1.34626058e-01, 1.35872990e-01, + 1.37131472e-01, 1.38401610e-01, 1.39683512e-01, 1.40977287e-01, + 1.42283046e-01, 1.43600898e-01, 1.44930957e-01, 1.46273336e-01, + 1.47628147e-01, 1.48995507e-01, 1.50375532e-01, 1.51768339e-01, + 1.53174046e-01, 1.54592774e-01, 1.56024641e-01, 1.57469771e-01, + 1.58928287e-01, 1.60400311e-01, 1.61885969e-01, 1.63385388e-01, + 1.64898694e-01, 1.66426018e-01, 1.67967487e-01, 1.69523234e-01, + 1.71093391e-01, 1.72678090e-01, 1.74277468e-01, 1.75891659e-01, + 1.77520801e-01, 1.79165033e-01, 1.80824493e-01, 1.82499324e-01, + 1.84189668e-01, 1.85895668e-01, 1.87617469e-01, 1.89355218e-01, + 1.91109062e-01, 1.92879151e-01, 1.94665634e-01, 1.96468665e-01, + 1.98288395e-01, 2.00124980e-01, 2.01978576e-01, 2.03849340e-01, + 2.05737431e-01, 2.07643011e-01, 2.09566240e-01, 2.11507282e-01, + 2.13466303e-01, 2.15443469e-01, 2.17438948e-01, 2.19452909e-01, + 2.21485523e-01, 2.23536965e-01, 2.25607407e-01, 2.27697026e-01, + 2.29805999e-01, 2.31934506e-01, 2.34082728e-01, 2.36250847e-01, + 2.38439047e-01, 2.40647515e-01, 2.42876438e-01, 2.45126006e-01, + 2.47396410e-01, 2.49687843e-01, 2.52000499e-01, 2.54334576e-01, + 2.56690272e-01, 2.59067786e-01, 2.61467321e-01, 2.63889081e-01, + 2.66333273e-01, 2.68800102e-01, 2.71289780e-01, 2.73802518e-01, + 2.76338529e-01, 2.78898029e-01, 2.81481236e-01, 2.84088369e-01, + 2.86719650e-01, 2.89375302e-01, 2.92055551e-01, 2.94760626e-01, + 2.97490755e-01, 3.00246171e-01, 3.03027108e-01, 3.05833803e-01, + 3.08666494e-01, 3.11525422e-01, 3.14410830e-01, 3.17322963e-01, + 3.20262069e-01, 3.23228398e-01, 3.26222201e-01, 3.29243733e-01, + 3.32293252e-01, 3.35371015e-01, 3.38477286e-01, 3.41612327e-01, + 3.44776405e-01, 3.47969790e-01, 3.51192753e-01, 3.54445567e-01, + 3.57728510e-01, 3.61041860e-01, 3.64385898e-01, 3.67760910e-01, + 3.71167182e-01, 3.74605003e-01, 3.78074666e-01, 3.81576466e-01, + 3.85110700e-01, 3.88677669e-01, 3.92277676e-01, 3.95911027e-01, + 3.99578030e-01, 4.03278998e-01, 4.07014245e-01, 4.10784089e-01, + 4.14588850e-01, 4.18428851e-01, 4.22304419e-01, 4.26215883e-01, + 4.30163576e-01, 4.34147833e-01, 4.38168993e-01, 4.42227398e-01, + 4.46323393e-01, 4.50457325e-01, 4.54629547e-01, 4.58840413e-01, + 4.63090280e-01, 4.67379511e-01, 4.71708469e-01, 4.76077523e-01, + 4.80487044e-01, 4.84937407e-01, 4.89428990e-01, 4.93962174e-01, + 4.98537346e-01, 5.03154895e-01, 5.07815211e-01, 5.12518693e-01, + 5.17265739e-01, 5.22056753e-01, 5.26892142e-01, 5.31772318e-01, + 5.36697695e-01, 5.41668691e-01, 5.46685730e-01, 5.51749238e-01, + 5.56859644e-01, 5.62017385e-01, 5.67222897e-01, 5.72476624e-01, + 5.77779012e-01, 5.83130511e-01, 5.88531578e-01, 5.93982669e-01, + 5.99484250e-01, 6.05036788e-01, 6.10640754e-01, 6.16296626e-01, + 6.22004883e-01, 6.27766011e-01, 6.33580499e-01, 6.39448843e-01, + 6.45371540e-01, 6.51349095e-01, 6.57382014e-01, 6.63470812e-01, + 6.69616005e-01, 6.75818117e-01, 6.82077673e-01, 6.88395207e-01, + 6.94771255e-01, 7.01206359e-01, 7.07701066e-01, 7.14255929e-01, + 7.20871503e-01, 7.27548353e-01, 7.34287045e-01, 7.41088152e-01, + 7.47952252e-01, 7.54879928e-01, 7.61871770e-01, 7.68928372e-01, + 7.76050334e-01, 7.83238260e-01, 7.90492762e-01, 7.97814457e-01, + 8.05203967e-01, 8.12661920e-01, 8.20188950e-01, 8.27785697e-01, + 8.35452806e-01, 8.43190929e-01, 8.51000725e-01, 8.58882856e-01, + 8.66837993e-01, 8.74866812e-01, 8.82969996e-01, 8.91148232e-01, + 8.99402217e-01, 9.07732653e-01, 9.16140246e-01, 9.24625712e-01, + 9.33189772e-01, 9.41833153e-01, 9.50556592e-01, 9.59360829e-01, + 9.68246612e-01, 9.77214697e-01, 9.86265846e-01, 9.95400829e-01, + 1.00462042e+00, 1.01392541e+00, 1.02331658e+00, 1.03279473e+00, + 1.04236067e+00, 1.05201522e+00, 1.06175918e+00, 1.07159340e+00, + 1.08151870e+00, 1.09153594e+00, 1.10164595e+00, 1.11184960e+00, + 1.12214777e+00, 1.13254132e+00, 1.14303113e+00, 1.15361810e+00, + 1.16430313e+00, 1.17508713e+00, 1.18597101e+00, 1.19695570e+00, + 1.20804213e+00, 1.21923125e+00, 1.23052400e+00, 1.24192135e+00, + 1.25342427e+00, 1.26503372e+00, 1.27675070e+00, 1.28857621e+00, + 1.30051125e+00, 1.31255684e+00, 1.32471399e+00, 1.33698374e+00, + 1.34936714e+00, 1.36186524e+00, 1.37447909e+00, 1.38720978e+00, + 1.40005838e+00, 1.41302599e+00, 1.42611371e+00, 1.43932264e+00, + 1.45265393e+00, 1.46610868e+00, 1.47968806e+00, 1.49339322e+00, + 1.50722531e+00, 1.52118552e+00, 1.53527503e+00, 1.54949504e+00, + 1.56384676e+00, 1.57833141e+00, 1.59295021e+00, 1.60770442e+00, + 1.62259529e+00, 1.63762407e+00, 1.65279206e+00, 1.66810054e+00, + 1.68355080e+00, 1.69914417e+00, 1.71488197e+00, 1.73076553e+00, + 1.74679622e+00, 1.76297538e+00, 1.77930439e+00, 1.79578465e+00, + 1.81241755e+00, 1.82920450e+00, 1.84614695e+00, 1.86324631e+00, + 1.88050406e+00, 1.89792164e+00, 1.91550056e+00, 1.93324229e+00, + 1.95114835e+00, 1.96922026e+00, 1.98745955e+00, 2.00586778e+00, + 2.02444651e+00, 2.04319732e+00, 2.06212180e+00, 2.08122157e+00, + 2.10049824e+00, 2.11995346e+00, 2.13958887e+00, 2.15940615e+00, + 2.17940698e+00, 2.19959307e+00, 2.21996612e+00, 2.24052787e+00, + 2.26128007e+00, 2.28222447e+00, 2.30336287e+00, 2.32469706e+00, + 2.34622885e+00, 2.36796007e+00, 2.38989257e+00, 2.41202821e+00, + 2.43436887e+00, 2.45691646e+00, 2.47967289e+00, 2.50264010e+00, + 2.52582003e+00, 2.54921465e+00, 2.57282597e+00, 2.59665597e+00, + 2.62070670e+00, 2.64498018e+00, 2.66947849e+00, 2.69420371e+00, + 2.71915794e+00, 2.74434330e+00, 2.76976194e+00, 2.79541600e+00, + 2.82130768e+00, 2.84743917e+00, 2.87381269e+00, 2.90043049e+00, + 2.92729484e+00, 2.95440800e+00, 2.98177229e+00, 3.00939003e+00, + 3.03726358e+00, 3.06539530e+00, 3.09378757e+00, 3.12244282e+00, + 3.15136348e+00, 3.18055202e+00, 3.21001090e+00, 3.23974263e+00, + 3.26974974e+00, 3.30003479e+00, 3.33060034e+00, 3.36144900e+00, + 3.39258338e+00, 3.42400614e+00, 3.45571994e+00, 3.48772747e+00, + 3.52003147e+00, 3.55263468e+00, 3.58553986e+00, 3.61874981e+00, + 3.65226736e+00, 3.68609536e+00, 3.72023668e+00, 3.75469422e+00, + 3.78947092e+00, 3.82456972e+00, 3.85999362e+00, 3.89574562e+00, + 3.93182876e+00, 3.96824610e+00, 4.00500076e+00, 4.04209584e+00, + 4.07953450e+00, 4.11731993e+00, 4.15545533e+00, 4.19394396e+00, + 4.23278907e+00, 4.27199397e+00, 4.31156199e+00, 4.35149650e+00, + 4.39180089e+00, 4.43247859e+00, 4.47353305e+00, 4.51496777e+00, + 4.55678627e+00, 4.59899209e+00, 4.64158883e+00, 4.68458012e+00, + 4.72796959e+00, 4.77176095e+00, 4.81595791e+00, 4.86056423e+00, + 4.90558371e+00, 4.95102016e+00, 4.99687745e+00, 5.04315949e+00, + 5.08987019e+00, 5.13701354e+00, 5.18459354e+00, 5.23261424e+00, + 5.28107971e+00, 5.32999408e+00, 5.37936150e+00, 5.42918618e+00, + 5.47947234e+00, 5.53022426e+00, 5.58144625e+00, 5.63314267e+00, + 5.68531791e+00, 5.73797641e+00, 5.79112265e+00, 5.84476113e+00, + 5.89889643e+00, 5.95353313e+00, 6.00867589e+00, 6.06432940e+00, + 6.12049837e+00, 6.17718760e+00, 6.23440189e+00, 6.29214611e+00, + 6.35042517e+00, 6.40924402e+00, 6.46860766e+00, 6.52852114e+00, + 6.58898955e+00, 6.65001803e+00, 6.71161177e+00, 6.77377600e+00, + 6.83651600e+00, 6.89983712e+00, 6.96374473e+00, 7.02824426e+00, + 7.09334120e+00, 7.15904109e+00, 7.22534949e+00, 7.29227206e+00, + 7.35981448e+00, 7.42798248e+00, 7.49678187e+00, 7.56621850e+00, + 7.63629826e+00, 7.70702711e+00, 7.77841107e+00, 7.85045620e+00, + 7.92316862e+00, 7.99655453e+00, 8.07062014e+00, 8.14537177e+00, + 8.22081576e+00, 8.29695852e+00, 8.37380654e+00, 8.45136633e+00, + 8.52964450e+00, 8.60864770e+00, 8.68838264e+00, 8.76885609e+00, + 8.85007491e+00, 8.93204600e+00, 9.01477631e+00, 9.09827289e+00, + 9.18254284e+00, 9.26759330e+00, 9.35343152e+00, 9.44006479e+00, + 9.52750047e+00, 9.61574600e+00, 9.70480888e+00, 9.79469667e+00, + 9.88541702e+00, 9.97697764e+00, 1.00693863e+01, 1.01626509e+01, + 1.02567793e+01, 1.03517796e+01, 1.04476597e+01, 1.05444279e+01, + 1.06420924e+01, 1.07406615e+01, 1.08401436e+01, 1.09405471e+01, + 1.10418805e+01, 1.11441525e+01, 1.12473718e+01, 1.13515471e+01, + 1.14566873e+01, 1.15628013e+01, 1.16698982e+01, 1.17779870e+01, + 1.18870770e+01, 1.19971774e+01, 1.21082975e+01, 1.22204469e+01, + 1.23336350e+01, 1.24478715e+01, 1.25631660e+01, 1.26795285e+01, + 1.27969687e+01, 1.29154967e+01, 1.30351224e+01, 1.31558562e+01, + 1.32777083e+01, 1.34006890e+01, 1.35248087e+01, 1.36500781e+01, + 1.37765077e+01, 1.39041083e+01, 1.40328908e+01, 1.41628662e+01, + 1.42940453e+01, 1.44264395e+01, 1.45600600e+01, 1.46949180e+01, + 1.48310251e+01, 1.49683929e+01, 1.51070330e+01, 1.52469573e+01, + 1.53881775e+01, 1.55307057e+01, 1.56745541e+01, 1.58197348e+01, + 1.59662602e+01, 1.61141428e+01, 1.62633950e+01, 1.64140297e+01, + 1.65660596e+01, 1.67194976e+01, 1.68743568e+01, 1.70306503e+01, + 1.71883914e+01, 1.73475936e+01, 1.75082703e+01, 1.76704353e+01, + 1.78341022e+01, 1.79992851e+01, 1.81659979e+01, 1.83342548e+01, + 1.85040702e+01, 1.86754584e+01, 1.88484341e+01, 1.90230119e+01, + 1.91992067e+01, 1.93770334e+01, 1.95565072e+01, 1.97376433e+01, + 1.99204571e+01, 2.01049642e+01, 2.02911802e+01, 2.04791210e+01, + 2.06688025e+01, 2.08602409e+01, 2.10534524e+01, 2.12484535e+01, + 2.14452608e+01, 2.16438909e+01, 2.18443607e+01, 2.20466874e+01, + 2.22508880e+01, 2.24569800e+01, 2.26649808e+01, 2.28749082e+01, + 2.30867799e+01, 2.33006141e+01, 2.35164288e+01, 2.37342425e+01, + 2.39540736e+01, 2.41759408e+01, 2.43998630e+01, 2.46258592e+01, + 2.48539486e+01, 2.50841506e+01, 2.53164848e+01, 2.55509709e+01, + 2.57876289e+01, 2.60264788e+01, 2.62675410e+01, 2.65108360e+01, + 2.67563844e+01, 2.70042072e+01, 2.72543253e+01, 2.75067601e+01, + 2.77615329e+01, 2.80186656e+01, 2.82781798e+01, 2.85400977e+01, + 2.88044415e+01, 2.90712338e+01, 2.93404971e+01, 2.96122544e+01, + 2.98865287e+01, 3.01633435e+01, 3.04427221e+01, 3.07246884e+01, + 3.10092664e+01, 3.12964801e+01, 3.15863541e+01, 3.18789129e+01, + 3.21741815e+01, 3.24721849e+01, 3.27729485e+01, 3.30764978e+01, + 3.33828586e+01, 3.36920571e+01, 3.40041193e+01, 3.43190720e+01, + 3.46369418e+01, 3.49577557e+01, 3.52815412e+01, 3.56083255e+01, + 3.59381366e+01, 3.62710025e+01, 3.66069515e+01, 3.69460121e+01, + 3.72882131e+01, 3.76335836e+01, 3.79821531e+01, 3.83339510e+01, + 3.86890074e+01, 3.90473524e+01, 3.94090164e+01, 3.97740302e+01, + 4.01424249e+01, 4.05142317e+01, 4.08894823e+01, 4.12682085e+01, + 4.16504425e+01, 4.20362168e+01, 4.24255643e+01, 4.28185180e+01, + 4.32151113e+01, 4.36153779e+01, 4.40193519e+01, 4.44270675e+01, + 4.48385595e+01, 4.52538628e+01, 4.56730127e+01, 4.60960449e+01, + 4.65229952e+01, 4.69539001e+01, 4.73887961e+01, 4.78277202e+01, + 4.82707097e+01, 4.87178022e+01, 4.91690358e+01, 4.96244488e+01, + 5.00840799e+01, 5.05479682e+01, 5.10161531e+01, 5.14886745e+01, + 5.19655724e+01, 5.24468875e+01, 5.29326606e+01, 5.34229330e+01, + 5.39177464e+01, 5.44171429e+01, 5.49211648e+01, 5.54298552e+01, + 5.59432571e+01, 5.64614142e+01, 5.69843706e+01, 5.75121707e+01, + 5.80448594e+01, 5.85824820e+01, 5.91250841e+01, 5.96727120e+01, + 6.02254120e+01, 6.07832313e+01, 6.13462172e+01, 6.19144176e+01, + 6.24878807e+01, 6.30666554e+01, 6.36507908e+01, 6.42403366e+01, + 6.48353429e+01, 6.54358602e+01, 6.60419396e+01, 6.66536327e+01, + 6.72709914e+01, 6.78940681e+01, 6.85229160e+01, 6.91575883e+01, + 6.97981391e+01, 7.04446228e+01, 7.10970943e+01, 7.17556092e+01, + 7.24202233e+01, 7.30909933e+01, 7.37679760e+01, 7.44512291e+01, + 7.51408106e+01, 7.58367791e+01, 7.65391939e+01, 7.72481145e+01, + 7.79636013e+01, 7.86857151e+01, 7.94145172e+01, 8.01500696e+01, + 8.08924349e+01, 8.16416760e+01, 8.23978568e+01, 8.31610415e+01, + 8.39312950e+01, 8.47086827e+01, 8.54932707e+01, 8.62851257e+01, + 8.70843150e+01, 8.78909065e+01, 8.87049689e+01, 8.95265713e+01, + 9.03557835e+01, 9.11926760e+01, 9.20373200e+01, 9.28897872e+01, + 9.37501502e+01, 9.46184819e+01, 9.54948564e+01, 9.63793480e+01, + 9.72720319e+01, 9.81729841e+01, 9.90822810e+01, 1.00000000e+02])) -> tuple[float, float, int, numpy.ndarray, numpy.ndarray]: + + + +
+ +
315def select_gamma(
+316    similarity_matrix: np.ndarray,
+317    pM: np.ndarray = None,
+318    gammas: np.ndarray = np.logspace(-2, 2, 1000)
+319) -> tuple[float, float, int, np.ndarray, np.ndarray]:
+320    """
+321    Selects the gamma value that corresponds to the midpoint of I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)).
+322
+323    Args:
+324        similarity_matrix (np.ndarray): Matrix encoding pairwise similarities between meanings (M) and referents (U).
+325        pM (np.ndarray, optional): Communicative need distribution over meanings (M). Defaults to None.
+326        gammas (np.ndarray, optional): Range of gamma values to sample. Defaults to logspace(-2, 2, 1000).
+327
+328    Returns:
+329        tuple: A tuple containing:
+330            - float: Gamma value corresponding to the midpoint of I(M;U).
+331            - float: Midpoint of I(M;U).
+332            - int: Index of the midpoint in the gamma array.
+333            - np.ndarray: Array of gamma values used.
+334            - np.ndarray: Array of computed I(M;U) values.
+335    """
+336    imus = np.array([get_imu(g, similarity_matrix, pM) for g in gammas])
+337    mid = (np.max(imus) - np.min(imus)) / 2
+338    mid_ind = np.argmin((imus - mid) ** 2)
+339    return gammas[mid_ind], mid, mid_ind, gammas, imus
+
+ + +

Selects the gamma value that corresponds to the midpoint of I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)).

+ +
Arguments:
+ +
    +
  • similarity_matrix (np.ndarray): Matrix encoding pairwise similarities between meanings (M) and referents (U).
  • +
  • pM (np.ndarray, optional): Communicative need distribution over meanings (M). Defaults to None.
  • +
  • gammas (np.ndarray, optional): Range of gamma values to sample. Defaults to logspace(-2, 2, 1000).
  • +
+ +
Returns:
+ +
+

tuple: A tuple containing: + - float: Gamma value corresponding to the midpoint of I(M;U). + - float: Midpoint of I(M;U). + - int: Index of the midpoint in the gamma array. + - np.ndarray: Array of gamma values used. + - np.ndarray: Array of computed I(M;U) values.

+
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/ultk/effcomm/information_bottleneck/tools.html b/docs/ultk/effcomm/information_bottleneck/tools.html new file mode 100644 index 0000000..5c7b8dd --- /dev/null +++ b/docs/ultk/effcomm/information_bottleneck/tools.html @@ -0,0 +1,729 @@ + + + + + + + ultk.effcomm.information_bottleneck.tools API documentation + + + + + + + + + + + + +
+
+

+ultk.effcomm.information_bottleneck.tools

+ + + + + + +
  1import numpy as np
+  2from scipy.special import softmax
+  3from scipy.stats import entropy
+  4
+  5##############################################################################
+  6# Numerical precision helpers
+  7##############################################################################
+  8
+  9PRECISION = 1e-15
+ 10
+ 11def get_gaussian_noise(shape):
+ 12    """Small Gaussian noise."""
+ 13    return np.random.normal(loc=0.0, scale=1e-15, size=shape)
+ 14
+ 15def add_noise_to_stochastic_matrix(q, weight=1e-2):
+ 16    """
+ 17    Given an input stochastic matrix `q`, sample a stochastic matrix `p` and
+ 18    mix it with the input with a small weight `weight`, i.e., return q + weight * p.
+ 19    """
+ 20    # Generate a stochastic matrix `p` using a Dirichlet distribution
+ 21    p = np.random.dirichlet(np.ones(q.shape[1]), size=q.shape[0])
+ 22    # Mix `q` with `p` using the specified weight
+ 23    noisy_matrix = q + weight * p
+ 24    # Normalize to ensure the rows sum to 1
+ 25    noisy_matrix /= noisy_matrix.sum(axis=1, keepdims=True)
+ 26    return noisy_matrix
+ 27
+ 28def random_stochastic_matrix(shape, gamma=1e-10):
+ 29    """
+ 30    Initialize a stochastic matrix (2D array) that sums to 1 along the rows.
+ 31
+ 32    Args:
+ 33        shape: tuple, the desired shape of the stochastic matrix (e.g., `(rows, cols)`).
+ 34        gamma: float, scaling factor for the random normal initialization.
+ 35
+ 36    Returns:
+ 37        A stochastic matrix with rows summing to 1.
+ 38    """
+ 39    energies = gamma * np.random.randn(*shape)
+ 40    return softmax(energies, axis=1)
+ 41
+ 42##############################################################################
+ 43# Probability and Information
+ 44##############################################################################
+ 45
+ 46def entropy_bits(p: np.ndarray, axis=None) -> float:
+ 47    """Compute entropy of p, $H(X) = - \sum_x p(x) \log p(x)$, in bits."""
+ 48    return entropy(p, base=2, axis=axis)
+ 49
+ 50
+ 51def mutual_info(pxy: np.ndarray) -> float:
+ 52    """Compute mutual information, $I(X;Y)$ in bits.
+ 53
+ 54    Args:
+ 55        pxy: 2D numpy array of shape `(x, y)`
+ 56    """
+ 57    return (
+ 58        entropy_bits(pxy.sum(axis=0))
+ 59        + entropy_bits(pxy.sum(axis=1))
+ 60        - entropy_bits(pxy)
+ 61    )
+ 62
+ 63
+ 64def kl_divergence(p: np.ndarray, q: np.ndarray, axis=None, base=np.e) -> float:
+ 65    """Compute KL divergence (in nats by defaut) between p and q, $D_{KL}[p \| q]$.
+ 66
+ 67    Args:
+ 68        p: np.ndarray, lhs of KL divergence
+ 69
+ 70        q: np.ndarray, rhs of KL divergence
+ 71    """
+ 72    return entropy(
+ 73        p,
+ 74        q,
+ 75        axis=axis,
+ 76        base=base,
+ 77    )
+ 78
+ 79
+ 80# Common pattern for rate-distortion optimizations
+ 81def information_cond(pA: np.ndarray, pB_A: np.ndarray) -> float:
+ 82    """Compute the mutual information $I(A;B)$ from a joint distribution defind by $P(A)$ and $P(B|A)$
+ 83
+ 84    Args:
+ 85        pA: array of shape `|A|` the prior probability of an input symbol (i.e., the source)
+ 86
+ 87        pB_A: array of shape `(|A|, |B|)` the probability of an output symbol given the input
+ 88    """
+ 89    pab = pB_A * pA[:, None]
+ 90    mi = mutual_info(pxy=pab)
+ 91    if mi < 0.0 and not np.isclose(mi, 0.0, atol=1e-5):
+ 92        raise Exception
+ 93    return mi
+ 94
+ 95##############################################################################
+ 96# Postprocessing helper
+ 97##############################################################################
+ 98
+ 99def compute_lower_bound(rd_points):
+100    """
+101    Remove all points in a rate-distortion curve that would make it nonmonotonic and
+102    return only the resulting monotonic indices.
+103
+104    This is required to remove the random fluctuations in the result induced by the BA algorithm getting stuck in local minima.
+105
+106    Acknowledgement: https://github.com/epiasini/embo-github-mirror/blob/master/embo/utils.py#L77.
+107
+108    Args:
+109        rd_points: list of pairs of floats, where each pair represents an estimated (rate, distortion) pair,
+110                   and *ordered by increasing rate*.
+111
+112    Returns:
+113        selected_indices: 1D numpy array containing the indices of the points selected to ensure monotonically decreasing values.
+114    """
+115    pts = np.array(rd_points, dtype=np.float32)
+116    selected_indices = [0]
+117
+118    for idx in range(1, len(pts)):
+119        # Check that each point increases in rate and does not increase in distortion
+120        if (
+121            pts[idx, 0] >= pts[selected_indices[-1], 0]  # Monotonically increasing rate
+122            and pts[idx, 1] <= pts[selected_indices[-1], 1]  # Monotonically decreasing distortion
+123        ):
+124            selected_indices.append(idx)
+125
+126    return np.array(selected_indices, dtype=np.int32)
+
+ + +
+
+
+ PRECISION = +1e-15 + + +
+ + + + +
+
+ +
+ + def + get_gaussian_noise(shape): + + + +
+ +
12def get_gaussian_noise(shape):
+13    """Small Gaussian noise."""
+14    return np.random.normal(loc=0.0, scale=1e-15, size=shape)
+
+ + +

Small Gaussian noise.

+
+ + +
+
+ +
+ + def + add_noise_to_stochastic_matrix(q, weight=0.01): + + + +
+ +
16def add_noise_to_stochastic_matrix(q, weight=1e-2):
+17    """
+18    Given an input stochastic matrix `q`, sample a stochastic matrix `p` and
+19    mix it with the input with a small weight `weight`, i.e., return q + weight * p.
+20    """
+21    # Generate a stochastic matrix `p` using a Dirichlet distribution
+22    p = np.random.dirichlet(np.ones(q.shape[1]), size=q.shape[0])
+23    # Mix `q` with `p` using the specified weight
+24    noisy_matrix = q + weight * p
+25    # Normalize to ensure the rows sum to 1
+26    noisy_matrix /= noisy_matrix.sum(axis=1, keepdims=True)
+27    return noisy_matrix
+
+ + +

Given an input stochastic matrix q, sample a stochastic matrix p and +mix it with the input with a small weight weight, i.e., return q + weight * p.

+
+ + +
+
+ +
+ + def + random_stochastic_matrix(shape, gamma=1e-10): + + + +
+ +
29def random_stochastic_matrix(shape, gamma=1e-10):
+30    """
+31    Initialize a stochastic matrix (2D array) that sums to 1 along the rows.
+32
+33    Args:
+34        shape: tuple, the desired shape of the stochastic matrix (e.g., `(rows, cols)`).
+35        gamma: float, scaling factor for the random normal initialization.
+36
+37    Returns:
+38        A stochastic matrix with rows summing to 1.
+39    """
+40    energies = gamma * np.random.randn(*shape)
+41    return softmax(energies, axis=1)
+
+ + +

Initialize a stochastic matrix (2D array) that sums to 1 along the rows.

+ +
Arguments:
+ +
    +
  • shape: tuple, the desired shape of the stochastic matrix (e.g., (rows, cols)).
  • +
  • gamma: float, scaling factor for the random normal initialization.
  • +
+ +
Returns:
+ +
+

A stochastic matrix with rows summing to 1.

+
+
+ + +
+
+ +
+ + def + entropy_bits(p: numpy.ndarray, axis=None) -> float: + + + +
+ +
47def entropy_bits(p: np.ndarray, axis=None) -> float:
+48    """Compute entropy of p, $H(X) = - \sum_x p(x) \log p(x)$, in bits."""
+49    return entropy(p, base=2, axis=axis)
+
+ + +

Compute entropy of p, $H(X) = - \sum_x p(x) \log p(x)$, in bits.

+
+ + +
+
+ +
+ + def + mutual_info(pxy: numpy.ndarray) -> float: + + + +
+ +
52def mutual_info(pxy: np.ndarray) -> float:
+53    """Compute mutual information, $I(X;Y)$ in bits.
+54
+55    Args:
+56        pxy: 2D numpy array of shape `(x, y)`
+57    """
+58    return (
+59        entropy_bits(pxy.sum(axis=0))
+60        + entropy_bits(pxy.sum(axis=1))
+61        - entropy_bits(pxy)
+62    )
+
+ + +

Compute mutual information, $I(X;Y)$ in bits.

+ +
Arguments:
+ +
    +
  • pxy: 2D numpy array of shape (x, y)
  • +
+
+ + +
+
+ +
+ + def + kl_divergence( p: numpy.ndarray, q: numpy.ndarray, axis=None, base=2.718281828459045) -> float: + + + +
+ +
65def kl_divergence(p: np.ndarray, q: np.ndarray, axis=None, base=np.e) -> float:
+66    """Compute KL divergence (in nats by defaut) between p and q, $D_{KL}[p \| q]$.
+67
+68    Args:
+69        p: np.ndarray, lhs of KL divergence
+70
+71        q: np.ndarray, rhs of KL divergence
+72    """
+73    return entropy(
+74        p,
+75        q,
+76        axis=axis,
+77        base=base,
+78    )
+
+ + +

Compute KL divergence (in nats by defaut) between p and q, $D_{KL}[p \| q]$.

+ +
Arguments:
+ +
    +
  • p: np.ndarray, lhs of KL divergence
  • +
  • q: np.ndarray, rhs of KL divergence
  • +
+
+ + +
+
+ +
+ + def + information_cond(pA: numpy.ndarray, pB_A: numpy.ndarray) -> float: + + + +
+ +
82def information_cond(pA: np.ndarray, pB_A: np.ndarray) -> float:
+83    """Compute the mutual information $I(A;B)$ from a joint distribution defind by $P(A)$ and $P(B|A)$
+84
+85    Args:
+86        pA: array of shape `|A|` the prior probability of an input symbol (i.e., the source)
+87
+88        pB_A: array of shape `(|A|, |B|)` the probability of an output symbol given the input
+89    """
+90    pab = pB_A * pA[:, None]
+91    mi = mutual_info(pxy=pab)
+92    if mi < 0.0 and not np.isclose(mi, 0.0, atol=1e-5):
+93        raise Exception
+94    return mi
+
+ + +

Compute the mutual information $I(A;B)$ from a joint distribution defind by $P(A)$ and $P(B|A)$

+ +
Arguments:
+ +
    +
  • pA: array of shape |A| the prior probability of an input symbol (i.e., the source)
  • +
  • pB_A: array of shape (|A|, |B|) the probability of an output symbol given the input
  • +
+
+ + +
+
+ +
+ + def + compute_lower_bound(rd_points): + + + +
+ +
100def compute_lower_bound(rd_points):
+101    """
+102    Remove all points in a rate-distortion curve that would make it nonmonotonic and
+103    return only the resulting monotonic indices.
+104
+105    This is required to remove the random fluctuations in the result induced by the BA algorithm getting stuck in local minima.
+106
+107    Acknowledgement: https://github.com/epiasini/embo-github-mirror/blob/master/embo/utils.py#L77.
+108
+109    Args:
+110        rd_points: list of pairs of floats, where each pair represents an estimated (rate, distortion) pair,
+111                   and *ordered by increasing rate*.
+112
+113    Returns:
+114        selected_indices: 1D numpy array containing the indices of the points selected to ensure monotonically decreasing values.
+115    """
+116    pts = np.array(rd_points, dtype=np.float32)
+117    selected_indices = [0]
+118
+119    for idx in range(1, len(pts)):
+120        # Check that each point increases in rate and does not increase in distortion
+121        if (
+122            pts[idx, 0] >= pts[selected_indices[-1], 0]  # Monotonically increasing rate
+123            and pts[idx, 1] <= pts[selected_indices[-1], 1]  # Monotonically decreasing distortion
+124        ):
+125            selected_indices.append(idx)
+126
+127    return np.array(selected_indices, dtype=np.int32)
+
+ + +

Remove all points in a rate-distortion curve that would make it nonmonotonic and +return only the resulting monotonic indices.

+ +

This is required to remove the random fluctuations in the result induced by the BA algorithm getting stuck in local minima.

+ +

Acknowledgement: https://github.com/epiasini/embo-github-mirror/blob/master/embo/utils.py#L77.

+ +
Arguments:
+ +
    +
  • rd_points: list of pairs of floats, where each pair represents an estimated (rate, distortion) pair, +and ordered by increasing rate.
  • +
+ +
Returns:
+ +
+

selected_indices: 1D numpy array containing the indices of the points selected to ensure monotonically decreasing values.

+
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/ultk/effcomm/informativity.html b/docs/ultk/effcomm/informativity.html index 5f55a06..a2ea99d 100644 --- a/docs/ultk/effcomm/informativity.html +++ b/docs/ultk/effcomm/informativity.html @@ -3,14 +3,14 @@ - + ultk.effcomm.informativity API documentation - + - - + + + + + +
+
+

+ultk.effcomm.probability

+ + + + + + +
 1import numpy as np
+ 2
+ 3# see the utilities in https://github.com/nogazs/ib-color-naming/blob/master/src/tools.py
+ 4PRECISION = 1e-12
+ 5
+ 6
+ 7def marginal(pXY: np.ndarray, axis: int = 1) -> np.ndarray:
+ 8    """Computer marginals of a joint distribution.
+ 9
+10    Args:
+11        pXY: a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)
+12        axis: the axis along which to compute the marginal
+13
+14    Returns:
+15        either pY (axis = 0) or pX (default, axis = 1)
+16    """
+17    return pXY.sum(axis)
+18
+19
+20def joint(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray:
+21    """Compute a joint distribution from a conditional and a prior.
+22
+23    Args:
+24        pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
+25        pX: a prior distribution of shape (|X|,), corresponding to p(x)
+26
+27    Returns:
+28        a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)
+29    """
+30    return pY_X * pX[:, None]
+31
+32
+33def marginalize(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray:
+34    """Marginalize a conditional distribution (without a detour through the joint).
+35
+36    Args:
+37        pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
+38        pX: a prior distribution of shape (|X|,), corresponding to p(x)
+39
+40    Returns:
+41        a marginal distribution of shape (|Y|,), corresponding to p(y)
+42    """
+43    return pY_X.T @ pX
+44
+45
+46def bayes(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray:
+47    """Perform Bayesian inference, computing p(x|y) from p(y|x) and p(x).
+48
+49    Args:
+50        pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
+51        pX: a prior distribution of shape (|X|,), corresponding to p(x)
+52
+53    Returns:
+54        a posterior distribution of shape (|Y|, |X|), corresponding to p(x|y)
+55    """
+56    # (|X|, |Y|)
+57    pXY = joint(pY_X, pX)
+58    print(pXY.shape)
+59    # (|Y|,)
+60    pY = marginalize(pY_X, pX)
+61    print(pY.shape)
+62    # (|Y|, |X|)
+63    return np.where(pY > PRECISION, pXY / pY, 1 / pXY.shape[0]).T
+
+ + +
+
+
+ PRECISION = +1e-12 + + +
+ + + + +
+
+ +
+ + def + marginal(pXY: numpy.ndarray, axis: int = 1) -> numpy.ndarray: + + + +
+ +
 8def marginal(pXY: np.ndarray, axis: int = 1) -> np.ndarray:
+ 9    """Computer marginals of a joint distribution.
+10
+11    Args:
+12        pXY: a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)
+13        axis: the axis along which to compute the marginal
+14
+15    Returns:
+16        either pY (axis = 0) or pX (default, axis = 1)
+17    """
+18    return pXY.sum(axis)
+
+ + +

Computer marginals of a joint distribution.

+ +
Arguments:
+ +
    +
  • pXY: a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)
  • +
  • axis: the axis along which to compute the marginal
  • +
+ +
Returns:
+ +
+

either pY (axis = 0) or pX (default, axis = 1)

+
+
+ + +
+
+ +
+ + def + joint(pY_X: numpy.ndarray, pX: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
21def joint(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray:
+22    """Compute a joint distribution from a conditional and a prior.
+23
+24    Args:
+25        pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
+26        pX: a prior distribution of shape (|X|,), corresponding to p(x)
+27
+28    Returns:
+29        a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)
+30    """
+31    return pY_X * pX[:, None]
+
+ + +

Compute a joint distribution from a conditional and a prior.

+ +
Arguments:
+ +
    +
  • pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
  • +
  • pX: a prior distribution of shape (|X|,), corresponding to p(x)
  • +
+ +
Returns:
+ +
+

a joint distribution of shape (|X|, |Y|), corresponding to p(x, y)

+
+
+ + +
+
+ +
+ + def + marginalize(pY_X: numpy.ndarray, pX: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
34def marginalize(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray:
+35    """Marginalize a conditional distribution (without a detour through the joint).
+36
+37    Args:
+38        pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
+39        pX: a prior distribution of shape (|X|,), corresponding to p(x)
+40
+41    Returns:
+42        a marginal distribution of shape (|Y|,), corresponding to p(y)
+43    """
+44    return pY_X.T @ pX
+
+ + +

Marginalize a conditional distribution (without a detour through the joint).

+ +
Arguments:
+ +
    +
  • pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
  • +
  • pX: a prior distribution of shape (|X|,), corresponding to p(x)
  • +
+ +
Returns:
+ +
+

a marginal distribution of shape (|Y|,), corresponding to p(y)

+
+
+ + +
+
+ +
+ + def + bayes(pY_X: numpy.ndarray, pX: numpy.ndarray) -> numpy.ndarray: + + + +
+ +
47def bayes(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray:
+48    """Perform Bayesian inference, computing p(x|y) from p(y|x) and p(x).
+49
+50    Args:
+51        pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
+52        pX: a prior distribution of shape (|X|,), corresponding to p(x)
+53
+54    Returns:
+55        a posterior distribution of shape (|Y|, |X|), corresponding to p(x|y)
+56    """
+57    # (|X|, |Y|)
+58    pXY = joint(pY_X, pX)
+59    print(pXY.shape)
+60    # (|Y|,)
+61    pY = marginalize(pY_X, pX)
+62    print(pY.shape)
+63    # (|Y|, |X|)
+64    return np.where(pY > PRECISION, pXY / pY, 1 / pXY.shape[0]).T
+
+ + +

Perform Bayesian inference, computing p(x|y) from p(y|x) and p(x).

+ +
Arguments:
+ +
    +
  • pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x)
  • +
  • pX: a prior distribution of shape (|X|,), corresponding to p(x)
  • +
+ +
Returns:
+ +
+

a posterior distribution of shape (|Y|, |X|), corresponding to p(x|y)

+
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/ultk/effcomm/sampling.html b/docs/ultk/effcomm/sampling.html index 737929b..92c63ee 100644 --- a/docs/ultk/effcomm/sampling.html +++ b/docs/ultk/effcomm/sampling.html @@ -3,14 +3,14 @@ - + ultk.effcomm.sampling API documentation - + - - - - - - - + + + + + +
+
+

+ultk.util

+ +

Various utility classes and helper functions for the ULTK package.

+ +

Submodules:

+ +
    +
  • frozendict: An immutable dictionary, so that various mappings (e.g. Meanings) can be hashed, serialized, etc.
  • +
  • io: some basic input/output functions.
  • +
+
+ + + + + +
1"""Various utility classes and helper functions for the ULTK package.
+2
+3Submodules:
+4
+5* `frozendict`: An immutable dictionary, so that various mappings (e.g. `Meaning`s) can be hashed, serialized, etc.
+6* `io`: some basic input/output functions.
+7"""
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/ultk/util/frozendict.html b/docs/ultk/util/frozendict.html new file mode 100644 index 0000000..2363a29 --- /dev/null +++ b/docs/ultk/util/frozendict.html @@ -0,0 +1,500 @@ + + + + + + + ultk.util.frozendict API documentation + + + + + + + + + + + + +
+
+

+ultk.util.frozendict

+ + + + + + +
 1from typing import Generic, TypeVar
+ 2from yaml import YAMLObject
+ 3
+ 4K = TypeVar("K")
+ 5V = TypeVar("V")
+ 6
+ 7
+ 8class FrozenDict(dict[K, V], Generic[K, V], YAMLObject):
+ 9
+10    yaml_tag = "!frozendict"
+11
+12    def __hash__(self):
+13        return hash(frozenset(self.items()))
+14
+15    def __setitem__(self, key, value):
+16        raise TypeError("FrozenDict is immutable")
+17
+18    def __delitem__(self, key):
+19        raise TypeError("FrozenDict is immutable")
+20
+21    def clear(self):
+22        raise TypeError("FrozenDict is immutable")
+23
+24    def pop(self, key, default=None):
+25        raise TypeError("FrozenDict is immutable")
+26
+27    def popitem(self):
+28        raise TypeError("FrozenDict is immutable")
+29
+30    def setdefault(self, key, default=None):
+31        raise TypeError("FrozenDict is immutable")
+32
+33    @classmethod
+34    def to_yaml(cls, dumper, data):
+35        return dumper.represent_mapping(cls.yaml_tag, dict(data))
+36
+37    @classmethod
+38    def from_yaml(cls, loader, node):
+39        return FrozenDict(loader.construct_mapping(node, deep=True))
+40
+41    def update(self, *args, **kwargs):
+42        raise TypeError("FrozenDict is immutable")
+43
+44    def __repr__(self):
+45        return f"FrozenDict({super().__repr__()})"
+
+ + +
+
+ +
+ + class + FrozenDict(dict[~K, ~V], typing.Generic[~K, ~V], yaml.YAMLObject): + + + +
+ +
 9class FrozenDict(dict[K, V], Generic[K, V], YAMLObject):
+10
+11    yaml_tag = "!frozendict"
+12
+13    def __hash__(self):
+14        return hash(frozenset(self.items()))
+15
+16    def __setitem__(self, key, value):
+17        raise TypeError("FrozenDict is immutable")
+18
+19    def __delitem__(self, key):
+20        raise TypeError("FrozenDict is immutable")
+21
+22    def clear(self):
+23        raise TypeError("FrozenDict is immutable")
+24
+25    def pop(self, key, default=None):
+26        raise TypeError("FrozenDict is immutable")
+27
+28    def popitem(self):
+29        raise TypeError("FrozenDict is immutable")
+30
+31    def setdefault(self, key, default=None):
+32        raise TypeError("FrozenDict is immutable")
+33
+34    @classmethod
+35    def to_yaml(cls, dumper, data):
+36        return dumper.represent_mapping(cls.yaml_tag, dict(data))
+37
+38    @classmethod
+39    def from_yaml(cls, loader, node):
+40        return FrozenDict(loader.construct_mapping(node, deep=True))
+41
+42    def update(self, *args, **kwargs):
+43        raise TypeError("FrozenDict is immutable")
+44
+45    def __repr__(self):
+46        return f"FrozenDict({super().__repr__()})"
+
+ + + + +
+ +
+ + def + clear(self): + + + +
+ +
22    def clear(self):
+23        raise TypeError("FrozenDict is immutable")
+
+ + +

D.clear() -> None. Remove all items from D.

+
+ + +
+
+ +
+ + def + pop(self, key, default=None): + + + +
+ +
25    def pop(self, key, default=None):
+26        raise TypeError("FrozenDict is immutable")
+
+ + +

D.pop(k[,d]) -> v, remove specified key and return the corresponding value.

+ +

If the key is not found, return the default if given; otherwise, +raise a KeyError.

+
+ + +
+
+ +
+ + def + popitem(self): + + + +
+ +
28    def popitem(self):
+29        raise TypeError("FrozenDict is immutable")
+
+ + +

Remove and return a (key, value) pair as a 2-tuple.

+ +

Pairs are returned in LIFO (last-in, first-out) order. +Raises KeyError if the dict is empty.

+
+ + +
+
+ +
+ + def + setdefault(self, key, default=None): + + + +
+ +
31    def setdefault(self, key, default=None):
+32        raise TypeError("FrozenDict is immutable")
+
+ + +

Insert key with a value of default if key is not in the dictionary.

+ +

Return the value for key if key is in the dictionary, else default.

+
+ + +
+
+ +
+ + def + update(self, *args, **kwargs): + + + +
+ +
42    def update(self, *args, **kwargs):
+43        raise TypeError("FrozenDict is immutable")
+
+ + +

D.update([E, ]**F) -> None. Update D from dict/iterable E and F. +If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] +If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v +In either case, this is followed by: for k in F: D[k] = F[k]

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/ultk/util/io.html b/docs/ultk/util/io.html new file mode 100644 index 0000000..9d03b7b --- /dev/null +++ b/docs/ultk/util/io.html @@ -0,0 +1,519 @@ + + + + + + + ultk.util.io API documentation + + + + + + + + + + + + +
+
+

+ultk.util.io

+ + + + + + +
 1import pickle
+ 2from ultk.language.language import Expression
+ 3from ultk.language.semantics import Meaning, Universe
+ 4from ultk.language.grammar import Grammar, GrammaticalExpression
+ 5from typing import Iterable
+ 6from yaml import dump, Dumper, load, Loader
+ 7
+ 8
+ 9def write_expressions(expressions: Iterable[Expression], filename: str) -> None:
+10    """Write expressions to a YAML file.
+11
+12    This is particularly useful for writing GrammaticalExpressions, which have a `func` field that can't be serialized. This function uses `to_dict` to determine which properties of the Expression to write.
+13
+14    Args:
+15        expressions: the expressions to write
+16        filename: the file to write to
+17    """
+18    with open(filename, "w") as f:
+19        dump([expr.to_dict() for expr in expressions], f, Dumper=Dumper)
+20
+21
+22def read_grammatical_expressions(
+23    filename: str,
+24    grammar: Grammar,
+25    re_parse: bool = False,
+26    universe: Universe | None = None,
+27    return_by_meaning=True,
+28) -> tuple[list[GrammaticalExpression], dict[Meaning, GrammaticalExpression]]:
+29    """Read grammatical expressions from a YAML file.
+30
+31    Optionally re-parse and (re-)evaluate the expressions using the provided grammar and universe.
+32
+33    Args:
+34        filename: the file to read
+35        grammar: the grammar to use for parsing (and for re-populating the `.func` attribute of each GrammaticalExpression)
+36        re_parse: whether to re-parse the expressions
+37        universe: the universe to use for evaluation
+38        return_by_meaning: whether to return a dictionary mapping meanings to expressions or not
+39
+40    Returns:
+41        a list of GrammaticalExpressions and a dictionary mapping meanings to expressions (empty if `return_by_meaning` is False)
+42    """
+43    if re_parse and (grammar is None or universe is None):
+44        raise ValueError("Must provide grammar and universe if re-parsing expressions.")
+45
+46    with open(filename, "r") as f:
+47        expression_list = load(f, Loader=Loader)
+48
+49    if re_parse:
+50        final_exprs = [
+51            (
+52                grammar.parse(expr_dict["term_expression"])
+53                if re_parse
+54                else GrammaticalExpression(**expr_dict)
+55            )
+56            for expr_dict in expression_list
+57        ]
+58    else:
+59        final_exprs = [
+60            GrammaticalExpression.from_dict(expr_dict, grammar)
+61            for expr_dict in expression_list
+62        ]
+63    if universe is not None:
+64        [expr.evaluate(universe) for expr in final_exprs]
+65    by_meaning = {}
+66    if return_by_meaning:
+67        by_meaning = {expr.meaning: expr for expr in final_exprs}
+68    return final_exprs, by_meaning
+69
+70
+71def write_pickle(fn: str, data):
+72    with open(fn, "wb") as f:
+73        pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)
+74    print(f"Wrote a pickle binary to {fn}.")
+75
+76def read_pickle(fn: str):
+77    with open(fn, "rb") as f:
+78        data = pickle.load(f)
+79    return data
+
+ + +
+
+ +
+ + def + write_expressions( expressions: Iterable[ultk.language.language.Expression], filename: str) -> None: + + + +
+ +
10def write_expressions(expressions: Iterable[Expression], filename: str) -> None:
+11    """Write expressions to a YAML file.
+12
+13    This is particularly useful for writing GrammaticalExpressions, which have a `func` field that can't be serialized. This function uses `to_dict` to determine which properties of the Expression to write.
+14
+15    Args:
+16        expressions: the expressions to write
+17        filename: the file to write to
+18    """
+19    with open(filename, "w") as f:
+20        dump([expr.to_dict() for expr in expressions], f, Dumper=Dumper)
+
+ + +

Write expressions to a YAML file.

+ +

This is particularly useful for writing GrammaticalExpressions, which have a func field that can't be serialized. This function uses to_dict to determine which properties of the Expression to write.

+ +
Arguments:
+ +
    +
  • expressions: the expressions to write
  • +
  • filename: the file to write to
  • +
+
+ + +
+
+ +
+ + def + read_grammatical_expressions( filename: str, grammar: ultk.language.grammar.Grammar, re_parse: bool = False, universe: ultk.language.semantics.Universe | None = None, return_by_meaning=True) -> tuple[list[ultk.language.grammar.GrammaticalExpression], dict[ultk.language.semantics.Meaning, ultk.language.grammar.GrammaticalExpression]]: + + + +
+ +
23def read_grammatical_expressions(
+24    filename: str,
+25    grammar: Grammar,
+26    re_parse: bool = False,
+27    universe: Universe | None = None,
+28    return_by_meaning=True,
+29) -> tuple[list[GrammaticalExpression], dict[Meaning, GrammaticalExpression]]:
+30    """Read grammatical expressions from a YAML file.
+31
+32    Optionally re-parse and (re-)evaluate the expressions using the provided grammar and universe.
+33
+34    Args:
+35        filename: the file to read
+36        grammar: the grammar to use for parsing (and for re-populating the `.func` attribute of each GrammaticalExpression)
+37        re_parse: whether to re-parse the expressions
+38        universe: the universe to use for evaluation
+39        return_by_meaning: whether to return a dictionary mapping meanings to expressions or not
+40
+41    Returns:
+42        a list of GrammaticalExpressions and a dictionary mapping meanings to expressions (empty if `return_by_meaning` is False)
+43    """
+44    if re_parse and (grammar is None or universe is None):
+45        raise ValueError("Must provide grammar and universe if re-parsing expressions.")
+46
+47    with open(filename, "r") as f:
+48        expression_list = load(f, Loader=Loader)
+49
+50    if re_parse:
+51        final_exprs = [
+52            (
+53                grammar.parse(expr_dict["term_expression"])
+54                if re_parse
+55                else GrammaticalExpression(**expr_dict)
+56            )
+57            for expr_dict in expression_list
+58        ]
+59    else:
+60        final_exprs = [
+61            GrammaticalExpression.from_dict(expr_dict, grammar)
+62            for expr_dict in expression_list
+63        ]
+64    if universe is not None:
+65        [expr.evaluate(universe) for expr in final_exprs]
+66    by_meaning = {}
+67    if return_by_meaning:
+68        by_meaning = {expr.meaning: expr for expr in final_exprs}
+69    return final_exprs, by_meaning
+
+ + +

Read grammatical expressions from a YAML file.

+ +

Optionally re-parse and (re-)evaluate the expressions using the provided grammar and universe.

+ +
Arguments:
+ +
    +
  • filename: the file to read
  • +
  • grammar: the grammar to use for parsing (and for re-populating the .func attribute of each GrammaticalExpression)
  • +
  • re_parse: whether to re-parse the expressions
  • +
  • universe: the universe to use for evaluation
  • +
  • return_by_meaning: whether to return a dictionary mapping meanings to expressions or not
  • +
+ +
Returns:
+ +
+

a list of GrammaticalExpressions and a dictionary mapping meanings to expressions (empty if return_by_meaning is False)

+
+
+ + +
+
+ +
+ + def + write_pickle(fn: str, data): + + + +
+ +
72def write_pickle(fn: str, data):
+73    with open(fn, "wb") as f:
+74        pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)
+75    print(f"Wrote a pickle binary to {fn}.")
+
+ + + + +
+
+ +
+ + def + read_pickle(fn: str): + + + +
+ +
77def read_pickle(fn: str):
+78    with open(fn, "rb") as f:
+79        data = pickle.load(f)
+80    return data
+
+ + + + +
+
+ + \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index ae8481f..5039b56 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,6 @@ dependencies = [ "plotnine", "pathos", "pytest", - "rdot", ] [project.urls] diff --git a/src/examples/__init__.py b/src/examples/__init__.py index f52229a..1e06499 100644 --- a/src/examples/__init__.py +++ b/src/examples/__init__.py @@ -1,4 +1,3 @@ """Minimal examples demonstrating how to use ULTK. -See `examples.signaling_game`. """ diff --git a/src/examples/colors/README.md b/src/examples/colors/README.md new file mode 100644 index 0000000..9839831 --- /dev/null +++ b/src/examples/colors/README.md @@ -0,0 +1,56 @@ +# Analyzing the Relationship between Complexity and Informativity across the World's Languages + +Based off [Zaslavsky, Kemp et al's paper on color complexity ](https://www.pnas.org/doi/full/10.1073/pnas.1800521115) and [the corresponding original repo](https://github.com/nogazs/ib-color-naming). + +This example creates a "conceptual" / miniature replication of the above paper using the tools provided by the ULTK library. Right now, the final analysis produces the following plot: +![a plot showing communicative cost and complexity of natural, explored, and dominant languages](https://github.com/CLMBRs/altk/blob/main/src/examples/colors/outputs/plot.png?raw=true) + +This README first explains the contents of this example directory, focusing on what the user has to provide that's specific to the color case study, before then explaining the concrete steps taken to produce the above plot. After that, there is some discussion of what's missing from the above paper and other next steps for this example. + +## Contents +`data` consists of language and color data provided by the [World Color Survey](https://linguistics.berkeley.edu/wcs/data.html). Certain files have been slightly edited in order for simplicity of parsing, such as providing a header row. + +`outputs` contains outputs of various scripts, as outlined below. + + + `lang_colors` consists of per-language color distributions. Major color terms are graphed per language. + +`analyze_data.py` contains functions for graphing the distribution of color terms across language expressions and languages themselves. + +`color_grammar.py` contains class definitions for the ColorLanguage and other utility structures. + +`generate_wcs_languages.py` contains the function for reading and converting the WCS data to ULTK language structures. It also generates + +`complexity.py` calculates the complexity and informativity of the various color WCS color languages, passed in as a pandas DataFrame. + +`graph_colors.py` contains functions for graphing the distribution of color terms across language expressions and languages themselves. + +`util.py` contains utility functions, including the argument parser for running this tool from shell. + +## Usage + +From `ultk/examples` base directory: +1. Run `python -m colors.scripts.read_color_universe`: this generates the color universe (the 330 Munsell chips) to be re-used throughout. It does very light processing of the WCS data to generate a CSV file that can be easily read by ULTK. + - Consumes: `data/cnum-vhcm-lab-new.txt` + - Produces: `outputs/color_universe.csv` +2. Run `python -m colors.scripts.read_natural_languages`: this reads the natural language WCS data and produces ULTK `Language` objects. (NOTE: still a work-in-progress) + - Consumes: `data/data/term.txt`, `outputs/color_universe.csv` + - Produces: `outputs/natural_languages.yaml` +3. Run `python -m colors.scripts.measure_natural_languages`: this reads the ULTK natural languages and calculates the complexity and informativity of each language. + - Consumes: `outputs/natural_languages.yaml` + - Produces: `outputs/natural_language_information_plane.csv` + + +NOTE: below this is +Run `python analyze_data.py` from the `colors` folder. This calls `generate_wcs_languages` to generate the language data, then `complexity.py` to generate the complexity, then Several options are available as command-line settings.: + + +## Remaining Tasks + +At the moment, the density of the probability function per major color term is not factored into the final graphs generated. + +Additionally, the mutual information when probability is taken into account using an assigned probability to the weight matrix gives a large negative value, which should be impossible given the prior is entirely uniform. + +At the moment + + diff --git a/src/examples/colors/grammar.py b/src/examples/colors/__init__.py similarity index 100% rename from src/examples/colors/grammar.py rename to src/examples/colors/__init__.py diff --git a/src/examples/colors/data/lang.txt b/src/examples/colors/data/lang.txt index cf4f500..0b50934 100644 --- a/src/examples/colors/data/lang.txt +++ b/src/examples/colors/data/lang.txt @@ -19,15 +19,15 @@ LNUM LNAME LGEO LFW 18 Ucayali Campa Peru Allene Heitzman Jason D. Patent * Campa_DAT_new.txt new 19 Camsa * * * * Camsa_DAT_new.txt new 20 Candoshi * * * * Candoshi_DAT_new.txt new -21 Cavine{\x96}a * * * * Cavinena_DAT_new.txt new +21 Cavinena * * * * Cavinena_DAT_new.txt new 22 Cayapa Ecuador Neil Wiebe Scott Merrifield William R. Merrifield Cayapa_DAT_new.txt new -23 Ch{\x87}cobo * * * * Chacobo_DAT_new.txt new +23 Chacobo * * * * Chacobo_DAT_new.txt new 24 Chavacano * * * * Chavacano_DAT_new.txt new 25 Chayahuita * * * * Chayahuita_DAT_new.txt new 26 Chinanteco Mexico Al & Jeff Anderson Jason D. Patent * Chinantec_DAT_new.txt new 27 Chiquitano Bolivia M. Kr{\x9F}si, L. Rodriguez, E. Lyn (?) Jason Patent * Chiquitano_DAT_new.txt new 28 Chumburu * Hansford Scott Merrifield William R. Merrifield Chumburu_DAT_new.txt new -29 Cof{\x87}n * * * * Cofan_DAT_new.txt new +29 Cofan * * * * Cofan_DAT_new.txt new 30 Colorado * * * * Colorado_DAT_new.txt new 31 Eastern Cree Canada Lieselotte Bartlett Scott Merrifield William R. Merrifield Cree_DAT_new.txt new 32 Culina Peru, Brazil P. Adams and T. Fern{\x87}ndez Jason Patent * Culina_DAT_new.txt new @@ -40,7 +40,7 @@ LNUM LNAME LGEO LFW 39 Guahibo Colombia Riena Kondo Kenneth J. Merrifield William R. Merrifield Guahibo_DAT_new.txt new 40 Guambiano * * * * Guambiano_DAT_new.txt new 41 Guarijio Mexico Ron and Sharon Stoltzfus Kenneth J. Merrifield William R. Merrifield Guarijio_DAT_new.txt new -42 Ng{\x8A}bere Panama Arosemena Patent, Jason * Guaymi_DAT_new.txt new +42 Ngbere Panama Arosemena Patent, Jason * Guaymi_DAT_new.txt new 43 Gunu Cameroon D. Heath Ken Merrifield Ken Merrifield Gunu_DAT_new.txt new 44 Halbi India F. Woods and P. Hopple Jason Patent * Halbi_DAT_new.txt new 45 Huasteco * * * * Huastec_DAT_new.txt new @@ -72,11 +72,11 @@ LNUM LNAME LGEO LFW 71 Mikasuki U S A David West Scott Merrifield Scott Merrifield Mikasuki_DAT_new.txt new 72 Mixteco * * * * Mixtec_DAT_new.txt new 73 Mundu * * * * Mundu_DAT_new.txt new -74 M{\x9C}ra Pirah{\x8B} * * * * Mura-Piraha_DAT_new.txt new +74 Mura Piraha * * * * Mura-Piraha_DAT_new.txt new 75 Murle * * * * Murle_DAT_new.txt new 76 Murinbata * * * * Murrinh-Patha_DAT_new.txt new 77 Nafaanra * * * * Nafaanra_DAT_new.txt new -78 N{\x87}huatl * * * * Nahuatl_DAT_new.txt new +78 Nahuatl * * * * Nahuatl_DAT_new.txt new 79 Ocaina * * * * Ocaina_DAT_new.txt new 80 Papago * * * * Oodham_DAT_new.txt new 81 Patep * * * * Patep_DAT_new.txt new @@ -85,7 +85,7 @@ LNUM LNAME LGEO LFW 84 Saramaccan * * * * Saramaccan_DAT_new.txt new 85 Seri * * * * Seri_DAT_new.txt new 86 Shipibo Peru Guillermo Ramirez Ken Merrifield Ken Merrifield Shipibo_DAT_new.txt new -87 Sirion{\x97} * * * * Siriono_DAT_new.txt new +87 Siriono * * * * Siriono_DAT_new.txt new 88 Slave Canada Monus Jason D. Patent * Slave_DAT_new.txt new 89 Sursurunga * * * * Sursurunga_DAT_new.txt new 90 Tabla * * * * Tabla_DAT_new.txt new diff --git a/src/examples/colors/data/zkrt18_prior.npy b/src/examples/colors/data/zkrt18_prior.npy new file mode 100644 index 0000000..8233589 Binary files /dev/null and b/src/examples/colors/data/zkrt18_prior.npy differ diff --git a/src/examples/colors/demo.ipynb b/src/examples/colors/demo.ipynb new file mode 100644 index 0000000..5bd9fb7 --- /dev/null +++ b/src/examples/colors/demo.ipynb @@ -0,0 +1,355 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Walkthrough of IB Color Naming Model\n", + "\n", + "This notebook contains a walkthrough of an implementation of the color naming model from Zaslavsky, Kemp, Regier and Tishby (2018) in ULTK.\n", + "\n", + "This involves several simplifying assumptions. If you want to apply the actual naming model from the paper, you should add https://github.com/nogazs/ib-color-naming/tree/master as a submodule to your project." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "from ultk.effcomm.information_bottleneck import modeling\n", + "from ultk.language.semantics import Universe\n", + "\n", + "from tqdm import tqdm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Construct the IB model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load the universe" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# This assumes you've run the script ./scripts/read_color_universe.py\n", + "color_universe = Universe.from_csv(\"outputs/color_universe.csv\")\n", + "\n", + "# shape `(330, 3)`: L*a*b* values for each Munsell chip\n", + "cielab_points = np.array([(ref.L, ref.a, ref.b) for ref in color_universe.referents])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define meaning distributions in terms of distance in CIELAB space" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def meaning_distance(\n", + " center: np.ndarray, other_point: np.ndarray, sigma_squared: float = 64.0\n", + ") -> float:\n", + " \"\"\"Calculate the distance between two points in CIELAB space.\n", + "\n", + " Args:\n", + " center: the first point (e.g. (L, a, b) for a Munsell chip)\n", + " other_point: the second point\n", + " sigma_squared: the variance of the Gaussian kernel\n", + "\n", + " Returns:\n", + " exp(-||center - other_point||^2 / (2 * sigma_squared))\n", + " \"\"\"\n", + " return np.exp(-np.linalg.norm(center - other_point) ** 2 / (2 * sigma_squared))\n", + "\n", + "# shape: `(330, 330)`\n", + "meaning_distributions = np.array(\n", + " [\n", + " [meaning_distance(center, other_point) for other_point in cielab_points]\n", + " for center in cielab_points\n", + " ]\n", + ")\n", + "meaning_distributions /= meaning_distributions.sum(axis=1, keepdims=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "pU_M = meaning_distributions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load the prior" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "pM = np.load(\"data/zkrt18_prior.npy\").squeeze()\n", + "# pM = np.full(pU_M.shape[0], 1/pU_M.shape[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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WwcA+MIXvpCxff369fj6178OAPj5z38OrTXmz5+PRCKB2bNn41e/+lWfFEtERESDX6/Ch4h87DHRaBRr167F2rVrz7goIiIiOnfx33YhIiKiQDF8EBERUaAYPoiIiChQDB9EREQUKIYPIiIiChTDBxEREQWK4YOIiIgCxfBBREREgWL4ICIiokAxfBAREVGgGD6IiIgoUAwfREREFCiGDyIiIgoUwwcREREFiuGDiIiIAsXwQURERIFi+CAiIqJAMXwQERFRoBg+iIiIKFCfKHzcddddUEphyZIl/rZ4PI6qqiqMHDkSOTk5mD9/PlpaWj5pnURERHSOOOPw8cILL+DXv/41pkyZkrF96dKleOqpp/D444+jrq4OBw8exHXXXfeJCyUiIqJzwxmFj+PHj2PBggV44IEHMHz4cH97W1sbfve73+Gee+7B1VdfjWnTpmH9+vV4/vnnsXXr1j4rmoiIiAavMwofVVVVmDNnDiorKzO2NzQ0IJVKZWyfMGECxo4di/r6+lOeK5FIoL29PeNBRERE5y67t0947LHHsHPnTrzwwgsn7WtubkY4HEZBQUHG9lgshubm5lOer6amBnfeeWdvyyAiIqJBqleffDQ1NeHb3/42Hn74YUSj0T4poLq6Gm1tbf6jqampT85LREREA1OvwkdDQwMOHz6Myy67DLZtw7Zt1NXV4d5774Vt24jFYkgmk2htbc14XktLC4qKik55zkgkgry8vIwHERERnbt69WuXmTNn4qWXXsrYduONN2LChAn43ve+h9LSUoRCIdTW1mL+/PkAgMbGRhw4cAAVFRV9VzURERENWr0KH7m5uZg0aVLGtuzsbIwcOdLffvPNN2PZsmUYMWIE8vLycNttt6GiogKf/exn+65qIiIiGrR6/YXTj/Pzn/8cWmvMnz8fiUQCs2fPxq9+9au+fhkiIiIapD5x+NiyZUvGz9FoFGvXrsXatWs/6amJiIjoHMR/24WIiIgCxfBBREREgWL4ICIiokAxfBAREVGgGD6IiIgoUAwfREREFCiGDyIiIgoUwwcREREFiuGDiIiIAsXwQURERIFi+CAiIqJAMXwQERFRoBg+iIiIKFAMH0RERBQohg8iIiIKFMMHERERBYrhg4iIiALF8EFERESBYvggIiKiQPU6fLzzzjv42te+hpEjRyIrKwuTJ0/Gjh07/P0i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ffv2yV/+8he57LLLZPz48RKPx/1zDJVe3XrrrZKfny9btmyRQ4cO+Y+uri7/mI9bd+l0WiZNmiSzZs2S3bt3y8aNG2X06NFSXV3dH0M6az6uV3v37pVVq1bJjh07ZN++ffLkk0/KBRdcIFdddZV/jqHSq+XLl0tdXZ3s27dPXnzxRVm+fLkopeR//ud/RGTozKkBFz5ERO677z4ZO3ashMNhueKKK2Tr1q39XVK/u/7666W4uFjC4bCcd955cv3118vevXv9/d3d3fKtb31Lhg8fLsOGDZMvf/nLcujQoX6sODh//etfBcBJj4ULF4qI+9dtV6xYIbFYTCKRiMycOVMaGxszznH06FH56le/Kjk5OZKXlyc33nijdHR09MNozq6P6lVXV5fMmjVLRo8eLaFQSMaNGye33HLLScF/qPTqVH0CIOvXr/ePOZ11t3//frn22mslKytLRo0aJd/5zncklUoFPJqz6+N6deDAAbnqqqtkxIgREolE5KKLLpLbb79d2traMs4zFHp10003ybhx4yQcDsvo0aNl5syZfvAQGTpzSomIBPc5CxEREQ11A+o7H0RERHTuY/ggIiKiQDF8EBERUaAYPoiIiChQDB9EREQUKIYPIiIiChTDBxEREQWK4YOIiIgCxfBBREREgWL4ICIiokAxfBAREVGg/j/YryUj3YQcRQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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009jZmYGfX19NT12NUUwe/HiRWia5uhEAOju7sZbb721SLWKju3bt+Opp57Cxo0bceHCBfzVX/0V3vve9+Lw4cMYGBhANptFa2ur453u7m4MDAwsToVjwKwza+zM3wYGBtDV1eX4XVEUtLe310Sb77zzTnzkIx/B2rVrceLECXzlK1/BXXfdhT179kCW5Zpqn67r+PznP4/3vOc9uPbaawGAa04ODAwwx9j8bamA1T4A+IM/+AOsWbMGy5cvx+uvv44vfelLOHr0KL73ve8BWPrtO3ToEPr6+lAoFNDY2IhnnnkGmzdvxoEDB2p27GpKSV1quOuuu6z/3rJlC7Zv3441a9bgO9/5Duo5MommWFr4/d//feu/r7vuOmzZsgXr16/H7t27cdttty1izcSxa9cuHD58GD//+c8XuypVgV/7PvvZz1r/fd1116G3txe33XYbTpw4gfXr1y90NYWxceNGHDhwABMTE/iP//gP7Ny5E6+88spiVysWasrc19HRAVmWPR4pg4OD6OnpWaRaJYfW1lZcddVVOH78OHp6elAqlTA+Pu54plbbatY5aOx6enowNDTk+F1VVYyOjtZkm9etW4eOjg4cP34cQO2073Of+xx++MMf4uWXX3Yko+OZkz09PcwxNn9bCvBrHwvbt28HAMcYLuX2ZbNZbNiwAdu2bcNjjz2GrVu34pvf/GZNj11NKalsNott27bhxRdftP6m6zpefPFF9PX1LWLNksH09DROnDiB3t5ebNu2DZlMxtHWo0eP4syZMzXZ1rVr16Knp8fRnsnJSbz66qtWe/r6+jA+Po59+/ZZz7z00kvQdd0SFrWE/v5+jIyMoLe3F8DSbx+lFJ/73OfwzDPP4KWXXsLatWsdv/PMyb6+Phw6dMihjH/84x+jubkZmzdvXpiG+CCsfSwcOHAAABxjuFTbx4Ku6ygWi7U9dovmshERTz/9NM3lcvSpp56iR44coZ/97Gdpa2urwyOlVvDFL36R7t69m548eZL+4he/oDt27KAdHR10aGiIUmq4jK5evZq+9NJLdO/evbSvr4/29fUtcq39MTU1Rffv30/3799PAdC/+Zu/ofv376enT5+mlBou6K2trfQHP/gBff311+k999zDdEG/4YYb6Kuvvkp//vOf0yuvvHLJuGgHtW9qaor++Z//Od2zZw89efIk/clPfkLf9a530SuvvJIWCgWrjKXcvgcffJC2tLTQ3bt3O1ywZ2dnrWfC5qTpxnz77bfTAwcO0P/+7/+mnZ2di+7GTGl4+44fP06//vWv071799KTJ0/SH/zgB3TdunX01ltvtcpYyu378pe/TF955RV68uRJ+vrrr9Mvf/nLlBBCf/SjH1FKa3fsak5JUUrp3/3d39HVq1fTbDZLb775ZvqrX/1qsasUCR/72Mdob28vzWazdMWKFfRjH/sYPX78uPX73Nwc/ZM/+RPa1tZG8/k8/fCHP0wvXLiwiDUOxssvv0wBeP7ZuXMnpdRwQ/+Lv/gL2t3dTXO5HL3tttvo0aNHHWWMjIzQj3/847SxsZE2NzfTT3/603RqamoRWuNFUPtmZ2fp7bffTjs7O2kmk6Fr1qyh999/v2fztJTbx2obAPrkk09az/DMyVOnTtG77rqL1tfX046ODvrFL36Rzs/PL3BrvAhr35kzZ+itt95K29vbaS6Xoxs2bKAPPfSQI06K0qXbvj/6oz+ia9asodlslnZ2dtLbbrvNUlCU1u7Ypak6UqRIkSLFkkVN3UmlSJEiRYrLC6mSSpEiRYoUSxapkkqRIkWKFEsWqZJKkSJFihRLFqmSSpEiRYoUSxapkkqRIkWKFEsWqZJKkSJFihRLFqmSSpEiRYoUSxapkkqRIkWKFEsWqZJKkSJFihRLFqmSSpEiRYoUSxapkkqRIkWKFEsW/x8ESoX1g1sqcwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(np.stack([pM]*100)); plt.show()\n", + "plt.imshow(pU_M); plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Get IB model" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'ultk.effcomm.ib'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[15], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m model_fn \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./outputs/naming_model.pkl\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mexists(model_fn):\n\u001b[0;32m----> 3\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mmodeling\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mIBNamingModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_pickle\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel_fn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 5\u001b[0m \u001b[38;5;66;03m# This takes days on a laptop, but will work\u001b[39;00m\n\u001b[1;32m 6\u001b[0m model \u001b[38;5;241m=\u001b[39m modeling\u001b[38;5;241m.\u001b[39mget_ib_naming_model(\n\u001b[1;32m 7\u001b[0m pU_M,\n\u001b[1;32m 8\u001b[0m pM,\n\u001b[1;32m 9\u001b[0m \u001b[38;5;66;03m# add custom beta values here\u001b[39;00m\n\u001b[1;32m 10\u001b[0m betas\u001b[38;5;241m=\u001b[39mnp\u001b[38;5;241m.\u001b[39mlogspace(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m5\u001b[39m, \u001b[38;5;241m1600\u001b[39m,)\n\u001b[1;32m 11\u001b[0m )\n", + "File \u001b[0;32m~/uw/projects/ultk/src/ultk/effcomm/information_bottleneck/modeling.py:126\u001b[0m, in \u001b[0;36mIBNamingModel.from_pickle\u001b[0;34m(cls, fn)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfrom_pickle\u001b[39m(\u001b[38;5;28mcls\u001b[39m, fn: \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m--> 126\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mread_pickle\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/uw/projects/ultk/src/ultk/util/io.py:78\u001b[0m, in \u001b[0;36mread_pickle\u001b[0;34m(fn)\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mread_pickle\u001b[39m(fn: \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 77\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mopen\u001b[39m(fn, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrb\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m f:\n\u001b[0;32m---> 78\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[43mpickle\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 79\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'ultk.effcomm.ib'" + ] + } + ], + "source": [ + "model_fn = \"./outputs/naming_model.pkl\"\n", + "if os.path.exists(model_fn):\n", + " model = modeling.IBNamingModel.from_pickle(model_fn)\n", + "else:\n", + " # This takes days on a laptop, but will work\n", + " model = modeling.get_ib_naming_model(\n", + " pU_M,\n", + " pM,\n", + " # add custom beta values here\n", + " betas=np.logspace(0, 5, 1600,)\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load natural languages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read the data\n", + "term_df = pd.read_csv(\n", + " \"data/term.txt\", delimiter=\"\\t\", names=(\"lang\", \"spkr\", \"cnum\", \"term\")\n", + ")\n", + "\n", + "# Get the number of unique meanings and initialize variables\n", + "num_m = len(term_df.cnum.unique())\n", + "\n", + "# Create a dictionary to store p(W|C) for each language\n", + "pW_C_dict = {}\n", + "\n", + "# Process each language separately\n", + "for lang in tqdm(term_df.lang.unique()):\n", + " # Subset the data for this language\n", + " lang_df = term_df[term_df.lang == lang]\n", + " \n", + " # Map terms and categories to indices\n", + " unique_terms = lang_df.term.unique()\n", + " term_to_idx = {term: i for i, term in enumerate(unique_terms)}\n", + " num_w = len(unique_terms)\n", + " \n", + " # Initialize p(W|C) matrix\n", + " pW_C = np.zeros((num_m, num_w))\n", + " \n", + " # Populate the matrix\n", + " for cnum, group in lang_df.groupby('cnum'):\n", + " c_idx = cnum - 1 # Assuming cnum starts from 1\n", + " term_counts = group['term'].value_counts()\n", + " \n", + " for term, count in term_counts.items():\n", + " t_idx = term_to_idx[term]\n", + " pW_C[c_idx, t_idx] = count\n", + " \n", + " # Normalize rows to get probabilities\n", + " pW_C = pW_C / pW_C.sum(axis=1, keepdims=True)\n", + " \n", + " # Store the result for this language\n", + " pW_C_dict[lang] = pW_C\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# langq = lambda lang: language_to_encoder(lang)\n", + "get_point = lambda q: (model.complexity(q), model.accuracy(q), model.d_IB(q))\n", + "\n", + "df_langs = pd.DataFrame.from_records(\n", + " [\n", + " (key, )\n", + " + get_point(q)\n", + " for key, q in tqdm(pW_C_dict.items())\n", + " ],\n", + " columns=(\"language\", \"complexity\", \"accuracy\", \"distortion\"),\n", + ")\n", + "df_langs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import plotnine as pn" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_bound = pd.DataFrame(model.IB_curve.T, columns=[\"complexity\", \"accuracy\"],)\n", + "df_bound" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "(\n", + " pn.ggplot(\n", + " df_bound, \n", + " mapping=pn.aes(x=\"complexity\", y=\"accuracy\"),\n", + " ) \n", + " + pn.geom_line() # IB curve\n", + " + pn.geom_ribbon(\n", + " mapping=pn.aes(\n", + " x=\"complexity\",\n", + " ymin=\"accuracy\",\n", + " ymax=np.inf,\n", + " ),\n", + " fill=\"gray\",\n", + " alpha=0.3,\n", + " )\n", + " # natural langs\n", + " + pn.geom_point( \n", + " data=df_langs,\n", + " # alpha=0.3,\n", + " size=3,\n", + " fill=\"blue\",\n", + " )\n", + " + pn.xlab(\"Complexity, $I(M;W)$ bits\")\n", + " + pn.ylab(\"Accuracy, $I(W;U)$ bits\")\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ultk", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/examples/colors/meaning.py b/src/examples/colors/meaning.py index 5b7af7a..3f531ef 100644 --- a/src/examples/colors/meaning.py +++ b/src/examples/colors/meaning.py @@ -1,268 +1,38 @@ -import csv -import math -import pandas as pd -from ultk.language.semantics import Meaning, Universe, Referent -from ultk.language.language import Language, Expression -import ultk.effcomm.informativity as informativity -import ultk.effcomm.rate_distortion as rd -from collections import Counter -import os import numpy as np -from urllib.request import urlretrieve -from rdot.ba import IBResult -import pickle -import matplotlib.pyplot as plt +from ultk.language.semantics import Universe -import pandas as pdcombined -import plotnine as pn +color_universe = Universe.from_csv("src/examples/colors/outputs/color_universe.csv") -from zipfile import ZipFile +# TODO: generate meaning dists once and serialize? +# shape (330, 3): L*a*b* values for each Munsell chip +cielab_points = np.array([(ref.L, ref.a, ref.b) for ref in color_universe.referents]) -wcs_dialect = csv.Dialect -wcs_dialect.delimiter = "\t" -language_codes = dict() -language_terms = dict() +def meaning_distance( + center: np.ndarray, other_point: np.ndarray, sigma_squared: float = 64.0 +) -> float: + """Calculate the distance between two points in CIELAB space. + Args: + center: the first point (e.g. (L, a, b) for a Munsell chip) + other_point: the second point + sigma_squared: the variance of the Gaussian kernel + Returns: + exp(-||center - other_point||^2 / (2 * sigma_squared)) + """ + return np.exp(-np.linalg.norm(center - other_point) ** 2 / (2 * sigma_squared)) -#Generate all WCS color codes -current_dir = os.path.dirname(os.path.realpath(__file__)) - -#####----TESTING - Grab the Noga model -- remove later -DEFAULT_MODEL_URL = 'https://www.dropbox.com/s/70w953orv27kz1o/IB_color_naming_model.zip?dl=1' -def load_model(filename=None, model_dir='./model/'): - if not os.path.isdir(model_dir): - os.makedirs(model_dir) - if filename is None: - filename = model_dir + 'IB_color_naming_model/model.pkl' - if not os.path.isfile(filename): - print('downloading default model from %s ...' % DEFAULT_MODEL_URL) - urlretrieve(DEFAULT_MODEL_URL, model_dir + 'temp.zip') - print('extracting model files ...') - with ZipFile(model_dir + 'temp.zip', 'r') as zf: - zf.extractall(model_dir) - #os.remove(model_dir + 'temp.zip') - os.rename(model_dir + 'IB_color_naming_model/IB_color_naming.pkl', filename) - with open(filename, 'rb') as f: - print('loading model from file: %s' % filename) - model_data = pickle.load(f) - return model_data - -model_data = load_model(filename=f"{current_dir}/model/model.pkl", model_dir=f"{current_dir}/model/") - - -munsell_to_cielab = {} -with open( - f"{current_dir}/data/cnum-vhcm-lab-new.txt", newline="", encoding="utf-8" -) as csvfile: - color_reader = csv.DictReader(csvfile, delimiter="\t") - for row in color_reader: - munsell_to_cielab[row["V"] + row["H"]] = [ - float(row["L*"]), - float(row["a*"]), - float(row["b*"]), - ] -color_codes = [{"name": key} for key in munsell_to_cielab.keys()] - -# Generate referents for all color codes -referents = pd.DataFrame(color_codes) -color_universe = Universe.from_dataframe(referents) - -with open(f"{current_dir}/data/lang.txt", newline="", encoding="utf-8") as csvfile: - lang_reader = csv.DictReader(csvfile, delimiter="\t") - for row in lang_reader: - language_codes[row["LNUM"]] = row["LNAME"] - -#Collect language information, such as term names, abbreviations, etc -with open(f'{current_dir}/data/dict.txt', newline='', encoding="utf-8" ) as csvfile: - term_reader = csv.DictReader(csvfile, delimiter='\t') - for row in term_reader: - lang_num = row["LNUM"] - lang_term_num = row["TNUM"] - lang_term_transcription = row["TRAN"] - lang_term_abbrev = row["WCSC"] - if lang_num not in language_terms: - language_terms[lang_num] = [] - language_terms[lang_num].append(lang_term_abbrev) - - -#Generate the uniform probability prior as a baseline -uniform_prior = color_universe.prior_numpy() -#uniform_prior = np.array(color_universe._prior) - -SIGMA_SQUARED_SCALAR = 64 -#Calculate the meaning space as an isotropic Gaussian centered at the first chip C, for all other points -def meaning(center, point): - return math.exp((-1/(2*SIGMA_SQUARED_SCALAR) * np.linalg.norm(center-point))) - -munsell_to_cielab = np.array(list(munsell_to_cielab.values())) -print(f"Munsell to CIELAB hues:{munsell_to_cielab}") - -#Generate the meaning space -meaning_space_indices = np.zeros(shape=(len(munsell_to_cielab), len(munsell_to_cielab))) -print(meaning_space_indices) -for center_index, center in enumerate(munsell_to_cielab): - for point_index, point in enumerate(munsell_to_cielab): - meaning_space_indices[center_index][point_index] = meaning(center, point) - - - -meaning_dists = meaning_space_indices / meaning_space_indices.sum(axis=1, keepdims=True) - -#print(language_terms) -expressions_by_speaker = {} -average_language_by_meaning = {} -speakers_by_language = {} -with open(f"{current_dir}/data/foci-exp.txt", newline="", encoding="utf-8") as csvfile: - color_reader = csv.DictReader(csvfile, delimiter="\t") - for row in color_reader: - lang_num = row["LNUM"] - speaker_num = row["SNUM"] - transcription = row["WCSC"] - color = row["COLOR"] - - # Filter AX to A0 and JX to J0 - both of these represent pure white/black respectively - if color.startswith("A"): - color = "A0" - elif color.startswith("J"): - color = "J0" - - # Update speaker records - if lang_num not in speakers_by_language: - speakers_by_language[lang_num] = set() - speakers_by_language[lang_num].add(speaker_num) - - #Assemble list of languages by speaker - if lang_num not in expressions_by_speaker: - expressions_by_speaker[lang_num] = {} - average_language_by_meaning[lang_num] = {} - if speaker_num not in expressions_by_speaker[lang_num]: - expressions_by_speaker[lang_num][speaker_num] = {} - if transcription not in expressions_by_speaker[lang_num][speaker_num]: - expressions_by_speaker[lang_num][speaker_num][transcription] = [] - if color not in average_language_by_meaning[lang_num]: - average_language_by_meaning[lang_num][color]= Counter() - - (expressions_by_speaker[lang_num][speaker_num])[transcription].append(color) - - average_language_by_meaning[lang_num][color][transcription] += 1 - - -#print(expressions_by_language) - -# For now, assume that if any speaker refers to a color by a given term, that color can be referred to by that term -# for language in expressions_by_language: -# for expression in expressions_by_language[language]: -# expressions_by_language[language][expression] = set(expressions_by_language[language][expression]) - -languages = {} - -#Average out the language, in case of disagreements. For each color, find the most common term associated with that color -for language_code in average_language_by_meaning: - expressions = {} - for color in average_language_by_meaning[language_code]: - #Find the most common term associated with each color - most_frequent_expression = average_language_by_meaning[language_code][color].most_common(1)[0][0] - #print(f"Most frequent expr:{most_frequent_expression}") - if most_frequent_expression not in expressions: - expressions[most_frequent_expression] = [] - expressions[most_frequent_expression].append(color) - language_expressions = [] - for expression_form in expressions: - #language_expressions.append(Expression(form=expression_form, meaning=Meaning(tuple([Referent(name=color) for color in expressions[expression_form]]), universe=color_universe))) - language_expressions.append(Expression(form=expression_form, meaning=Meaning(tuple([Referent(name=color) for color in expressions[expression_form]]), universe=color_universe))) - - languages[language_code] = Language(language_expressions, lang_code=language_code) - -#Generate the imshow heatmap for the meaning -plt.imshow(meaning_dists, cmap="hot") -plt.savefig(f"{current_dir}/outputs/old_meaning_dists.jpg") - -#Temporarily use Zaslavsky data to verify information -meaning_dists = model_data['pU_M'] -noga_prior = np.array([row[0] for row in model_data['pM']]) -noga_bound = model_data['IB_curve'] - -#Generate the heatmap for the Zaslavasky meaning function -plt.imshow(meaning_dists, cmap="hot") -plt.savefig(f"{current_dir}/outputs/noga_meaning_dists.jpg") - -#result = meaning(munsell_to_cielab[meaning_space_indices[0]], munsell_to_cielab[meaning_space_indices[1]]) -#Generate the meaning/accuracy/complexity for all languages based on the prior, meaning and Language -language_data = [] -for language_code in languages: - language = languages[language_code] - #Dereference the lang code to get the actual language associated with it - language_name = language_codes[language_code] - language_data.append((language_name, "natural") + rd.language_to_ib_point(language=language, prior=noga_prior, meaning_dists=(meaning_dists))) -combined_data = pd.DataFrame(language_data, columns =['name','type','complexity', 'informativity', 'comm_cost']) - -""" -#Generate languages per speaker -for language in expressions_by_speaker: - for speaker in expressions_by_speaker[language]: - expressions = [] - for expression in expressions_by_speaker[language][speaker]: - #print(f"Language:{language} | Expression:{expression} | Colors:{expressions_by_language[language][speaker][expression]}") - expressions.append(Expression(form=expression, meaning=Meaning(tuple([Referent(name=color) for color in expressions_by_speaker[language][speaker][expression]]), universe=color_universe))) - languages[(language, speaker)] = (Language(expressions, lang_code=language, speaker=speaker)) - - -#result = meaning(munsell_to_cielab[meaning_space_indices[0]], munsell_to_cielab[meaning_space_indices[1]]) -language_data = [] -for language_info in languages: - language = languages[language_info] - language_code = language_info[0] - speaker_id = language_info[1] - #Dereference the lang code to get the actual language associated with it - language_name = language_codes[language_code] - language_data.append((language_name, "natural", speaker_id) + rd.language_to_ib_point(language=language, prior=uniform_prior, meaning_dists=meaning_dists)) -combined_data = pd.DataFrame(language_data, columns =['name','type','speaker_id','complexity', 'informativity', 'comm_cost']) - -""" - -#Get the IB bound for the specified parameters -ib_boundary = rd.get_ib_bound(prior=uniform_prior, meaning_dists=meaning_dists, betas=np.logspace(-2, 2, 10)) -ib_boundary_points = pd.DataFrame([("ib_bound", "ib_bound", ib_point.rate, ib_point.accuracy, ib_point.distortion ) - for ib_point in ib_boundary if ib_point is not None], columns =['name','type','complexity', 'informativity', 'comm_cost']) - -combined_data = pd.concat([ib_boundary_points, combined_data]) - -#Generate and save plots -plot = ( - pn.ggplot(pn.aes(x="complexity", y="comm_cost")) - + pn.geom_point(combined_data, pn.aes(color="type")) - + pn.geom_text( - combined_data[combined_data["type"] == "natural"], - pn.aes(label="name"), - ha="left", - size=5, - nudge_x=0.1,) +# shape: (330, 330) +# meaning_distributions[i, j] = meaning_distance(cielab_points[i], cielab_points[j]) +# this is p(u | m), or m_c(u) in the paper +meaning_distributions = np.array( + [ + [meaning_distance(center, other_point) for other_point in cielab_points] + for center in cielab_points + ] ) - - -plot.save(f"{current_dir}/outputs/complexity-commcost.png", width=8, height=6, dpi=300) - -plot = ( - pn.ggplot(pn.aes(x="complexity", y="informativity")) - + pn.geom_point(combined_data, pn.aes(color="type")) - + pn.geom_text( - combined_data[combined_data["type"] == "natural"], - pn.aes(label="name"), - ha="left", - size=5, - nudge_x=0.1,) - ) - -plot.save(f"{current_dir}/outputs/complexity-informativity.png", width=8, height=6, dpi=300) - -plot = ( - pn.ggplot(pn.aes(x="informativity", y="comm_cost")) - + pn.geom_point(combined_data, pn.aes(color="type")) - - ) - -plot.save(f"{current_dir}/outputs/informativity-commcost.png", width=8, height=6, dpi=300) +# normalize each row into a distribution +meaning_distributions /= meaning_distributions.sum(axis=1, keepdims=True) diff --git a/src/examples/colors/meaning_dists.npy b/src/examples/colors/meaning_dists.npy deleted file mode 100644 index ff96b5e..0000000 Binary files a/src/examples/colors/meaning_dists.npy and /dev/null differ diff --git a/src/examples/colors/outputs/color_universe.csv b/src/examples/colors/outputs/color_universe.csv new file mode 100644 index 0000000..2121578 --- /dev/null +++ b/src/examples/colors/outputs/color_universe.csv @@ -0,0 +1,331 @@ +#cnum,V,H,C,MunH,MunV,L,a,b,name +1,E,29,10,2.50PB,6.0,61.7,-4.52,-39.18,1 +2,C,23,4,7.50BG,8.0,81.35,-19.64,-4.3,2 +3,F,4,16,10.00R,5.0,51.57,55.2,68.32,3 +4,I,36,6,10.00P,2.0,20.54,24.14,-14.33,4 +5,C,20,6,10.00G,8.0,81.35,-33.04,4.96,5 +6,C,6,6,5.00YR,8.0,81.35,14.87,30.96,6 +7,E,15,12,7.50GY,6.0,61.7,-46.97,64.65,7 +8,H,40,10,10.00RP,3.0,30.77,47.63,5.24,8 +9,G,6,8,5.00YR,4.0,41.22,22.15,41.13,9 +10,I,30,8,5.00PB,2.0,20.54,7.63,-35.92,10 +11,I,22,4,5.00BG,2.0,20.54,-16.13,-4.67,11 +12,C,11,12,7.50Y,8.0,81.35,-10.94,87.9,12 +13,I,18,6,5.00G,2.0,20.54,-27.79,7.33,13 +14,I,26,4,5.00B,2.0,20.54,-9.52,-13.99,14 +15,C,35,6,7.50P,8.0,81.35,18.74,-12.74,15 +16,C,0,0,10.00RP,8.0,81.35,-0.05,0.06,16 +17,E,3,12,7.50R,6.0,61.7,46.38,35.47,17 +18,I,11,2,7.50Y,2.0,20.54,-1.74,11.57,18 +19,E,27,8,7.50B,6.0,61.7,-16.81,-28.31,19 +20,F,16,12,10.00GY,5.0,51.57,-56.86,49.22,20 +21,E,39,12,7.50RP,6.0,61.7,49.38,2.78,21 +22,B,10,6,5.00Y,9.0,91.08,-5.25,45.24,22 +23,F,34,10,5.00P,5.0,51.57,31.24,-29.94,23 +24,H,10,4,5.00Y,3.0,30.77,-0.15,26.58,24 +25,G,24,6,10.00BG,4.0,41.22,-24.01,-14.24,25 +26,H,30,10,5.00PB,3.0,30.77,7.86,-43.39,26 +27,B,5,2,2.50YR,9.0,91.08,5.21,7.67,27 +28,E,38,10,5.00RP,6.0,61.7,40.07,-3.44,28 +29,D,18,8,5.00G,7.0,71.6,-41.95,14.43,29 +30,F,6,12,5.00YR,5.0,51.57,29.45,64.44,30 +31,C,24,4,10.00BG,8.0,81.35,-18.27,-7.01,31 +32,E,36,10,10.00P,6.0,61.7,37.1,-18.34,32 +33,D,15,10,7.50GY,7.0,71.6,-40.28,53.23,33 +34,F,28,10,10.00B,5.0,51.57,-11.88,-38.56,34 +35,D,3,10,7.50R,7.0,71.6,38.22,29.22,35 +36,I,20,6,10.00G,2.0,20.54,-26.87,1.22,36 +37,E,30,10,5.00PB,6.0,61.7,2.64,-39.49,37 +38,G,39,12,7.50RP,4.0,41.22,52.58,-0.05,38 +39,G,16,8,10.00GY,4.0,41.22,-38.39,31.53,39 +40,E,25,8,2.50B,6.0,61.7,-29.22,-21.27,40 +41,H,3,12,7.50R,3.0,30.77,52.68,34.06,41 +42,E,10,10,5.00Y,6.0,61.7,-1.4,71.61,42 +43,I,29,6,2.50PB,2.0,20.54,0.11,-26.61,43 +44,B,40,2,10.00RP,9.0,91.08,5.44,1.5,44 +45,E,17,10,2.50G,6.0,61.7,-51.58,26.3,45 +46,F,0,0,10.00RP,5.0,51.57,-0.03,0.04,46 +47,I,17,4,2.50G,2.0,20.54,-17.35,7.46,47 +48,E,8,12,10.00YR,6.0,61.7,14.45,76.93,48 +49,D,25,6,2.50B,7.0,71.6,-22.32,-14.67,49 +50,I,35,6,7.50P,2.0,20.54,22.74,-16.65,50 +51,H,8,6,10.00YR,3.0,30.77,9.51,37.16,51 +52,B,16,2,10.00GY,9.0,91.08,-12.29,10.56,52 +53,H,39,10,7.50RP,3.0,30.77,46.93,-2.51,53 +54,G,15,8,7.50GY,4.0,41.22,-33.18,41.15,54 +55,E,24,8,10.00BG,6.0,61.7,-33.16,-16.42,55 +56,C,4,6,10.00R,8.0,81.35,21.06,22.4,56 +57,H,24,6,10.00BG,3.0,30.77,-22.84,-15.29,57 +58,F,10,8,5.00Y,5.0,51.57,-0.48,57.27,58 +59,C,34,4,5.00P,8.0,81.35,9.68,-11.26,59 +60,I,25,4,2.50B,2.0,20.54,-11.72,-12.03,60 +61,H,2,10,5.00R,3.0,30.77,46.08,20.6,61 +62,E,32,8,10.00PB,6.0,61.7,15.28,-29.05,62 +63,D,1,8,2.50R,7.0,71.6,32.18,12.57,63 +64,G,29,10,2.50PB,4.0,41.22,-2.09,-40.81,64 +65,F,39,14,7.50RP,5.0,51.57,59.69,1.53,65 +66,B,8,2,10.00YR,9.0,91.08,1.28,14.41,66 +67,C,18,6,5.00G,8.0,81.35,-33.8,12.41,67 +68,E,37,10,2.50RP,6.0,61.7,38.67,-11.63,68 +69,G,12,6,10.00Y,4.0,41.22,-9.31,43.05,69 +70,C,32,4,10.00PB,8.0,81.35,5.82,-13.42,70 +71,I,1,8,2.50R,2.0,20.54,36.82,3.13,71 +72,G,19,10,7.50G,4.0,41.22,-53.43,8.61,72 +73,H,34,10,5.00P,3.0,30.77,36.9,-32.14,73 +74,C,26,4,5.00B,8.0,81.35,-13.22,-11.59,74 +75,I,16,4,10.00GY,2.0,20.54,-16.46,11.28,75 +76,F,5,14,2.50YR,5.0,51.57,40.53,69.04,76 +77,F,24,8,10.00BG,5.0,51.57,-32.36,-17.71,77 +78,C,36,6,10.00P,8.0,81.35,21.03,-9.69,78 +79,H,0,0,10.00RP,3.0,30.77,-0.02,0.03,79 +80,G,28,10,10.00B,4.0,41.22,-10.54,-39.65,80 +81,E,14,10,5.00GY,6.0,61.7,-30.13,65.11,81 +82,D,22,8,5.00BG,7.0,71.6,-39.21,-4.56,82 +83,B,9,4,2.50Y,9.0,91.08,-0.46,29.79,83 +84,C,3,6,7.50R,8.0,81.35,22.67,17.48,84 +85,F,18,10,5.00G,5.0,51.57,-52.87,15.46,85 +86,D,37,10,2.50RP,7.0,71.6,38.97,-10.98,86 +87,I,13,2,2.50GY,2.0,20.54,-4.47,9.36,87 +88,G,36,12,10.00P,4.0,41.22,46.93,-24.7,88 +89,J,0,0,10.00RP,1.5,15.6,-0.02,0.02,89 +90,I,23,4,7.50BG,2.0,20.54,-15.07,-7.11,90 +91,D,13,12,2.50GY,7.0,71.6,-24.87,85.15,91 +92,B,7,2,7.50YR,9.0,91.08,3.14,12.37,92 +93,G,26,8,5.00B,4.0,41.22,-21.08,-28.21,93 +94,I,8,2,10.00YR,2.0,20.54,3.62,11.09,94 +95,B,18,2,5.00G,9.0,91.08,-13.24,5.48,95 +96,C,10,14,5.00Y,8.0,81.35,-3.69,100.18,96 +97,H,32,10,10.00PB,3.0,30.77,28.36,-39.75,97 +98,G,1,14,2.50R,4.0,41.22,61.4,17.92,98 +99,D,34,6,5.00P,7.0,71.6,16.13,-17.52,99 +100,C,22,4,5.00BG,8.0,81.35,-21.19,-1.35,100 +101,H,38,10,5.00RP,3.0,30.77,46.25,-9.51,101 +102,D,31,6,7.50PB,7.0,71.6,6.06,-22.71,102 +103,G,11,6,7.50Y,4.0,41.22,-4.87,43.26,103 +104,D,27,6,7.50B,7.0,71.6,-14.22,-19.9,104 +105,G,35,10,7.50P,4.0,41.22,36.48,-25.75,105 +106,B,12,6,10.00Y,9.0,91.08,-12.17,45.9,106 +107,B,34,2,5.00P,9.0,91.08,3.36,-4.24,107 +108,B,21,2,2.50BG,9.0,91.08,-12.69,1.23,108 +109,G,31,12,7.50PB,4.0,41.22,20.81,-48.05,109 +110,D,8,14,10.00YR,7.0,71.6,15.62,90.72,110 +111,H,14,4,5.00GY,3.0,30.77,-13.04,21.97,111 +112,F,40,14,10.00RP,5.0,51.57,59.79,10.72,112 +113,I,10,2,5.00Y,2.0,20.54,-0.11,12.03,113 +114,H,23,6,7.50BG,3.0,30.77,-25.67,-10.89,114 +115,H,1,10,2.50R,3.0,30.77,47.34,12.58,115 +116,C,27,4,7.50B,8.0,81.35,-10.44,-12.79,116 +117,I,6,4,5.00YR,2.0,20.54,13.28,18.21,117 +118,D,38,10,5.00RP,7.0,71.6,40.04,-2.7,118 +119,E,20,10,10.00G,6.0,61.7,-51.88,5.51,119 +120,B,31,2,7.50PB,9.0,91.08,1.12,-5.38,120 +121,E,4,14,10.00R,6.0,61.7,49.15,56.82,121 +122,G,17,10,2.50G,4.0,41.22,-53.57,23.28,122 +123,G,25,6,2.50B,4.0,41.22,-20.46,-17.64,123 +124,C,14,10,5.00GY,8.0,81.35,-30.49,65.57,124 +125,E,5,16,2.50YR,6.0,61.7,44.69,79.79,125 +126,D,40,8,10.00RP,7.0,71.6,32.41,7.97,126 +127,I,21,4,2.50BG,2.0,20.54,-17.18,-1.47,127 +128,C,12,12,10.00Y,8.0,81.35,-17.25,87.99,128 +129,B,1,2,2.50R,9.0,91.08,5.53,2.22,129 +130,H,12,4,10.00Y,3.0,30.77,-6.44,26.57,130 +131,H,35,10,7.50P,3.0,30.77,39.78,-27.99,131 +132,G,4,14,10.00R,4.0,41.22,51.06,58.81,132 +133,H,18,8,5.00G,3.0,30.77,-39.62,10.61,133 +134,I,5,4,2.50YR,2.0,20.54,15.99,14.49,134 +135,G,37,12,2.50RP,4.0,41.22,49.84,-17.34,135 +136,E,23,8,7.50BG,6.0,61.7,-36.77,-10.9,136 +137,H,15,6,7.50GY,3.0,30.77,-23.96,27.29,137 +138,D,28,8,10.00B,7.0,71.6,-12.05,-29.46,138 +139,C,33,4,2.50P,8.0,81.35,8.19,-12.62,139 +140,H,28,8,10.00B,3.0,30.77,-7.86,-33.8,140 +141,A,0,0,10.00RP,9.5,96.0,-0.06,0.06,141 +142,C,31,4,7.50PB,8.0,81.35,3.22,-14.27,142 +143,D,14,12,5.00GY,7.0,71.6,-34.49,79.15,143 +144,I,32,8,10.00PB,2.0,20.54,23.12,-31.33,144 +145,D,20,8,10.00G,7.0,71.6,-41.54,5.41,145 +146,D,10,12,5.00Y,7.0,71.6,-2.3,85.64,146 +147,E,21,8,2.50BG,6.0,61.7,-41.11,0.19,147 +148,G,2,14,5.00R,4.0,41.22,59.5,30.17,148 +149,C,16,8,10.00GY,8.0,81.35,-38.45,34.02,149 +150,I,34,8,5.00P,2.0,20.54,29.26,-25.01,150 +151,D,2,8,5.00R,7.0,71.6,31.7,17.23,151 +152,D,35,8,7.50P,7.0,71.6,26.62,-18.32,152 +153,E,28,10,10.00B,6.0,61.7,-13.07,-37.55,153 +154,G,0,0,10.00RP,4.0,41.22,-0.03,0.03,154 +155,H,9,4,2.50Y,3.0,30.77,3.1,25.71,155 +156,G,20,10,10.00G,4.0,41.22,-52.68,3.36,156 +157,H,7,6,7.50YR,3.0,30.77,13.89,33.8,157 +158,B,30,2,5.00PB,9.0,91.08,-0.37,-5.58,158 +159,C,7,8,7.50YR,8.0,81.35,14.98,47.04,159 +160,C,39,6,7.50RP,8.0,81.35,23.82,2.52,160 +161,D,19,8,7.50G,7.0,71.6,-41.85,9.77,161 +162,G,40,14,10.00RP,4.0,41.22,61.57,8.63,162 +163,G,23,8,7.50BG,4.0,41.22,-36.33,-13.61,163 +164,F,29,12,2.50PB,5.0,51.57,-3.41,-48.08,164 +165,G,13,6,2.50GY,4.0,41.22,-14.57,40.52,165 +166,I,27,6,7.50B,2.0,20.54,-9.22,-24.04,166 +167,D,33,6,2.50P,7.0,71.6,13.67,-19.66,167 +168,H,19,10,7.50G,3.0,30.77,-49.93,6.94,168 +169,F,27,8,7.50B,5.0,51.57,-15.72,-29.08,169 +170,I,24,4,10.00BG,2.0,20.54,-13.39,-9.92,170 +171,G,14,6,5.00GY,4.0,41.22,-19.48,36.56,171 +172,B,29,2,2.50PB,9.0,91.08,-1.49,-5.61,172 +173,E,40,12,10.00RP,6.0,61.7,49.67,10.71,173 +174,C,8,14,10.00YR,8.0,81.35,15.1,90.21,174 +175,C,25,4,2.50B,8.0,81.35,-16.44,-9.33,175 +176,E,2,12,5.00R,6.0,61.7,48.53,25.92,176 +177,B,13,6,2.50GY,9.0,91.08,-16.65,44.66,177 +178,H,29,10,2.50PB,3.0,30.77,0.29,-43.03,178 +179,I,3,8,7.50R,2.0,20.54,35.15,15.44,179 +180,E,18,10,5.00G,6.0,61.7,-52.22,16.26,180 +181,E,9,10,2.50Y,6.0,61.7,5.87,68.59,181 +182,I,40,8,10.00RP,2.0,20.54,36.42,-2.08,182 +183,G,9,6,2.50Y,4.0,41.22,4.42,40.43,183 +184,G,34,10,5.00P,4.0,41.22,33.08,-30.5,184 +185,F,7,10,7.50YR,5.0,51.57,19.79,58.75,185 +186,D,24,6,10.00BG,7.0,71.6,-25.13,-11.03,186 +187,D,7,14,7.50YR,7.0,71.6,24.12,84.39,187 +188,F,26,8,5.00B,5.0,51.57,-21.72,-26.63,188 +189,C,29,6,2.50PB,8.0,81.35,-5.05,-23.28,189 +190,C,38,6,5.00RP,8.0,81.35,23.53,-0.96,190 +191,G,22,8,5.00BG,4.0,41.22,-39.09,-8.33,191 +192,F,33,10,2.50P,5.0,51.57,27.4,-33.72,192 +193,D,12,12,10.00Y,7.0,71.6,-15.98,87.62,193 +194,I,2,8,5.00R,2.0,20.54,36.64,9.24,194 +195,F,15,10,7.50GY,5.0,51.57,-40.14,52.84,195 +196,C,21,6,2.50BG,8.0,81.35,-32.18,1.81,196 +197,E,34,8,5.00P,6.0,61.7,23.29,-23.79,197 +198,I,12,2,10.00Y,2.0,20.54,-3.09,10.75,198 +199,B,17,2,2.50G,9.0,91.08,-13.13,7.63,199 +200,D,26,6,5.00B,7.0,71.6,-18.37,-18.07,200 +201,C,2,6,5.00R,8.0,81.35,23.18,13.11,201 +202,F,17,12,2.50G,5.0,51.57,-63.28,28.95,202 +203,F,37,12,2.50RP,5.0,51.57,48.98,-15.95,203 +204,I,7,4,7.50YR,2.0,20.54,10.16,21.44,204 +205,G,32,10,10.00PB,4.0,41.22,24.29,-38.02,205 +206,B,15,2,7.50GY,9.0,91.08,-10.76,13.38,206 +207,F,38,12,5.00RP,5.0,51.57,51.2,-5.84,207 +208,F,8,10,10.00YR,5.0,51.57,13.12,63.99,208 +209,H,22,6,5.00BG,3.0,30.77,-27.32,-6.72,209 +210,I,4,6,10.00R,2.0,20.54,25.15,16.6,210 +211,E,26,8,5.00B,6.0,61.7,-22.98,-25.73,211 +212,D,6,14,5.00YR,7.0,71.6,32.89,77.02,212 +213,D,32,6,10.00PB,7.0,71.6,10.25,-21.6,213 +214,C,13,12,2.50GY,8.0,81.35,-26.04,85.63,214 +215,D,36,8,10.00P,7.0,71.6,29.26,-13.95,215 +216,H,13,4,2.50GY,3.0,30.77,-10.05,24.97,216 +217,C,1,6,2.50R,8.0,81.35,23.67,9.47,217 +218,E,12,10,10.00Y,6.0,61.7,-14.02,73.17,218 +219,B,20,2,10.00G,9.0,91.08,-12.96,2.42,219 +220,F,31,10,7.50PB,5.0,51.57,14.19,-39.14,220 +221,B,23,2,7.50BG,9.0,91.08,-10.86,-2.13,221 +222,G,33,10,2.50P,4.0,41.22,29.49,-34.06,222 +223,F,20,10,10.00G,5.0,51.57,-51.99,4.46,223 +224,B,37,2,2.50RP,9.0,91.08,5.04,-1.14,224 +225,F,11,8,7.50Y,5.0,51.57,-6.4,58.71,225 +226,H,25,6,2.50B,3.0,30.77,-19.73,-18.89,226 +227,I,14,2,5.00GY,2.0,20.54,-5.36,7.98,227 +228,I,28,6,10.00B,2.0,20.54,-5.25,-25.49,228 +229,C,19,6,7.50G,8.0,81.35,-33.63,8.67,229 +230,B,2,2,5.00R,9.0,91.08,5.51,3.28,230 +231,F,35,10,7.50P,5.0,51.57,35.21,-24.66,231 +232,G,10,6,5.00Y,4.0,41.22,-0.21,42.37,232 +233,E,31,8,7.50PB,6.0,61.7,9.58,-30.64,233 +234,G,18,10,5.00G,4.0,41.22,-54.08,14.27,234 +235,G,30,12,5.00PB,4.0,41.22,7.17,-48.94,235 +236,E,13,10,2.50GY,6.0,61.7,-21.81,70.54,236 +237,C,5,6,2.50YR,8.0,81.35,18.52,26.72,237 +238,F,23,8,7.50BG,5.0,51.57,-36.19,-11.99,238 +239,D,39,8,7.50RP,7.0,71.6,32.47,2.76,239 +240,H,5,8,2.50YR,3.0,30.77,28.16,36.05,240 +241,B,35,2,7.50P,9.0,91.08,4.31,-2.82,241 +242,B,11,6,7.50Y,9.0,91.08,-9.03,45.94,242 +243,I,39,8,7.50RP,2.0,20.54,35.97,-6.33,243 +244,B,26,2,5.00B,9.0,91.08,-6.32,-5.08,244 +245,G,3,14,7.50R,4.0,41.22,56.6,40.99,245 +246,E,22,8,5.00BG,6.0,61.7,-39.17,-5.88,246 +247,F,32,10,10.00PB,5.0,51.57,22.05,-37.02,247 +248,I,15,4,7.50GY,2.0,20.54,-14.85,15.25,248 +249,H,21,6,2.50BG,3.0,30.77,-29.07,-1.92,249 +250,I,33,8,2.50P,2.0,20.54,26.82,-27.84,250 +251,C,17,8,2.50G,8.0,81.35,-42.41,23.78,251 +252,B,39,2,7.50RP,9.0,91.08,5.41,0.74,252 +253,D,21,8,2.50BG,7.0,71.6,-40.91,1.15,253 +254,D,30,8,5.00PB,7.0,71.6,0.85,-31.32,254 +255,I,9,2,2.50Y,2.0,20.54,1.58,11.89,255 +256,E,1,12,2.50R,6.0,61.7,49.42,18.23,256 +257,H,27,6,7.50B,3.0,30.77,-10.88,-24.2,257 +258,D,11,12,7.50Y,7.0,71.6,-9.51,87.14,258 +259,H,4,10,10.00R,3.0,30.77,40.89,36.03,259 +260,B,14,4,5.00GY,9.0,91.08,-14.67,29.61,260 +261,E,6,12,5.00YR,6.0,61.7,29.38,64.4,261 +262,B,33,2,2.50P,9.0,91.08,2.95,-4.85,262 +263,E,0,0,10.00RP,6.0,61.7,-0.04,0.04,263 +264,C,28,4,10.00B,8.0,81.35,-6.82,-13.92,264 +265,H,17,8,2.50G,3.0,30.77,-39.23,16.6,265 +266,G,5,10,2.50YR,4.0,41.22,32.37,46.62,266 +267,I,38,8,5.00RP,2.0,20.54,35.44,-10.4,267 +268,D,17,10,2.50G,7.0,71.6,-51.55,27.69,268 +269,F,36,12,10.00P,5.0,51.57,46.17,-23.4,269 +270,E,7,12,7.50YR,6.0,61.7,22.09,71.31,270 +271,I,19,6,7.50G,2.0,20.54,-27.43,4.26,271 +272,B,28,2,10.00B,9.0,91.08,-3.48,-5.55,272 +273,E,35,10,7.50P,6.0,61.7,34.47,-24.03,273 +274,B,0,0,10.00RP,9.0,91.08,-0.05,0.06,274 +275,E,11,10,7.50Y,6.0,61.7,-7.92,73.21,275 +276,G,38,12,5.00RP,4.0,41.22,51.84,-8.08,276 +277,H,26,6,5.00B,3.0,30.77,-15.41,-22.0,277 +278,D,4,10,10.00R,7.0,71.6,34.96,37.54,278 +279,H,31,12,7.50PB,3.0,30.77,25.75,-49.63,279 +280,F,14,8,5.00GY,5.0,51.57,-25.02,50.55,280 +281,G,21,8,2.50BG,4.0,41.22,-41.21,-2.07,281 +282,E,16,12,10.00GY,6.0,61.7,-55.94,49.19,282 +283,H,6,6,5.00YR,3.0,30.77,18.18,30.27,283 +284,B,24,2,10.00BG,9.0,91.08,-9.69,-3.22,284 +285,C,37,6,2.50RP,8.0,81.35,22.62,-5.51,285 +286,B,32,2,10.00PB,9.0,91.08,2.19,-4.93,286 +287,F,9,8,2.50Y,5.0,51.57,5.33,54.9,287 +288,F,3,14,7.50R,5.0,51.57,55.76,42.05,288 +289,D,23,6,7.50BG,7.0,71.6,-27.52,-7.11,289 +290,B,6,2,5.00YR,9.0,91.08,4.3,10.08,290 +291,F,30,12,5.00PB,5.0,51.57,5.02,-48.35,291 +292,C,40,6,10.00RP,8.0,81.35,23.74,6.18,292 +293,B,19,2,7.50G,9.0,91.08,-13.22,3.82,293 +294,B,27,2,7.50B,9.0,91.08,-4.65,-5.34,294 +295,G,8,6,10.00YR,4.0,41.22,9.31,37.8,295 +296,H,33,10,2.50P,3.0,30.77,33.51,-35.69,296 +297,C,9,16,2.50Y,8.0,81.35,7.28,109.12,297 +298,F,2,14,5.00R,5.0,51.57,58.01,30.52,298 +299,F,19,10,7.50G,5.0,51.57,-52.69,9.7,299 +300,D,0,0,10.00RP,7.0,71.6,-0.04,0.05,300 +301,F,21,10,2.50BG,5.0,51.57,-51.2,-1.36,301 +302,B,3,2,7.50R,9.0,91.08,5.54,4.46,302 +303,C,30,6,5.00PB,8.0,81.35,-0.24,-24.03,303 +304,F,13,8,2.50GY,5.0,51.57,-18.37,55.88,304 +305,I,37,8,2.50RP,2.0,20.54,34.44,-14.69,305 +306,C,15,10,7.50GY,8.0,81.35,-40.58,54.46,306 +307,F,25,8,2.50B,5.0,51.57,-27.95,-22.24,307 +308,E,33,8,2.50P,6.0,61.7,20.07,-26.92,308 +309,H,11,4,7.50Y,3.0,30.77,-3.32,26.87,309 +310,E,19,10,7.50G,6.0,61.7,-52.09,10.63,310 +311,G,27,8,7.50B,4.0,41.22,-14.67,-30.69,311 +312,I,0,0,10.00RP,2.0,20.54,-0.02,0.02,312 +313,I,31,10,7.50PB,2.0,20.54,23.81,-41.87,313 +314,B,38,2,5.00RP,9.0,91.08,5.27,-0.1,314 +315,D,16,10,10.00GY,7.0,71.6,-46.7,41.31,315 +316,F,22,8,5.00BG,5.0,51.57,-38.59,-7.0,316 +317,H,37,10,2.50RP,3.0,30.77,44.87,-16.65,317 +318,D,5,10,2.50YR,7.0,71.6,30.67,44.56,318 +319,B,36,2,10.00P,9.0,91.08,4.7,-2.0,319 +320,F,12,8,10.00Y,5.0,51.57,-11.71,58.46,320 +321,F,1,14,2.50R,5.0,51.57,59.36,19.67,321 +322,D,29,8,2.50PB,7.0,71.6,-5.09,-30.75,322 +323,H,20,8,10.00G,3.0,30.77,-39.18,2.14,323 +324,B,4,2,10.00R,9.0,91.08,5.43,5.64,324 +325,H,36,10,10.00P,3.0,30.77,42.44,-23.6,325 +326,D,9,12,2.50Y,7.0,71.6,6.22,81.95,326 +327,B,25,2,2.50B,9.0,91.08,-7.96,-4.41,327 +328,H,16,6,10.00GY,3.0,30.77,-27.26,20.69,328 +329,G,7,8,7.50YR,4.0,41.22,17.04,45.95,329 +330,B,22,2,5.00BG,9.0,91.08,-11.94,-0.27,330 diff --git a/src/examples/colors/outputs/complexity-commcost.png b/src/examples/colors/outputs/complexity-commcost.png deleted file mode 100644 index 7cbc6a1..0000000 Binary files a/src/examples/colors/outputs/complexity-commcost.png and /dev/null differ diff --git a/src/examples/colors/outputs/complexity-informativity.png b/src/examples/colors/outputs/complexity-informativity.png deleted file mode 100644 index acb23e7..0000000 Binary files a/src/examples/colors/outputs/complexity-informativity.png and /dev/null differ diff --git a/src/examples/colors/outputs/informativity-commcost.png b/src/examples/colors/outputs/informativity-commcost.png deleted file mode 100644 index a2c2563..0000000 Binary files a/src/examples/colors/outputs/informativity-commcost.png and /dev/null differ diff --git a/src/examples/colors/outputs/noga_meaning_dists.jpg b/src/examples/colors/outputs/noga_meaning_dists.jpg deleted file mode 100644 index 1696f74..0000000 Binary files a/src/examples/colors/outputs/noga_meaning_dists.jpg and /dev/null differ diff --git a/src/examples/colors/outputs/old_meaning_dists.jpg b/src/examples/colors/outputs/old_meaning_dists.jpg deleted file mode 100644 index eea43cc..0000000 Binary files a/src/examples/colors/outputs/old_meaning_dists.jpg and /dev/null differ diff --git a/src/examples/colors/outputs/plot.png b/src/examples/colors/outputs/plot.png deleted file mode 100644 index f74ee1a..0000000 Binary files a/src/examples/colors/outputs/plot.png and /dev/null differ diff --git a/src/examples/colors/plot.png b/src/examples/colors/plot.png deleted file mode 100644 index 7666b9f..0000000 Binary files a/src/examples/colors/plot.png and /dev/null differ diff --git a/src/examples/colors/prior.npy b/src/examples/colors/prior.npy deleted file mode 100644 index f842085..0000000 Binary files a/src/examples/colors/prior.npy and /dev/null differ diff --git a/src/examples/colors/scripts/__init__.py b/src/examples/colors/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/examples/colors/scripts/compute_bound.py b/src/examples/colors/scripts/compute_bound.py new file mode 100644 index 0000000..a490eb3 --- /dev/null +++ b/src/examples/colors/scripts/compute_bound.py @@ -0,0 +1,30 @@ +import numpy as np +import pickle + +from ultk.effcomm import ib +from ultk.language.semantics import Universe +from examples.colors.meaning import meaning_distributions, cielab_points + +if __name__ == "__main__": + # shape: `(330, 330)` + pU_M = meaning_distributions + + # pM = np.full(pU_M.shape[0], 1/pU_M.shape[0]) + pM = np.load("src/examples/colors/data/zkrt18_prior.npy").squeeze() + + model = ib.get_ib_naming_model( + pU_M, + pM, + # add custom beta values here + betas=np.logspace( + 0, + 5, + 1600, + ), + ) + + # write model + fn = "src/examples/colors/outputs/naming_model.pkl" + with open(fn, "wb") as f: + pickle.dump(model, f, protocol=pickle.HIGHEST_PROTOCOL) + print(f"Wrote a pickle binary to {fn}.") diff --git a/src/examples/colors/scripts/read_color_universe.py b/src/examples/colors/scripts/read_color_universe.py new file mode 100644 index 0000000..638aefa --- /dev/null +++ b/src/examples/colors/scripts/read_color_universe.py @@ -0,0 +1,11 @@ +import pandas as pd + + +if __name__ == "__main__": + referents = pd.read_csv("colors/data/cnum-vhcm-lab-new.txt", delimiter="\t") + referents.sort_values(by="#cnum", inplace=True) + # add a name column, as required by ULTK + referents["name"] = referents["#cnum"] + # rename columns for access as python properties + referents.rename(columns={"L*": "L", "a*": "a", "b*": "b"}, inplace=True) + referents.to_csv("colors/outputs/color_universe.csv", index=False) diff --git a/src/examples/colors/validate_bound.ipynb b/src/examples/colors/validate_bound.ipynb deleted file mode 100644 index 6b592da..0000000 --- a/src/examples/colors/validate_bound.ipynb +++ /dev/null @@ -1,359 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "import plotnine as pn\n", - "from ultk.effcomm.rate_distortion import get_ib_bound" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((330, 1), (330, 330))" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "zkrt18_prior = np.load(\"/Users/nathanielimel/uci/projects/ib-color-naming/zkrt18_prior.npy\")\n", - "zkrt18_meaning_dists = np.load(\"/Users/nathanielimel/uci/projects/ib-color-naming/zkrt18_meaning_dists.npy\")\n", - "\n", - "zkrt18_prior.shape, zkrt18_meaning_dists.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "annealing beta: 0%| | 0/30 [00:00" - ] - }, - "metadata": { - "image/png": { - "height": 480, - "width": 640 - } - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "bound = get_ib_bound(\n", - " prior=zkrt18_prior.squeeze(), \n", - " meaning_dists=zkrt18_meaning_dists,\n", - ")\n", - "plot_data = pd.DataFrame(\n", - " [(x.rate, x.accuracy) for x in bound if x is not None], \n", - " columns=[\n", - " \"rate\", \n", - " \"accuracy\",\n", - " ]\n", - ")\n", - "(\n", - " pn.ggplot(\n", - " plot_data,\n", - " pn.aes(x=\"rate\", y=\"accuracy\"),\n", - " ) \n", - " + pn.geom_point() \n", - " + pn.geom_line()\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Check with embo" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[4], line 6\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mrdot\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mprobability\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m joint\n\u001b[1;32m 5\u001b[0m pxy \u001b[38;5;241m=\u001b[39m joint(zkrt18_meaning_dists, zkrt18_prior)\n\u001b[0;32m----> 6\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[43mInformationBottleneck\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpxy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpxy\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_bottleneck\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 8\u001b[0m plot_data_embo \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mDataFrame(\u001b[38;5;28mzip\u001b[39m(\u001b[38;5;241m*\u001b[39mresults[\u001b[38;5;241m0\u001b[39m:\u001b[38;5;241m2\u001b[39m]), columns\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrate\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124maccuracy\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 9\u001b[0m (\n\u001b[1;32m 10\u001b[0m pn\u001b[38;5;241m.\u001b[39mggplot(\n\u001b[1;32m 11\u001b[0m plot_data_embo,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[38;5;241m+\u001b[39m pn\u001b[38;5;241m.\u001b[39mgeom_line()\n\u001b[1;32m 16\u001b[0m )\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/site-packages/embo/core.py:95\u001b[0m, in \u001b[0;36mInformationBottleneck.get_bottleneck\u001b[0;34m(self, return_entropies)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return array of I(M:X) and I(M:Y) for array of different values of beta\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \n\u001b[1;32m 85\u001b[0m \u001b[38;5;124;03m Returns:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m hy -- entropy of Y (only returned if return_entropies is True)\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mresults_ready:\n\u001b[0;32m---> 95\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompute_IB_curve\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m return_entropies:\n\u001b[1;32m 98\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mi_x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mi_y, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mh_m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbeta, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmixy, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhx, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhy\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/site-packages/embo/core.py:76\u001b[0m, in \u001b[0;36mInformationBottleneck.compute_IB_curve\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 73\u001b[0m pyx_c \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpxy_j\u001b[38;5;241m.\u001b[39mT \u001b[38;5;241m/\u001b[39m px\n\u001b[1;32m 75\u001b[0m \u001b[38;5;66;03m# Calculate the information bottleneck for a range of values of beta\u001b[39;00m\n\u001b[0;32m---> 76\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mi_x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mi_y, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mh_m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbeta, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmixy, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhx \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mIB\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpy\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpyx_c\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43malpha\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs_IB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhy \u001b[38;5;241m=\u001b[39m entropy(py)\n\u001b[1;32m 79\u001b[0m \u001b[38;5;66;03m# set a flag we will use to call this function automatically when needed\u001b[39;00m\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/site-packages/embo/core.py:245\u001b[0m, in \u001b[0;36mInformationBottleneck.IB\u001b[0;34m(cls, px, py, pyx_c, alpha, minsize, maxbeta, minbeta, numbeta, iterations, restarts, processes, ensure_monotonic_bound, rtol)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m mp\u001b[38;5;241m.\u001b[39mPool(processes\u001b[38;5;241m=\u001b[39mprocesses) \u001b[38;5;28;01mas\u001b[39;00m pool:\n\u001b[1;32m 244\u001b[0m results \u001b[38;5;241m=\u001b[39m [pool\u001b[38;5;241m.\u001b[39mapply_async(\u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39mbeta_iter, args\u001b[38;5;241m=\u001b[39m(alpha, b, px, py, pyx_c, pm_size, restarts, iterations,rtol)) \u001b[38;5;28;01mfor\u001b[39;00m b \u001b[38;5;129;01min\u001b[39;00m bs]\n\u001b[0;32m--> 245\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mresults\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 246\u001b[0m ips \u001b[38;5;241m=\u001b[39m [x[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m results]\n\u001b[1;32m 247\u001b[0m ifs \u001b[38;5;241m=\u001b[39m [x[\u001b[38;5;241m1\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m results]\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/site-packages/embo/core.py:245\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m mp\u001b[38;5;241m.\u001b[39mPool(processes\u001b[38;5;241m=\u001b[39mprocesses) \u001b[38;5;28;01mas\u001b[39;00m pool:\n\u001b[1;32m 244\u001b[0m results \u001b[38;5;241m=\u001b[39m [pool\u001b[38;5;241m.\u001b[39mapply_async(\u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39mbeta_iter, args\u001b[38;5;241m=\u001b[39m(alpha, b, px, py, pyx_c, pm_size, restarts, iterations,rtol)) \u001b[38;5;28;01mfor\u001b[39;00m b \u001b[38;5;129;01min\u001b[39;00m bs]\n\u001b[0;32m--> 245\u001b[0m results \u001b[38;5;241m=\u001b[39m [\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m p \u001b[38;5;129;01min\u001b[39;00m results]\n\u001b[1;32m 246\u001b[0m ips \u001b[38;5;241m=\u001b[39m [x[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m results]\n\u001b[1;32m 247\u001b[0m ifs \u001b[38;5;241m=\u001b[39m [x[\u001b[38;5;241m1\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m results]\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/multiprocessing/pool.py:768\u001b[0m, in \u001b[0;36mApplyResult.get\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 767\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget\u001b[39m(\u001b[38;5;28mself\u001b[39m, timeout\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m--> 768\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwait\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 769\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mready():\n\u001b[1;32m 770\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/multiprocessing/pool.py:765\u001b[0m, in \u001b[0;36mApplyResult.wait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 764\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwait\u001b[39m(\u001b[38;5;28mself\u001b[39m, timeout\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m--> 765\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_event\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwait\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/threading.py:629\u001b[0m, in \u001b[0;36mEvent.wait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 627\u001b[0m signaled \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_flag\n\u001b[1;32m 628\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m signaled:\n\u001b[0;32m--> 629\u001b[0m signaled \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_cond\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwait\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 630\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m signaled\n", - "File \u001b[0;32m~/miniforge3/envs/ultk/lib/python3.11/threading.py:327\u001b[0m, in \u001b[0;36mCondition.wait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 325\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m: \u001b[38;5;66;03m# restore state no matter what (e.g., KeyboardInterrupt)\u001b[39;00m\n\u001b[1;32m 326\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m timeout \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 327\u001b[0m \u001b[43mwaiter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43macquire\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 328\u001b[0m gotit \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 329\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], - "source": [ - "import embo\n", - "from embo import InformationBottleneck\n", - "from rdot.probability import joint\n", - "\n", - "pxy = joint(zkrt18_meaning_dists, zkrt18_prior)\n", - "results = InformationBottleneck(pxy=pxy).get_bottleneck()\n", - "\n", - "plot_data_embo = pd.DataFrame(zip(*results[0:2]), columns=[\"rate\", \"accuracy\"])\n", - "(\n", - " pn.ggplot(\n", - " plot_data_embo,\n", - " pn.aes(x=\"rate\", y=\"accuracy\"),\n", - " ) \n", - " + pn.geom_point() \n", - " + pn.geom_line()\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((330,), (330, 330))" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "mickey_prior = np.load(\"prior.npy\")\n", - "mickey_meaning_dists = np.load(\"meaning_dists.npy\")\n", - "\n", - "mickey_prior.shape, mickey_meaning_dists.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "annealing beta: 0%| | 0/30 [00:00" - ] - }, - "metadata": { - "image/png": { - "height": 480, - "width": 640 - } - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "bound = get_ib_bound(\n", - " prior=mickey_prior,\n", - " meaning_dists=mickey_meaning_dists,\n", - ")\n", - "plot_data = pd.DataFrame(\n", - " [(x.rate, x.accuracy) for x in bound if x is not None], \n", - " columns=[\n", - " \"rate\", \n", - " \"accuracy\",\n", - " ]\n", - ")\n", - "(\n", - " pn.ggplot(\n", - " plot_data,\n", - " pn.aes(x=\"rate\", y=\"accuracy\"),\n", - " ) \n", - " + pn.geom_point() \n", - " + pn.geom_line()\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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hw669957CyktAAAAABR9y5cvV1RUlE6cOCFJuvvuu5WUlKS6deuanAwAHK/YFIDbtm3Ta6+9pszMTFksFpUvX14XLlzQ4cOHdfjwYaWkpGjs2LGqWbNmoebatWuX9u3bJ29v7wLP27Fjh0aPHq1z587J09NTt9xyi06fPq3vv/9ea9euVf/+/dW+fftCSg0AAAAARdP58+f12muvKSkpyf7Y888/rzFjxsjf39/EZADgPMWiAMzOztbEiROVmZmp+vXrKzIyUpUqVZIk7d69W2+++aYOHjyoCRMmaNasWfLycv5/lpycHG3atOkvf+hczblz5zR+/HidO3dODRs2VFRUlAICApSTk6N58+bp448/1nvvvaeaNWsyCQgAAAAAV7Fz505ZrVZt3bpVkhQQEKA333xTbdu2NTkZADhXsbgJyA8//KCTJ0+qdOnSGjFihL38k6RatWpp+PDh8vDwUGpqqtauXevULPv27VNkZKR69OihsWPHKjU19R+fs2DBAmVkZCggIEBxcXEKCAiQJHl7e6tr16566KGHlJ+fry+++MKp2QEAAACgKDIMQx999JFatGhhL/+aNGkim81G+QegWCgWE4CXFviHHnpIJUuWvOz4HXfcocqVK+vw4cPavn27Hn/8cfux3bt3a+7cudq6datOnz6tcuXKqV69emrfvr1q1ap13VnOnz+vjIwMlSpVSpKUm5urs2fPFvicNWvWSJKCgoKuOJLevHlz/fTTT9q0aZPOnj1rf20AAAAAKO5OnjypwYMHa+HChZIkT09PDR8+XJGRkfL09DQ5HQAUjmJRAJ48eVKSdOutt171HA+Pi8OQOTk59se++eYbvfvuuzIMQ15eXipfvrwyMjKUnJyslJQUPfvss+revft1ZalTp44+/vhj+7//+uuvevnll696/tmzZ7V//35JUr169a54zj333CPp4u3rd+3apQceeOC6MgEAAACAO1qzZo3Cw8N15MgRSVL16tWVkJCghg0bmpwMAApXsSgAhw0bpry8vKveaOPAgQM6fPiwJKlatWqSpHXr1umdd96Rj4+P+vTpo9atW8vLy0s5OTlKTk5WQkKCZs+erWrVqqlx48ZOy37o0CHl5+dLkqpWrXrFcypUqCAvLy/l5uZe05ZiAAAAAHBnOTk5mjhxoqZNmybDMCRJ3bp104QJE1S6dGmT0wFA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5copISFBWVlZmj17tvr06aOff/7ZzEgAAABwcTt37pTVatXWrVslSQEBAXrrrbfUpk0bk5MBAAC4Jg+zA0jS8OHDJV28a9v3339vchoAAAC4IsMw9NFHH6lFixb28u/xxx9XSkoK5R8AAEABXKIArF27tjw8LkbZsGGDyWkAAADgak6ePKm+fftq6NChOnfunLy8vDRy5EjNmTNHlStXNjseAACASzN1C/AlmZmZys/Pl8Vi0blz58yOAwAAABfy3XffKSIiQkeOHJEkVa9eXYmJiXrwwQdNTgYAAFA0uMQE4Lvvvmv/9W233WZiEgAAALiKnJwcjR8/Xp07d7aXf927d9eqVaso/wAAAK6DQycAf/vtt2s+Nzc3V0eOHNHcuXPtd2+zWCwKDAx0ZCQAAAAUQfv371dYWJj98jClSpXS5MmT1aVLF5OTAQAAFD0OLQDvueceWSyW636eYRiSpF69eqlatWqOjAQAAIAi5quvvtKwYcN09uxZSVLDhg2VkJCg6tWrmxsMAACgiHL4NQAvlXnXq2fPnoqPj3dwGgAAALiKvLw8rVu3TsePH5e/v78aNWqksmXL2o+fOXNGL774or766itJF3eHxMbGaujQofL29jYrNgAAQJHn0AKwT58+13yuh4eHypcvrzvuuENt27ZVzZo1HRkFAAAALiI3N1eJiYl69913dejQIfvjfn5+6ty5s4YPH65Dhw4pLCxMv//+uySpSpUqmjVrlpo0aWJWbAAAALfh0ALwgw8+cOTLAQAAoIjLyclR//79tXjx4suOnTt3Tp9++qnmz5+vrKws5eXlSZLatm2rN998UwEBAYUdFwAAwC05fAswAAAAcMnEiROvWP792ZkzZyRdnAgcP368evXqdUPXlQYAAMCVOa0AXLt2rebOnavt27dr/vz5lx1//vnnVaVKFXXp0kUNGzZ0VgwAAACYJDMzU++99941nz9mzBj17t3biYkAAACKJw9Hv2B6erpat26tJk2aaPLkyVqxYsUVz0tJSdGECRP08MMPq1WrVjp48KCjowAAAMBES5YssU/3XYtvv/3WiWkAAACKL4cWgPn5+WrdurWWLVsmwzBkGIZuueWWK55brlw5+zkrVqzQE088oaNHjzoyDgAAAEx04MCB6zqfL4QBAACcw6EF4CeffKJ169ZJkurWrauVK1de9YPfzz//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M+vreOONNzRt2jR5e3s79WtzFPw3xOM4+/wB2+PnA4/D/IF/ws8HHof5A0+DABAAnNCFCxcUEBCgXbt2SZJy5MihCRMmqFOnTtzoAwAAAADwEAJAAHAyq1at0sCBAxUVFSVJKleunObPn69SpUrZuTIAAAAAgCNyjQ3fACALuHPnjvr27auePXtaw7/AwECtW7eO8A8AAAAA8Fh0AAKAEzh48KD8/Px0+vRpSVLBggU1e/Zs1atXz86VAQAAAAAcHR2AAODAzGazgoOD1axZM2v416hRI4WHhxP+AQAAAADShA5AAHBQV65cUe/evbV161ZJUrZs2TR27Fh1796dG30AAAAAANKMABAAHNDatWvVr18/RURESJLKlCmjefPmqWzZsnauDAAAAADgbFgCDAAOJDY2VkOGDFGXLl2s4V+PHj20fv16wj8AAAAAQLrQAQgADuLIkSPy9/fX8ePHJUn58+fXzJkz1bhxYztXBgAAAABwZnQAAoCdWSwWhYSEqHHjxtbwr27dugoLCyP8AwAAAAA8NToAAcCOrl27pg8//FCbN2+WJLm7u2vUqFHy9/eX0chnNAAAAACAp0cACAB2snnzZgUFBen69euSJF9fX4WEhKhChQp2rgwAAAAA4EpoLwGATHb37l2NHDlS77zzjjX869y5szZt2kT4BwAAAADIcHQAAkAmOn78uPz9/XXkyBFJUt68eTVt2jS1bNnSzpUBAAAAAFwVHYAAkAksFou++eYbNWzY0Br+1apVS2FhYYR/AAAAAACbogMQAGzs5s2b6t+/v9auXStJMplMGjZsmIKCgmQymexcHQAAAADA1REAAoANbd26Vb1799aVK1ckSSVKlNC8efNUuXJlO1cGAAAAAMgqWAIMADYQHx+vcePGqW3bttbwr3379goNDSX8AwAAAABkKjoAASCDnTp1Sv7+/jp48KAkKVeuXJo6dareeustO1cGAAAAAMiK6AAEgAxisVj0/fffq379+tbwr2rVqgoLCyP8AwAAAADYDR2AAJABIiMjNWjQIK1atUqSZDQaNXDgQA0YMEBubky1AAAAAAD74a9SAHhKO3fuVEBAgC5evChJKlasmObMmaMaNWrYuTIAAAAAAFgCDADplpiYqMmTJ6t169bW8K9169YKDQ0l/AMAAAAAOAw6AAEgHc6dO6eAgADt2bNHkuTp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fp18E44aNWo8FP4l8/Lyst6w49ChQ2l4ZfclJiZq48aN1prc3NxUsGBB6+uJiIjQ999/rzt37qT5nABsb+/evYqJiVHOnDkfCv8eVKdOHUnS4cOHn+jcBw4csC71laR8+fLJy8vL+u/Vq1c/8TkB2E9kZKTi4uIk3b/xxoIFC/T111/rhx9+0LRp0/Tiiy8qISFBM2fOfGhLkORrjzp16jwU/iUrUqSIdcXCk8wJsbGxWr9+vSIjIyXdv74qUKCAdS/BCxcuaOnSpUpISEjX6wXgPOgAhNNL/sNZku7du/fYccm/1Ph0C3BcGf1+TkpKUlBQkNzd3VWjRo2Hluo+88wzGjlypEaMGKGjR49qyZIlql27tqT7S22k+xfj+/btS/Hct2/fliRdv35dknTixAl98cUXj4x74YUX1L9/f0nS7NmztXnzZmXPnl09e/ZUgwYNZDKZlJSUpP/+97/66quv9Ntvv2n69OkaOXJkqq8NQOZJnhPu3r2rgICAFMckJiZKur9/aFJSkkwmk0aOHGndgP9B48ePV/78+XXw4EF9+umnMpvNqlu3rt5//315e3tLkv7++299+eWXOnDggD755BMFBwerUKFCNnqFADKKu7u7Bg0aJC8vL1WuXPmhY76+vho/frw+/PBDXb58WcuWLdPo0aN17949XbhwQZL0008/ae3atSmeOyIiQtL/XXvs3LlTCxcufGRcjRo11LVrV0nShAkTdOjQIeXNm1cBAQGqXr26jEajEhIStHHjRn3zzTfauHGjsmXLJj8/vwz77wDA8RAAwunlypXL+nVqywGTO2ry5ctn85oApE9Gv59NJpNef/31xx43Go1q3Lixjh49qvPnzysmJkZeXl7W80dFRSkqKirV50gOKu/du2e9U/CDkmu8evWqQkNDJUndu3d/aCNuk8mkOnXqyNvbWx999JF+++03Xbx48YnvKArANpLnhMTExBTf5w+yWCyKj49Xjhw5dOXKFV27du2RMclh4dKlS2U2m1WmTBn169fvobt7Pvvssxo9erT69OmjS5cuad26derSpUsGvioAtuDl5ZXqtUe2bNlUr149LV682NoB+GDnf3LIl5rka4/Y2NgU56Rbt25Jut8pmLxSoV+/fqpUqZJ1jLu7u5o3b65s2bJpxowZWrdunTp37qwcOXKk4VUCcEYEgHB6hQoVkpub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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 480, - "width": 640 - } - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import embo\n", - "from embo import InformationBottleneck\n", - "from rdot.probability import joint\n", - "\n", - "pxy = joint(mickey_meaning_dists, mickey_prior)\n", - "results = InformationBottleneck(pxy=pxy).get_bottleneck()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/nathanielimel/miniforge3/envs/ultk/lib/python3.11/site-packages/plotnine/layer.py:364: PlotnineWarning: geom_point : Removed 1 rows containing missing values.\n", - "/Users/nathanielimel/miniforge3/envs/ultk/lib/python3.11/site-packages/plotnine/geoms/geom_path.py:98: PlotnineWarning: geom_path: Removed 1 rows containing missing values.\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQAAAAPACAYAAABq3NR5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAB7CAAAewgFu0HU+AABzBElEQVR4nOzdeZjddX33/9c5ZzLZyDLZCIsEQiJhV6OAtqGEhE1TCYqiEuFmaTGKXNregKC3VBEp4kIp7qXcd+UKXiIQhIJGKKSBiGAsIIkQEQMkIWSbJGRP5pzfH7lmfoTscGDgex6P6+JimO9yPjM5vtvrme/3e0q1Wq0WAAAAAKCQyp29AAAAAADg9SMAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABdbU2QvgzWHx4sWdvYS66datW8rlcqrVatauXdvZy6ETlEqldO/ePWvWrEmtVuvs5dAJzAHMARKzALMAcwBzgE2KNgsGDBiwy8e4ApDC6d69e3r06JHu3bt39lLoJOVyOT169Ei5bMQ1KnMAc4DELMAswBzAHGATs0AABAAAAIBCEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACa+rsBbyRWltbc+utt2bGjBlZuHBhevTokf333z8nnXRSjjjiiF0+30MPPZQ77rgjzz33XNauXZuBAwfmyCOPzPjx49OnT5+tHvPSSy/l9ttvz29/+9ssWrQoGzduTEtLSw455JB86EMfytve9rYtjrnuuusyZcqU7a7l/PPPz/HHH7/LPwMAAAAAxdYwAXD+/Pm59NJLs3Tp0pTL5fTr1y9r1qzJjBkzMmPGjIwfPz5nn332Tp/vhhtuyG233ZYk6d69e3r16pX58+fnlltuyf3335/LL788e++99zbXkCR9+/ZNly5d8uKLL+bFF1/MtGnTcskll2TkyJGbHffCCy8kSfbcc8+USqWtrqdnz547vXYAAAAAGkdDBMBqtZorr7wyS5cuzbBhw3LRRRdl8ODBqVarue+++3Lddddl8uTJGT58eEaNGrXD8z3wwAO57bbbUi6Xc+655+akk05KpVLJkiVLcvXVV2fWrFm56qqrcs0116RSqXQcd/XVV2fp0qXZb7/98vnPfz777rtvkk1h8Nprr82sWbPyrW99Kz/4wQ/Su3fvjuMWLFiQpqamfO9730u57K5tAAAAAHZeQ9SkadOm5dlnn01zc3MuueSSDB48OElSLpczZsyYnHDCCUmSSZMm7fBctVqtY78TTzwx48aN64h8/fv3z4UXXpimpqY8++yzeeCBBzqOe/LJJ/PnP/85lUolX/ziFzviX7Lpyr4vfOEL6dmzZ1auXJlf//rXHds2bNiQJUuWZPfddxf/AAAAANhlDVGUHnzwwSTJkUcemYEDB26xffTo0UmSefPmZc6cOds915w5czJ37twkybhx47bY3r9//xx22GFJkunTp3d8/4knnkiSHHDAARk0aNAWx/Xt2zdvf/vbk2yKhe1efPHFVKvV7LHHHttdFwAAAABsTeEDYLVazcyZM5Mkhx566Fb3GTZsWLp06ZIkeeqpp7Z7vj/84Q9JkpaWli2e8dduxIgRW5yr/bl/u++++zbP3X4l4YYNGzq+1/78v/arFgEAAABgVxT+GYDLli3LSy+9lCTZa6+9trpPpVLJwIEDM3/+/CxYsGC753v++ee3e64kHVfrLV26NOvWrUvXrl1z1lln5ZOf/GSamrb+K29tbc2sWbOSJPvss0/H99sDYNeuXfP9738/M2bMyNKlS9OtW7fsv//+Oe6443L00Udvd80AAAAANK7CB8D2+Jckffr02eZ+u+22W5Jk1apVO3W+nTlXkqxevTpdu3ZNly5dOq4yfKWVK1fm6quvzurVq1OpVHL88cd3bGsPgLfcckuSpFevXunbt2+WLFmSxx57LI899limTZuWiy66aJvnBwAAAKBxFT4AvjzoNTc3b3O/9ivz2tradup8O3OunTnfww8/nB/+8IdZtGhRkuTv/u7vNru1uP2KxCFDhmTixIk56KCDkmyKhjfffHMmT56c3/72t/nxj3+cT3/609t9LQAAAAAaT+ED4Mtj3Lp167a5X/tz97p167ZT59uZc23vfHPnzs3111+fGTNmJNl0Zd9nPvOZvO9979tsvw9+8IMZPXp03vWud212ZeFuu+2Ws846K01NTbn55pszZcqUfPzjH09LS8t21w8AAABAYyl8AOzVq1fH19u7vXflypVJssOA1n6+nTlXc3Nzevbsudm29evX56abbsrtt9+ejRs3plwu59hjj80ZZ5yRvn37bnGud77zndtdz4knnpibb7451Wo1Tz31VI466qit7nfjjTdm0qRJ2zzPqaeemjPPPHO7r/VWUS6XO/4tiDamUqmUZNOt+rVarZNXQ2cwBzAHSMwCzALMAcwBNjELGiAADho0KE1NTdm4cWPmz5/fcQvty7W1tWXx4sVJss1P9m235557Jknmz5+/zX1efPHFJJs+KKR92CTJ8uXL85WvfCVPP/10kuTwww/P2Wefnf3222/XfqiX6d27d8fXL7/y8JVWrVqVhQsXbnN7+/MHi6RUKhXuZ2LXtA95Gpc5gDlAYhZgFmAOYA6wSSPPgsIHwEqlkgMOOCAzZ87MzJkzM3bs2C32efrpp7Nhw4aUy+WtBsKXa9++aNGiLFq0KAMHDtxinz/+8Y9JkkMOOaTje9VqNVdccUWefvrpdO3aNZ/61KcyZsyY7b7WE088kfvuuy8tLS2ZMGHCVveZO3dux9eDBw/e5rl69uyZQYMGbXN7jx49dvi8wreKcrmcUqmUWq2WarXa2cuhE5RKpZTL5VSrVX/L16DMAcwBErMAswBzAHOATYo2C15NxCx8AEySo48+OjNnzsz06dNz1llnbXbVXJLceeedSZKRI0duse2VDj744AwYMCCLFy/OXXfdtcVts3Pnzs2jjz6aJBk9enTH9x9++OE8+eSTKZfLueiii/Ke97xnh+sul8v59a9/3XGbcPvVhy83efLkJMmAAQMydOjQbZ5rwoQJ24yISbJ48eK0trbucE1vBS0tLalUKqlWq4X5mdg1lUolLS0tWb58eWHCNrvGHMAcIDELMAswBzAH2KRos2DAgAG7fExDXAM7ZsyY7LHHHlmzZk2+/vWvZ8mSJUk2PY9v0qRJmTp1apqamnLGGWd0HDN79uxMnDgxEydOzOzZszu+X6lU8rGPfSzJpvh2zz33dPwtwjPPPJMrrrgi1Wo1o0aNyrBhwzqOmzZtWpJk1KhROxX/kuTAAw/MkCFDOq4efOqppzq2rV27NjfddFOmTp2aJDn99NMb9jJWAAAAALatIa4AbG5uzsUXX5zLLrsss2bNyjnnnJP+/ftnxYoVWbduXcrlciZOnJghQ4Z0HLNu3brMmzev4+uXO/744zN79uxMmTIl1157ba6//vp069atIywOHz4855133mbHtD/37/HHH8/EiRO3u96jjjoqZ555ZkqlUi6++OJ8+ctfzvPPP58LL7wwvXv3Tvfu3bNkyZJs3LgxSXLyySfv8HZiAAAAABpTQwTAJBk6dGiuueaa3Hzzzfnd736X1tbW9OrVKyNHjsz48eMzYsSIXTrf+eefn8MOOyx333135syZk1WrVmXIkCE55phjMm7cuHTt2nWz/dsvMW1tbd3h5aYv37733nvnuuuuyx133JHp06dn3rx5WbNmTfr27ZsRI0bkhBNOyOGHH75LawcAAACgcZRqnoJJ0vEpyEXQfm9/W1tbIe7tZ9e1P+ejtbXVcz4alDmAOUBiFmAWYA5gDrBJ0WaBZwACAAAAAJsRAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMCaOnsBvDmUSqWUy8XrwZVKpbOXQCdo/3P350/ifdCozAFeyXuhMZkFvJz3QWMyB3ilRn0vlGq1Wq2zF0HnW716dXr06NHZywAAAACgzlwBSJJkzZo1WbduXWcvoy569+6dSqWStra2rFixorOXQyeoVCrp3bt3VqxYkba2ts5eDp3AHMAcIDELMAswBzAH2KRos6ClpWWXjxEASZLUarVCDsMi/kzsvLa2Nu8BvAcanDlAO++DxmYWkJgDjc4coF2jvg+K99A3AAAAAKCDAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYE2dvYA3Umtra2699dbMmDEjCxcuTI8ePbL//vvnpJNOyhFHHLHL53vooYdyxx135LnnnsvatWszcODAHHnkkRk/fnz69Omz1WNeeuml3H777fntb3+bRYsWZePGjWlpackhhxySD33oQ3nb29621eP+8pe/5Oc//3meeuqptLa2pm/fvjnssMPywQ9+MPvtt98urx0AAACAxlCq1Wq1zl7EG2H+/Pm59NJLs3Tp0pTL5fTr1y9r1qzJqlWrkiTjx4/P2WefvdPnu+GGG3LbbbclSbp3756ePXtm6dKlqVar6d+/fy6//PLsvffe21xDkvTt2ze1Wi3Lly9PkjQ3N+eSSy7JyJEjNzvuoYceylVXXZW2trZ06dIlLS0tWbZsWdavX58uXbrkH/7hH/JXf/VXr/p3kySLFy9+Tce/mbS0tKRSqaStrS2tra2dvRw6QaVSSUtLS1pbW9PW1tbZy6ETmAOYAyRmAWYB5gDmAJsUbRYMGDBgl49piCsAq9VqrrzyyixdujTDhg3LRRddlMGDB6darea+++7Lddddl8mTJ2f48OEZNWrUDs/3wAMP5Lbbbku5XM65556bk046KZVKJUuWLMnVV1+dWbNm5aqrrso111yTSqXScdzVV1+dpUuXZr/99svnP//57Lvvvkk2hcFrr702s2bNyre+9a384Ac/SO/evZMkixYtytVXX522traMGTMm5557bnr27Jm1a9fmP/7jP3LnnXfmX/7lXzJ06NDssccer8vvDwAAAIC3roZ4BuC0adPy7LPPdlxhN3jw4CRJuVzOmDFjcsIJJyRJJk2atMNz1Wq1jv1OPPHEjBs3riPy9e/fPxdeeGGampry7LPP5oEHHug47sknn8yf//znVCqVfPGLX+yIf0my55575gtf+EJ69uyZlStX5te//nXHtp/97GfZsGFD9t1335x//vnp2bNnkqRbt24599xzM2TIkKxduza33nrra/slAQAAAFBIDREAH3zwwSTJkUcemYEDB26xffTo0UmSefPmZc6cOds915w5czJ37twkybhx47bY3r9//xx22GFJkunTp3d8/4knnkiSHHDAARk0aNAWx/Xt2zdvf/vbk2yKhcmm2Nh+jvarDF+uXC7nmGOOSZL85je/SbVa3e7aAQAAAGg8hQ+A1Wo1M2fOTJIceuihW91n2LBh6dKlS5Lkqaee2u75/vCHPyTZdP/4K5/x127EiBFbnKv9uX+77777Ns/dHvg2bNiQZFNs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gQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIE1dfYC3kitra259dZbM2PGjCxcuDA9evTI/vvvn5NOOilHHHHELp/voYceyh133JHnnnsua9euzcCBA3PkkUdm/Pjx6dOnzw6PX7FiRc4444wcfvjh+cpXvrLN/b785S/n0Ucf3e65vvrVr+Yd73jHLv4EAAAAABRdwwTA+fPn59JLL83SpUtTLpfTr1+/rFmzJjNmzMiMGTMyfvz4nH322Tt9vhtuuCG33XZbkqR79+7p1atX5s+fn1tuuSX3339/Lr/88uy9997bPce9996barW6w9d64YUXUi6Xs8cee2xzn27duu302gEAAABoHA0RAKvVaq688sosXbo0w4YNy0UXXZTBgwenWq3mvvvuy3XXXZfJkydn+PDhGTVq1A7P98ADD+S2225LuVzOueeem5NOOimVSiVLlizJ1VdfnVmzZuWqq67KNddck0qlssXxK1euzAMPPJBJkybt8LU2btyYRYsWZdCgQfn+97//qn5+AAAAABpXQzwDcNq0aXn22WfT3NycSy65JIMHD06SlMvljBkzJieccEKS7FSQq9VqHfudeOKJGTduXEfk69+/fy688MI0NTXl2WefzQMPPLDZsffcc0/+/u//Pqeffnq+973vZd26dTt8vYULF6ZarW736j8AAAAA2JaGCIAPPvhgkuTII4/MwIEDt9g+evToJMm8efMyZ86c7Z5rzpw5mTt3bpJk3LhxW2zv379/DjvssCTJ9OnTN9v20ksvZe3atenTp0/69u27U7ftvvDCC0kiAAIAAADwqhT+FuBqtZqZM2cmSQ499NCt7jNs2LB06dIlGzZsyFNPPZV99913m+f7wx/+kCRpaWnZ5jP+RowYkd///vd56qmnNvv+KaecklNOOaXjvydNmpSf/vSn211/ewBsv2oRAAAAAHZF4QPgsmXL8tJLLyVJ9tprr63uU6lUMnDgwMyfPz8LFizY7vmef/757Z4r+f+v1lu6dGnWrVuXrl27vpqlJ0nHemq1Wr7zne/ksccey4oVK9KzZ8+8/e1vzwc+8IG8613vetXnBwAAAKDYCh8A2+NfkvTp02eb++22225JklWrVu3U+XbmXEmyevXq1xQA268AvOGGGzpet1evXmltbc0jjzySRx55JO9///tz3nnnpVQqverXAQAAAKCYCh8AXx70mpubt7lfU9OmX0VbW9tOnW9nzrUz59uR9isADz744Jx33nkdtycvWbIkP/nJT/Jf//VfueuuuzJw4MB8+MMffk2vBQAAAEDxFD4AvjzGbe9Tdzds2JAkO/xgjvbz7cy5duZ8OzJhwoS0tbXlyCOPTJcuXTq+379//3zuc59LW1tbpk6dmp///Oc5+eSTN/t5AQAAAKDwtahXr14dX2/v9t6VK1cm2fThHjtzvp05V3Nzc3r27LnTa92a9773vdvdfsIJJ2Tq1KlZtWpVnn/++ey3335b3e/GG2/MpEmTtnmeU089NWeeeeZrWuubRblc7vj3jv48Kab22+H79OmTWq3WyauhM5gDmAMkZgFmAeYA5gCbmAUNEAAHDRqUpqambNy4MfPnz89BBx20xT5tbW1ZvHhxkmzzk33b7bnnnkmS+fPnb3OfF198McmmDwp5vZ/L9/JnEa5fv36b+61atSoLFy7c5vbVq1enUqnUdW2drVQqFe5nYte0D3kalzmAOUBiFmAWYA5gDrBJI8+CwgfASqWSAw44IDNnzszMmTMzduzYLfZ5+umns2HDhpTL5a0Gwpdr375o0aIsWrQoAwcO3GKfP/7xj0mSQw455DWtffr06ZkxY0b22WefnHzyyVvdp/1TiZNk99133+a5evbsmUGDBm1ze48ePV7z8wrfLMrlckqlUmq1WqrVamcvh05QKpVSLpdTrVb9LV+DMgcwB0jMAswCzAHMATYp2ix4NRGz8AEwSY4++ujMnDkz06dPz1lnnZXevXtvtv3OO+9MkowcOXKLba908MEHZ8CAAVm8eHHuuuuuLW6bnTt3bh599NEkyejRo1/TutetW5df//rX6dmzZ8aMGbPZpwu3+8UvfpEkGTFiRPr27bvNc02YMCETJkzY5vbFixentbX1Na33zaKlpSWVSiXVarUwPxO7plKppKWlJcuXLy9M2GbXmAOYAyRmAWYB5gDmAJsUbRYMGDBgl49piGtgx4wZkz322CNr1qzJ17/+9SxZsiTJpltmJ02alKlTp6apqSlnnHFGxzGzZ8/OxIkTM3HixMyePbvj+5VKJR/72MeSJJMnT84999zT8bcIzzzzTK644opUq9WMGjUqw4YNe03rPuqoo9LS0pJVq1bl8ssv3+xqv5deeinf+973MmvWrJRKpe3GPQAAAAAaV0NcAdjc3JyLL744l112WWbNmpVzzjkn/fv3z4oVK7Ju3bqUy+VMnDgxQ4YM6Thm3bp1mTdvXsfXL3f88cdn9uzZmTJlSq699tpcf/316datW0dYHD58eM4777zXvO7u3bvn4osvzte+9rX88Y9/zGc+85m0tLSkS5cuWbx4carVakqlUs4555wcdthhr/n1AAAAACiehgiASTJ06NBcc801ufnmm/O73/0ura2t6dWrV0aOHJnx48dnxIgRu3S+888/P4cddljuvvvuzJkzJ6tWrcqQIUNyzDHHZNy4cenatWtd1n3QQQflu9/9bm6//fY88sgjWbBgQUqlUgYNGpSDDjoo48aNe81XGgIAAABQXKWap2CSdHwKchG039vf1tZWiHv72XXtz/lobW31nI8GZQ5gDpCYBZgFmAOYA2xStFngGYAAAAAAwGYEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwOoaAM8777zcd999qdVq9TwtAAAAAPAq1TUA/vjHP87YsWOzxx575NOf/nTuv/9+MRAAAAAAOlHdbwGu1WpZuHBhfvjDH2bMmDHZa6+9cv7552fq1Kn1fikAAAAAYAfqGgBvuummfOxjH0ufPn1Sq9VSq9WyYMGCfP/738+xxx6bvfbaKxdccEEefPDBer4sAAAAALANdQ2Ap512WiZNmpRFixblV7/6VT796U9n77337oiBL7zwQr773e/m6KOPzj777JMLL7wwM2bMqOcSAAAAAICXeV0+BbipqSnHHXdcrrvuujz33HN55JFH8sUvfjGHHHJIRwycO3duvv3tb+eII47IAQcckK997WuZM2fO67EcAAAAAGhYr0sAfKWRI0fm8ssvz+OPP54///nP+da3vpWjjz465XI5tVotf/rTn3LZZZdl2LBhOeaYY3LjjTdm7dq1b8TSAAAAAKDQ3pAA+HL77bdfPv/5z+f+++/PE088kWOOOaZjW7VazbRp03LmmWdmzz33zP/+3/87zz333Bu9RAAAAAAojDc8AD7zzDP5zne+k9GjR+fQQw/N1KlTUyqVUqvVkiRdunRJrVbLsmXL8p3vfCfDhw/PxRdf3LEdAAAAANh5TW/EizzyyCO5/fbbc/vtt2fWrFkd32+Pev369cspp5yS0047Lcccc0ymTp2aH//4x5k8eXLWr1+fb37zm+nfv38uuuiiN2K5AAAAAFAYr0sAXL9+fe69997cfvvtueOOO7JgwYKObe3Rr2/fvjnllFPy0Y9+NGPHjk2lUunYZ8yYMRkzZkyeffbZjBkzJs8880z+/d//XQAEAAAAgF1U1wD4k5/8JL/4xS/yq1/9KqtWrUqSzW7d7dOnT04++eR89KMfzXHHHZcuXbps93xDhgzJmWeemcsuu8wnBAMAAADAq1DXAHjmmWdu9jy/JOnVq1c++MEP5qMf/WhOOOGENDc379I520NiU9MbcrcyAAAAABRK3atarVbLbrvtlnHjxuW0007LiSeemK5du77q851wwgk58MAD09LSUsdVAgAAAEBjqGsA/OhHP5qPfvSjef/7359u3brV5ZyjR4+uy3kAAAAAoBHVNQD+9Kc/3eJ7L774Ynbfffctvr948eIMGDCgni8PAAAAALxC+fU46Zw5c/KpT30qgwcPztChQ7e6z3ve857stddeueCCC/KXv/zl9VgGAAAAADS8ugfAu+66KwcffHB+/OMfZ+HChZt9IMgrvfDCC/nud7+bgw8+ODfccEO9lwIAAAAADa+uAXD+/Pn5xCc+kTVr1qRWq2Xo0KH57Gc/u9V9zzrrrAwdOjS1Wi1r167NueeemylTptRzOQAAAADQ8OoaAP/1X/81K1asSKlUype+9KU8+eSTueqqq7a675e//OU8/fTTueaaa9K1a9fUarV87nOfq+dyAAAAAKDh1TUA/upXv0qpVMqxxx6br371q2lq2vFnjFxwwQX55je/mSR56qmn8sgjj9RzSQAAAADQ0OoaAP/85z8nScaOHbtLx5199tkdsfD3v/99PZcEAAAAAA2trgFww4YNSZKuXbvu0nHdu3dPr169kiStra31XBIAAAAANLS6BsA999wzSfI///M/u3Tc8uXLs2zZsiRJ375967kkAAAAAGhodQ2AY8eOTa1Wy89+9rM8/vjjO33cv/7rv6ZWqyVJ3vGOd9RzSQAAAADQ0OoaAD/zmc+kqakp69evz5gxY/L//t//S7Va3eb+69aty9e+9rV89atfTalUygEHHJCjjjqqnksCAAAAgIa244/p3QWHHnpo/umf/ilf+tKXsnTp0px99tn5/Oc/n+OOOy4HHXRQBgwYkO7du2fJkiV57LHH8stf/jKtra2p1Wppbm7OD3/4w3ouBwAAAAAaXl0DYJJceumlKZVKueyyy7Jx48YsW7YsP//5z7e6b/ttv7169cqNN96YUaNG1Xs5AAAAANDQ6noLcLtLLrkkjzzySD760Y+mubk5tVptq//06NEj55xzTmbNmpW//du/fT2WAgAAAAANre5XALY7/PDD89Of/jRr1qzJjBkz8uSTT2bZsmXZsGFD+vbtmwMPPDBHHHFEevTo8XotAQAAAAAa3usWANt17949f/3Xf52//uu/fr1fCgAAAAB4hdflFuBdVavV0qtXrzQ1NeWWW27p7OUAAAAAQGG8blcAtrW1ZeHChdmwYcMO9503b142bNiQWq2W2bNnv15LAgAAAICGU/cAuGLFinz+85/PT3/606xdu3aXjx84cGC9lwQAAAAADavuAfDkk0/Of//3f6dWq+3yse973/vyiU98ot5LAgAAAICGVdcAePvtt2fq1KkplUrZc88984lPfCIDBw7Mv//7v2f27Nk5+OCD8+EPfzi1Wi0LFy7MlClT8swzz6RXr1657bbbcuyxx9ZzOQAAAADQ8OoaAG+66aYkSc+ePfPb3/42e+21V5Jk3LhxOfjggzN37tx88YtfTFPTppet1Wq5+OKL881vfjNf+MIXMn369I5tAAAAAMBrV9dPAX7kkUdSKpXy4Q9/uCP+JcmBBx6YHj16ZPny5fmf//mfju+XSqV84xvfyOjRozNjxox87Wtfq+dyAAAAAKDh1TUALliwIElywAEHbLFt3333TZI8+uijW2z7x3/8x9RqtVx77bVZt25dPZcEAAAAAA2trgFw48aNSZLddttti2377bdfkuSZZ57ZYtvYsWNTKpWyfPny3HvvvfVcEgAAAAA0tLoGwMGDBydJ/vznP2+xbb/99kutVssTTzyxxbbm5ub07t17m8cCAAAAAK9OXQPgUUcdlVqtlp/+9KdZvnz5ZtsOO+ywJMn06dO3uM33hRde6Nh/7dq19VwSAAAAADS0ugbAM844I0mycOHCHHnkkbn++uvzwgsvJNl0m2+SLFu2LF/+8pc7jmlra8vnP//5jv9++9vfXs8lAQAAAEBDq2sA/MAHPpATTjghtVotf/rTn/L3f//3ueGGG5Js+hCQsWPHplar5Zvf/GYOPvjgnHLKKRk+fHhuvvnmlEqlDBo0KCeccEI9lwQAAAAADa2uATBJfv7zn+fv/u7v0rVr19Rqtc22/eAHP0jv3r1Tq9Xy5JNP5he/+EWeffbZ1Gq1NDU15YYbbki3bt3qvSQAAAAAaFh1D4A9e/bMD3/4wyxZsiSPPPJITj/99I5tQ4cOzYMPPpjjjz8+TU1NHYHwr//6r3P//ffnxBNPrPdyAAAAAKChNb1eJ+7evXtGjhy5xfcPPvjg/PKXv8z69euzZMmS9OnTJz169Hi9lgEAAAAADa2uAfC///u/kyT7779/9tprr+3u29zcnD322KOeLw8AAAAAvEJdbwEePXp0Ro8enV/84hf1PC0AAAAA8CrVNQC2X9G3cOHCep4WAAAAAHiV6hoAP/ShD6VWq+X222+v52kBAAAAgFeprgHwq1/9aoYOHZrHHnssF110UT1PDQAAAAC8CnX9EJC+ffvm3nvvzQc/+MF861vfyrRp0/KZz3wmI0eOTM+ePXfqHPvss089lwQAAAAADa2uAbBSqWz23w8//HAefvjhnT6+VCpl48aN9VwSAAAAADS0ugbAWq1Wz9MBAAAAAK9RXQPgZZddVs/TAQAAAACvkQAIAAAAAAVW1wDIW1epVEq5XNcPhX5TeOVzKWkM7X/u/vxJvA8alTnAK3kvNCazgJfzPmhM5gCv1KjvhVLNg/tIsnr16vTo0aOzlwEAAABAndX1CsD//u//fs3nOProo+uwEnbVmjVrsm7dus5eRl307t07lUolbW1tWbFiRWcvh05QqVTSu3fvrFixIm1tbZ29HDqBOYA5QGIWYBZgDmAOsEnRZkFLS8suH1PXAHjMMcekVCq96uNLpVI2btxYxxWxs2q1WiGHYRF/JnZeW1ub9wDeAw3OHKCd90FjMwtIzIFGZw7QrlHfB3V/BqA7igEAAADgzaOuAfCGG27Y7vZarZa1a9fmxRdfzOOPP55f//rXWblyZfr27ZtvfOMbOfTQQ+u5HAAAAABoeHUNgGeeeeYu7b9s2bJ84QtfyI9+9KNcdNFFmTp1aj2XAwAAAAANr9yZL963b9/84Ac/yIQJE7Js2bJdDogAAAAAwPZ1agBs94UvfCFJ8thjj2X69OmdvBoAAAAAKI43RQA84IADUi5vWsqMGTM6eTUAAAAAUBxvigC4atWqVKvVJMmaNWs6eTUAAAAAUBxvigD4b//2bx1fDx48uBNXAgAAAADFUtdPAZ49e/ZO77tx48a88MILue222/KjH/0oSVIqlXLMMcfUc0kAAAAA0NDqGgBHjBiRUqm0y8fVarUkyYQJE7LPPvvUc0kAAAAA0NDqGgCT/z/m7arTTz893//+9+u8GgAAAABobHUNgGeeeeZO71sul9OvX7+87W1vywc+8IHsv//+9VwKAAAAAJA6B8AbbrihnqcDAAAAAF6jN8WnAAMAAAAAr4+6PwOw3UMPPZTbbrstf/zjH/OLX/xii+3/63/9r+y555758Ic/nJEjR75eywAAAACAhlb3ANja2ppPfOITmTJlSpKka9euW91v6tSpee6553LVVVdl7Nix+bd/+7e87W1vq/dyAAAAAKCh1fUW4Gq1mpNOOilTpkxJrVZLrVZL//79t7pv3759O/a55557MmrUqLz44ov1XA4AAAAANLy6BsCf/OQnefjhh5MkBx98cO69994899xzW93397//fe677768+93vTq1Wy/PPP58LLrignssBAAAAgIZX1wA4adKkJMnee++d3/zmNxk9enRKpdJW9y2VSvmbv/mbPPTQQznllFNSq9Vy6623Zv78+fVcEgAAAAA0tLoGwEcffTSlUikf//jHs9tuu+3cAsrlfPvb306y6RbiqVOn1nNJAAAAANDQ6hoAly1blmTTFYC7YsiQIenbt2+SZO7cufVcEgAAAAA0tLoGwJaWliTJvHnzdum4Wq2W1atXJ0kqlUo9lwQAAAAADa2uAfAd73hHarVabrrppqxfv36nj5syZUrH/vvtt189lwQAAAAADa2uAXDChAlJkueffz4f+tCH0trausNj/vSnP+VTn/pUkqR79+45/vjj67kkAAAAAGhodQ+Af/VXf5VarZa77747w4YNywUXXJC77747zz77bFatWpVqtZpFixblnnvuyac//em84x3vyHPPPZdSqZRLLrkkPXv2rOeSAAAAAKChNdX7hLfffnuOPfbYPP7441m2bFm++93v5rvf/e4296/VakmSj3/847n00kvrvRwAAAAAaGh1vQIwSfr165ff/va3+Yd/+Id069YttVptu//06dMn//Iv/5Ibb7wxpVKp3ssBAAAAgIZW9ysAk6Rr16755je/mS996Uu55ZZb8pvf/CZPPvlkli1blg0bNqRv37458MADM3r06HzkIx9Jjx49Xo9lAAAAAEDDe10CYLu+ffvmnHPOyTnnnPN6vgwAAAAAsA11vwW43fr163P33Xfnm9/85la3/+AHP8iUKVOycePG12sJAAAAANDwXpcA+M///M8ZNGhQxo0bly9/+ctb3eeqq67KSSedlMGDB+fKK68UAgEAAADgdVD3APipT30qX/ziF/PSSy91fMLv1rR/CMjSpUvzpS99KR/4wAeyYcOGei8HAAAAABpaXQPgfffdlx/96Eep1Wrp1q1b/s//+T95+OGHt7rv3Xffncsuuyy9e/dOrVbLPffck6985Sv1XA4AAAAANLy6BsAf/ehHSZKePXvm4Ycfzle+8pUccsghW933wAMPzGWXXZYnnngihxxySGq1Wq699tq89NJL9VwSAAAAADS0ugbA3/zmNymVSjn99NNz8MEH79Qxe++9d374wx8mSVatWpWpU6fWc0kAAAAA0NDqGgAXLFiQJDsd/9q9973vTc+ePZMkf/rTn+q5JAAAAABoaHUNgD169EiSLFu27FWfwweBAAAAAED91DUADh8+PLVaLXfdddcuHTdz5sysWrUqSbLHHnvUc0kAAAAA0NDqGgA/9KEPJUkefvjhfO1rX9upY9atW5cLLrggSVIqlTJ27Nh6LgkAAAAAGlpdA+D555+fvfbaK0ly2WWX5dhjj81tt9221U/2XbNmTX72s5/l3e9+d+6///6USqV84hOfcAUgAAAAANRRUz1P1rNnz0yePDljx47N8uXLM3Xq1EydOjVNTU3Zc889M2DAgHTv3j1LlizJ008/nY0bNyZJarVaDjnkkFxzzTX1XA4AAAAANLy6XgGYJCNHjsz06dPz7ne/O7VaLbVaLRs2bMhzzz2X3//+93nwwQfz5JNPZsOGDR3bTznllNx3333p169fvZcDAAAAAA2t7gEwSQ488MA8/PDDufvuu3P66adn6NChHbGv/Z999tknZ555ZqZNm5Zbbrkl/fv3fz2WAgAAAAANra63AL/SCSeckBNOOCFJsnHjxixbtiwbNmxI375907179479arVabrzxxtRqtZx00kkZOHDg67ksAAAAAGgYr8sVgFvT1NSUAQMGZI899tgs/iWbPv33c5/7XM4666zccsstb9SSAAAAAKDwXpcrAJcvX57//M//zLPPPpsNGzbscP958+altbU1pVIpy5Ytez2WBAAAAAANqe4B8L777stHPvKRtLa2vqrj3/Oe99R5RQAAAADQuOoaAFtbW3PqqafucvyrVCo58MADc8EFF2TMmDH1XBIAAAAANLS6PgPwxz/+ccetvGeccUaeeOKJvPjii/nsZz+bJHnve9+bv/zlL3nmmWfy0EMP5ctf/nJ69OiRrl275uqrr865555bz+UAAAAAQMOrawC8++67kyTDhw/P//2//zcHHXRQBg4cmK9+9atJkt/+9rfZbbfdsu++++aII47IP/3TP+W//uu/snHjxpx66ql55pln6rkcAAAAAGh4dQ2As2bNSqlUygc/+MHNvt+nT58MGjQotVotjzzyyGbbjjjiiHz2s5/NqlWrcsEFF9RzOQAAAADQ8OoaANuf/bfXXnttsW2//fZLksycOXOLbeecc06S5Je//GWef/75ei4JAAAAABpaXQNgt27dkiQbNmzYYtu+++6bJPnzn/+8xbYRI0aka9euqdVqmTZtWj2XBAAAAAANra4BcOjQoUmShx56aKvbarVaHn300a0vpLxpKfPmzavnkgAAAACgodU1AB533HGp1Wq5/fbbc9ddd2227X3ve1+S5JFHHslf/vKXzbbdf//9WbNmTZKke/fu9VwSAAAAADS0ugbAT3/602lubk61Ws3f/u3fZtSoUfnlL3+ZJPmbv/mbdO3aNdVqNR/60IfyyCOPZPny5bn33ntz1llndZzjve99bz2XBAAAAAANra4BcL/99su3v/3tJEmtVsv06dPz+9//Pkmy22675ZJLLkmtVsvjjz+eo446Kv369cvxxx+f5557LqVSKccee2xGjhxZzyUBAAAAQEOrawBMNl0F+MADD+STn/xkDjrooPTu3btj2yWXXJIxY8akVqtt8c/hhx+eSZMm1Xs5AAAAANDQml6Pk773ve/d6q28Xbp0yZQpU/Kzn/0sd911VxYsWJCWlpYcf/zx+eQnP5kuXbq8HssBAAAAgIb1ugTA7SmVSjnttNNy2mmnvdEvDQAAAAANp+63AAMAAAAAbx5v+BWAnam1tTW33nprZsyYkYULF6ZHjx7Zf//9c9JJJ+WII47Y5fM99NBDueOOO/Lcc89l7dq1GThwYI488siMHz8+ffr02eHxK1asyBlnnJHDDz88X/nKV7a77xNPPJFbb701f/nLX/LSSy+lX79+GTlyZMaPH5/dd999l9cOAAAAQGNomAA4f/78XHrppVm6dGnK5XL69euXNWvWZMaMGZkxY0bGjx+fs88+e6fPd8MNN+S2225LknTv3j29evXK/Pnzc8stt+T+++/P5Zdfnr333nu757j33ntTrVZ3+Fp33nlnfvSjHyVJunbtmr59+2bx4sX5z//8z9x///35P//n/+Sggw7a6bUDAAAA0DgaIgBWq9VceeWVWbp0aYYNG5aLLroogwcPTrVazX333ZfrrrsukydPzvDhwzNq1Kgdnu+BBx7IbbfdlnK5nHPPPTcnnXRSKpVKlixZkquvvjqzZs3KVVddlWuuuSaVSmWL41euXJkHHnhgpz71+KmnnsqPf/zjJMlHPvKRnHbaaWlubs6KFSvyve99L9OnT883vvGNXHfdddltt912/ZcDAAAAQKE1xDMAp02blmeffTbNzc255JJLMnjw4CRJuVzOmDFjcsIJJyTJTgW5Wq3Wsd+JJ56YcePGdUS+/v3758ILL0xTU1OeffbZPPDAA5sde8899+Tv//7vc/rpp+d73/te1q1bt8PXmzRpUmq1Wt797nfnk5/8ZJqbm5MkvXv3zuc+97n06dMnS5cuzd13373zvxAAAAAAGkZDBMAHH3wwSXLkkUdm4MCBW2wfPXp0kmTevHmZM2fOds81Z86czJ07N0kybty4Lbb3798/hx12WJJk+vTpm2176aWXsnbt2vTp0yd9+/ZNt27dtvtaK1euzGOPPZYk+cAHPrDF9m7duuW9733vVl8LAAAAAJIGCIDVajUzZ85Mkhx66KFb3WfYsGHp0qVLkk233G7PH/7whyRJS0vLNp/xN2LEiK2e65RTTsl//Md/dPwzfvz47b7WE088kWq1mnK5nEMOOWSr+xx44IFJkr/85S/ZsGHDds8HAAAAQOMpfABctmxZXnrppSTJXnvttdV9KpVKx5WBCxYs2O75nn/++e2eK0n22GOPJMnSpUt36jbfHb3WgAED0rVr163u0347c7VazYsvvviqXwsAAACAYip8AGyPf0nSp0+fbe7X/gEaq1at2qnz7cy5kmT16tU7tc5X+1q9evXq+HpHawcAAACg8RQ+AL48irV/gMbWNDVt+kDktra2nTrfzpxrZ863Pe3xsP325NfztQAAAAAopsIHwJcHsu3djtv+/LwdfTBH+/l25lw7c77taf904fXr129zn5dv29ZtwgAAAAA0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EwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAmvq7AW8kVpbW3PrrbdmxowZWbhwYXr06JH9998/J510Uo444ohdPt9DDz2UO+64I88991zWrl2bgQMH5sgjj8z48ePTp0+frR6zatWq3HHHHXnwwQfz4osvprm5Ofvss0/Gjh2bY489dqvHXHfddZkyZcp213L++efn+OOP3+WfAQAAAIBia5gAOH/+/Fx66aVZunRpyuVy+vXrlzVr1mTGjBmZMWNGxo8fn7PPPnunz3fDDTfktttuS5J07949vXr1yvz583PLLbfk/vvvz+WXX5699957s2OWL1+eSy+9NM8//3ySpH///lm/fn2eeOKJPPHEE3nkkUdy4YUXplze/MLMF154IUmy5557plQqbXU9PXv23Om1AwAAANA4GiIAVqvVXHnllVm6dGmGDRuWiy66KIMHD061Ws19992X6667LpMnT87w4cMzatSoHZ7vgQceyG233ZZyuZxzzz03J510UiqVSpYsWZKrr746s2bNylVXXZVrrrkmlUql47hrrrkmzz//fAYPHpwvfOELGTp0aJLkkUceyTe/+c08+OCDGTZsWD784Q9v9noLFixIU1NTvve9720RBwEAAABgexqiJk2bNi3PPvtsmpubc8kll2Tw4MFJknK5nDFjxuSEE05IkkyaNGmH56rVah37nXjiiRk3blxH5Ovfv38uvPDCNDU15dlnn80DDzzQcdyTTz6ZGTNmJEkuvPDCjviXJO95z3ty2mmnJUluueWWrFu3rmPbhg0bsmTJkuy+++7iHwAAAAC7rCGK0oMPPpgkOfLIIzNw4MAtto8ePTpJMm/evMyZM2e755ozZ07mzp2bJBk3btwW2/v375/DDjssSTJ9+vQt1vD2t789w4cP3+YaVq5cmccee6zj+y+++GKq1Wr22GOP7a4LAAAAALam8AGwWq1m5syZSZJDDz10q/sMGzYsXbp0SZI89dRT2z3fH/7whyRJS0vLFs/4azdixIgtzvX4449vdw0tLS0dVya+/Lj25/+1bwMAAACAXVH4ZwAuW7YsL730UpJkr7322uo+lUolAwcOzPz587NgwYLtnq/9Azy2da4kHVfrLV26NOvWrUvXrl07jttWNEw2Rb4FCxZstob2ANi1a9d8//vfz4wZM7J06dJ069Yt+++/f4477rgcffTR210zAAAAAI2r8AGwPf4lSZ8+fba532677ZYkWbVq1U6db2fOlSSrV69OtVrNxo0bd3hcr169tlhDewC85ZZbOvbp27dvlixZksceeyyPPfZYpk2blosuuqjjKkYAAAAAaFf4APjymNbc3LzN/ZqaNv0q2tradup8O3Ou9vOtXr2647+3F+m2tob2qwGHDBmSiRMn5qCDDkqy6VmBN998cyZPnpzf/va3+fGPf5xPf/rT2107AAAAAI2n8AHw5THu5Z+u+0obNmxIknTr1m2nzrcz52o/X/vVf0myfv36bR7Xvq1r164d3/vgBz+Y0aNH513vetdmVxbutttuOeuss9LU1JSbb745U6ZMycc//vG0tLRsd/0AAAAANJbCB8D222qT7d/eu3LlyiTZYUDb2m262zpXc3NzevbsmY0bN6ZcLqdare7Ucf369ev43jvf+c7trufEE0/MzTffnGq1mqeeeipHHXXUVve78cYbM2nSpG2e59RTT82ZZ5653dd6qyiXyx3/FkQbU6lUSrLplvtardbJq6EzmAOYAyRmAWYB5gDmAJuYBQ0QAAcNGpSmpqZs3Lgx8+fP77iF9uXa2tqyePHiJNv/kI4k2XPPPZMk8+fP3+Y+L774YpJNHxRSKpXSpUuXDBo0KAsWLNip43a0hpfr3bt3x9cvv/LwlVatWpWFCxduc/vq1atTqVR2+nXfCkqlUuF+JnZN+5CncZkDmAMkZgFmAeYA5gCbNPIsKHwArFQqOeCAAzJz5szMnDkzY8eO3WKfp59+Ohs2bEi5XN5qIHy59u2LFi3KokWLMnDgwC32+eMf/5gkOeSQQzq+d+CBB2bBggWZOXPmVs/b2tra8by/9uOeeOKJ3HfffWlpacmECRO2etzcuXM7vh48ePA2192zZ88MGjRom9t79Oixw+cfvlWUy+WUSqXUarVUq9XOXg6doFQqdVx162/5GpM5gDlAYhZgFmAOYA6wSdFmwauJmIUPgEly9NFHZ+bMmZk+fXrOOuusza6aS5I777wzSTJy5Mgttr3SwQcfnAEDBmTx4sW56667trhtdu7cuXn00UeTJKNHj95sDffdd19mzpyZ559/Pm9729s2O+4///M/k2z6sI+hQ4cm2fQG/fWvf51yuZxjjz224+rDl5s8eXKSZMCAAR3Hbc2ECRO2GRGTZPHixWltbd32D/4W0tLSkkqlkmq1WpifiV1TqVTS0tKS5cuXFyZss2vMAcwBErMAswBzAHOATYo2CwYMGLDLxzTENbBjxozJHnvskTVr1uTrX/96lixZkmTTh25MmjQpU6dOTVNTU84444yOY2bPnp2JEydm4sSJmT17dsf3K5VKPvaxjyXZFN/uueeejr9FeOaZZ3LFFVekWq1m1KhRGTZsWMdxI0eOzEEHHZRqtZp//ud/7rhyr62tLXfffXd+/vOfJ0nOOuusjmMOPPDADBkyJNVqNVdccUWeeuqpjm1r167NTTfdlKlTpyZJTj/99Ia9jBUAAACAbWuIKwCbm5tz8cUX57LLLsusWbNyzjnnpH///lmxYkXWrVuXcrmciRMnZsiQIR3HrFu3LvPmzev4+uWOP/74zJ49O1OmTMm1116b66+/Pt26desIi8OHD8955523xTr+8R//MV/84hfz/PPP5zOf+Uz69++f1atXZ/Xq1UmST3ziE3nXu97VsX+pVMrFF1+cL3/5y3n++edz4YUXpnfv3unevXuWLFnS8enCJ598csaMGVPfXxoAAAAAhdAQATBJhg4dmmuuuSY333xzfve736W1tTW9evXKyJEjM378+IwYMWKXznf++efnsMMOy9133505c+Zk1apVGTJkSI455piMGzcuXbt23eKYgQMH5tvf/nZuvfXW/OY3v8mi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zujsJQAAAAC86TXteBc6U69evTq+3t7tvStXrkyStLS0bHX7jTfemEmTJm3z+FNPPTVnnnnmq1xl57j77rt3+Zht/X4ollKplGTTbfO1Wq2TV0NnKJfLHf/2v/vGZA6QmAWYBZgDmANsYhYIgG96gwYNSlNTUzZu3Jj58+fnoIMO2mKftra2LF68OEmy9957b/U8q1atysKFC7f5OqtXr06lUqnPot/EXnrppfTt27ezl8EbpH3I07hKpVJDzDa2zRwgMQswCzAHMAfYpJFngQD4JlepVHLAAQdk5syZmTlzZsaOHbvFPk8//XQ2bNiQcrm81UCYJD179sygQYO2+To9evR4yz0/sHv37lmzZs0uHdOrV6+33M/JriuVSimXy6lWq/6Wr0GVy+WUSqXUarVUq9XOXg6dwBwgMQswCzAHMAfYpGiz4NVETAHwLeDoo4/OzJkzM3369Jx11lnp3bv3ZtvvvPPOJMnIkSO32NZuwoQJmTBhwjZfY/HixWltba3fot8Ajz/+eIYPH75Lx7zVfkZenUqlkpaWlixfvlzwbVAtLS2pVCqpVqv+d9+gzAESswCzAHMAc4BNijYLBgwYsMvHuAb2LWDMmDHZY489smbNmnz961/PkiVLkiTr16/PpEmTMnXq1DQ1NTXch2Ls6q28b3/721+fhQAAAAC8ibkC8C2gubk5F198cS677LLMmjUr55xzTvr3758VK1Zk3bp1KZfLmThxYoYMGdLZS33D/elPf9rpqwAffPDB13k1AAAAAG8+rgB8ixg6dGiuueaavP/978+AAQOybNmy9OzZM+973/vyz//8zznuuOM6e4mdom/fvvnTn/603X0qlUoWLVr0Bq0IAAAA4M3FFYBvIf3798+nPvWpzl7Gm07fvn2zaNGiLFu2LAcccEDHAz133333PPHEE528OgAAAIDO5QpACqNv37558cUXs3HjxtRqtcybN6+zlwQAAADQ6QRAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAA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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 480, - "width": 640 - } - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "plot_data_embo = pd.DataFrame(zip(*results[0:2]), columns=[\"rate\", \"accuracy\"])\n", - "# Lol, embo sucks\n", - "(\n", - " pn.ggplot(\n", - " plot_data_embo,\n", - " pn.aes(x=\"rate\", y=\"accuracy\"),\n", - " ) \n", - " + pn.geom_point() \n", - " + pn.geom_line()\n", - " + pn.xlim([0,8])\n", - " + pn.ylim([0,0.025])\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Sanity check compare the prior and meaninn dists" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "ultk", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/src/examples/indefinites/outputs/explored_languages.yml b/src/examples/indefinites/outputs/explored_languages.yml index f3acc43..55e26e5 100644 --- a/src/examples/indefinites/outputs/explored_languages.yml +++ b/src/examples/indefinites/outputs/explored_languages.yml @@ -51,8 +51,8 @@ - Rminus name: explored-4 type: explored -- comm_cost: 0.26521990740740764 - complexity: 19 +- comm_cost: 0.55 + complexity: 7 expressions: - Nplus - _or(K+, Rplus) @@ -50464,7 +50464,16 @@ - Rminus name: explored-4958 type: explored -- comm_cost: 0.3659722222222226 +- comm_cost: 0.5552083333333335 + complexity: 4 + expressions: + - K+ + - N+ + - R+ + - SE- + name: explored-14886 + type: explored +- comm_cost: 0.6148437500000001 complexity: 13 expressions: - Nplus @@ -54582,7 +54591,57 @@ - _and(_or(K+, Sminus), _not(_and(Nminus, Rplus))) name: explored-5365 type: explored -- comm_cost: 0.5536458333333335 +- comm_cost: 0.5868055555555556 + complexity: 9 + expressions: + - K+ + - N+ + - R- + - and(S-, SE-) + - or(K+, K-) + name: explored-15053 + type: explored +- comm_cost: 0.5895833333333336 + complexity: 9 + expressions: + - R+ + - and(SE-, or(K+, S-)) + - or(K+, N+) + name: explored-15054 + type: explored +- comm_cost: 0.5772569444444446 + complexity: 11 + expressions: + - R+ + - R- + - SE- + - and(N-, or(K+, SE+)) + - or(K+, N+) + name: explored-15055 + type: explored +- comm_cost: 0.4932291666666667 + complexity: 9 + expressions: + - R+ + - R+ + - R- + - SE- + - and(SE-, or(K+, S-)) + name: explored-15056 + type: explored +- comm_cost: 0.5522916666666668 + complexity: 13 + expressions: + - K- + - N+ + - R- + - S+ + - and(N-, R+) + - and(S-, SE-) + - or(K+, S-) + name: explored-15057 + type: explored +- comm_cost: 0.4208333333333336 complexity: 8 expressions: - SEminus @@ -134426,7 +134485,209 @@ - Rminus name: explored-13245 type: explored -- comm_cost: 0.3215277777777781 +- comm_cost: 0.7756944444444445 + complexity: 12 + expressions: + - SE- + - and(K-, not(R+)) + - and(or(K+, S-), or(SE-, N+)) + name: explored-15786 + type: explored +- comm_cost: 0.5359375000000002 + complexity: 18 + expressions: + - K+ + - K+ + - R- + - S+ + - and(K-, or(S+, SE+)) + - and(N-, R+) + - and(S-, SE-) + - or(K+, K-) + name: explored-15787 + type: explored +- comm_cost: 0.5833333333333333 + complexity: 9 + expressions: + - N+ + - R- + - S+ + - and(S-, SE-) + - or(SE-, N+) + name: explored-15788 + type: explored +- comm_cost: 0.3750000000000002 + complexity: 20 + expressions: + - N+ + - R- + - S+ + - and(K-, or(S+, N+)) + - and(N-, R+) + - and(S-, SE-) + - and(or(K+, S-), not(R-)) + name: explored-15789 + type: explored +- comm_cost: 0.08125000000000027 + complexity: 13 + expressions: + - N+ + - N+ + - R- + - S+ + - and(N-, R+) + - and(N-, R+) + - and(S-, SE-) + name: explored-15790 + type: explored +- comm_cost: 0.6884375000000001 + complexity: 14 + expressions: + - N- + - R+ + - and(K-, or(SE-, N+)) + - and(or(K+, S-), or(SE-, N+)) + name: explored-15791 + type: explored +- comm_cost: 0.4036458333333336 + complexity: 13 + expressions: + - K+ + - N+ + - S+ + - and(N-, R+) + - and(N-, not(R-)) + - and(S-, SE-) + name: explored-15792 + type: explored +- comm_cost: 0.6621875000000002 + complexity: 6 + expressions: + - N+ + - R+ + - SE- + - or(K+, S-) + name: explored-15793 + type: explored +- comm_cost: 0.6614583333333335 + complexity: 5 + expressions: + - N- + - R+ + - R- + - SE+ + - SE- + name: explored-15794 + type: explored +- comm_cost: 0.6849907407407408 + complexity: 38 + expressions: + - K+ + - and(K-, or(S+, N+)) + - and(N-, or(K+, R+)) + - and(N-, or(K+, SE+)) + - and(S-, N-) + - and(or(K+, S-), not(R-)) + - or(K+, SE+) + - or(S+, SE+) + - or(and(K-, S+), or(N+, R-)) + name: explored-15795 + type: explored +- comm_cost: 0.6470486111111112 + complexity: 8 + expressions: + - R+ + - SE- + - and(and(K-, N-), not(R-)) + name: explored-15796 + type: explored +- comm_cost: 0.39333333333333353 + complexity: 13 + expressions: + - N+ + - R- + - and(K-, S+) + - and(N-, R+) + - and(S-, SE-) + - not(R-) + name: explored-15797 + type: explored +- comm_cost: 0.4570312500000002 + complexity: 9 + expressions: + - N+ + - R- + - SE- + - and(K-, N-) + - and(N-, R+) + name: explored-15798 + type: explored +- comm_cost: 0.7204166666666667 + complexity: 6 + expressions: + - K- + - K- + - R+ + - or(K+, N+) + name: explored-15799 + type: explored +- comm_cost: 0.5877430555555557 + complexity: 14 + expressions: + - N+ + - R- + - SE- + - and(N-, R+) + - and(N-, or(K+, S-)) + - or(K+, S-) + name: explored-15800 + type: explored +- comm_cost: 0.7388680555555557 + complexity: 17 + expressions: + - N- + - and(K-, N-) + - and(K-, S+) + - and(K-, not(R-)) + - and(and(K-, N-), not(R-)) + name: explored-15801 + type: explored +- comm_cost: 0.4583912037037039 + complexity: 16 + expressions: + - N+ + - R- + - S+ + - and(N-, R+) + - and(S-, not(R-)) + - and(and(K-, N-), not(R-)) + name: explored-15802 + type: explored +- comm_cost: 0.44930555555555574 + complexity: 16 + expressions: + - K+ + - N+ + - N+ + - R- + - SE- + - and(K-, N-) + - and(K-, or(S+, N+)) + - and(N-, R+) + name: explored-15803 + type: explored +- comm_cost: 0.35451388888888924 + complexity: 18 + expressions: + - K+ + - R- + - SE- + - and(N-, R+) + - and(S-, or(SE-, N+)) + - or(and(K-, S+), or(N+, R-)) + name: explored-15804 + type: explored +- comm_cost: 0.5827256944444446 complexity: 10 expressions: - _and(K-, _not(Rplus)) diff --git a/src/examples/indefinites/outputs/natural_languages.yml b/src/examples/indefinites/outputs/natural_languages.yml index 1f4fda1..07c1bba 100644 --- a/src/examples/indefinites/outputs/natural_languages.yml +++ b/src/examples/indefinites/outputs/natural_languages.yml @@ -252,7 +252,7 @@ - Rminus name: french type: natural -- comm_cost: 0.6458333333333335 +- comm_cost: 0.7166666666666668 complexity: 4 expressions: - 32k @@ -321,9 +321,10 @@ - comm_cost: 0.6144097222222223 complexity: 5 expressions: - - 23b - - 23he - - 23hi + - 24a + - 24b + - 24bd + - 24e lot_expressions: - SEminus - _and(Nminus, Sminus) diff --git a/src/examples/indefinites/outputs/plot.png b/src/examples/indefinites/outputs/plot.png index 6d387ad..db0cc7d 100644 Binary files a/src/examples/indefinites/outputs/plot.png and b/src/examples/indefinites/outputs/plot.png differ diff --git a/src/examples/modals/__init__.py b/src/examples/modals/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/examples/modals/data/grammar.yaml b/src/examples/modals/data/grammar.yaml new file mode 100644 index 0000000..36bb897 --- /dev/null +++ b/src/examples/modals/data/grammar.yaml @@ -0,0 +1,55 @@ +start: bool +rules: +# boolean / propositional logic rules +- lhs: bool + rhs: + - bool + - bool + name: "and" + func: | + lambda p1 , p2 : p1 and p2 +- lhs: bool + rhs: + - bool + - bool + name: "or" + func: | + lambda p1 , p2 : p1 or p2 +- lhs: bool + rhs: + - bool + name: "not" + func: | + lambda p : not p +# primitive / feature rules +# forces +- lhs: bool + rhs: + name: "weak" + func: | + lambda point: point.force == "weak" + +- lhs: bool + rhs: + name: "strong" + func: | + lambda point: point.force == "strong" + +# flavors +- lhs: bool + rhs: + name: "epistemic" + func: | + lambda point: point.flavor == "epistemic" + +- lhs: bool + rhs: + name: "deontic" + func: | + lambda point: point.flavor == "deontic" + +- lhs: bool + rhs: + name: "circumstantial" + func: | + lambda point: point.flavor == "circumstantial" \ No newline at end of file diff --git a/src/examples/modals/data/universe.csv b/src/examples/modals/data/universe.csv new file mode 100644 index 0000000..31a483c --- /dev/null +++ b/src/examples/modals/data/universe.csv @@ -0,0 +1,7 @@ +name,force,flavor,probability +weak+epistemic,weak,epistemic,0.1389370306181398 +weak+deontic,weak,deontic,0.0420277296360485 +weak+circumstantial,weak,circumstantial,0.1429809358752166 +strong+epistemic,strong,epistemic,0.1042749855574812 +strong+deontic,strong,deontic,0.2537550548815713 +strong+circumstantial,strong,circumstantial,0.3180242634315424 diff --git a/src/examples/modals/demo.html b/src/examples/modals/demo.html new file mode 100644 index 0000000..243d680 --- /dev/null +++ b/src/examples/modals/demo.html @@ -0,0 +1,15806 @@ + + + + + +demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/examples/modals/demo.ipynb b/src/examples/modals/demo.ipynb new file mode 100644 index 0000000..9fa386a --- /dev/null +++ b/src/examples/modals/demo.ipynb @@ -0,0 +1,847 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Comparison of two approaches to efficient communication applied to modals\n", + "\n", + "In this notebook, we showcase the tools and abstractions in ULTK by comparing two approaches to analyzing communicative efficiency in natural languages. For simplicity, we replicate (and extend) the efficient communication analysis of modal typology in \\([1](#references)\\).\n", + "\n", + "ULTK can be used to investigate how human languages are shaped to balance cognitive complexity and communicative informativity, using both (1) analyses based on a boolean grammar-based measure of complexity and a utility-based measure of informativity, and (2) the Information Bottleneck (IB) framework for studying efficient compression in semantic systems. Each analysis involves defining the universe of modals, quantifying informativity and complexity, analyzing natural languages, and estimating trade-offs. The data, and many of the modeling choice points here, replicate \\([1](#references)\\).\n", + "\n", + "The high level abstraction in ULTK is the `ultk.language.Language`. \n", + "- A `Language` is a collection of `Expression`s\n", + "- An `Expression` is a pairing of form and `Meaning`\n", + "- A `Meaning` is a mapping; in our simple case, from `Referent`s to `True` or `False`. \n", + "- Each `Referent` belongs to the same `Universe`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define the modals universe\n", + "\n", + "We start by defining the universe of modality using a predefined dataset. The universe specifies the relationships and properties of modal meanings, which will set the groundwork for measuring complexity and informativity. A `Universe` in ULTK is a collection of unique referents. We also load the prior probability of each referent, which was estimated from annotated corpus frequencies in \\([2](#references)\\)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from ultk.language.semantics import Referent, Universe\n", + "\n", + "universe = Universe.from_csv(\"./data/universe.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define the measure of informativity\n", + "\n", + "Informativity is quantified using a 'half-credit' scoring system, which partially rewards overlaps in modal features (e.g., force and flavor). This measure reflects the expected communicative utility of a language for communication (assuming a literal speaker and listener), under the corpus-estimated prior. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from ultk.effcomm.informativity import informativity\n", + "\n", + "def half_credit_utility(m: Referent, m_: Referent) -> float:\n", + " score = 0.0\n", + " if m.force == m_.force:\n", + " score += 0.5\n", + " if m.flavor == m_.flavor:\n", + " score += 0.5\n", + " return score\n", + "\n", + "modal_informativity = lambda lang: informativity(lang, universe.prior_numpy, half_credit_utility)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define complexity as length in a boolean grammar\n", + "\n", + "One popular approach to modeling the complexity of a language is to measure its minimum description length in a Language of Thought (LoT). Here, we operationalize this by defining a boolean grammar for the modal universe, and identify for each modal meaning, its minimum expression length within this grammar." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Rule(name='and', lhs='bool', rhs=['bool', 'bool'], func= at 0x123c58cc0>, weight=1.0),\n", + " Rule(name='or', lhs='bool', rhs=['bool', 'bool'], func= at 0x1271a1d00>, weight=1.0),\n", + " Rule(name='not', lhs='bool', rhs=['bool'], func= at 0x1271a19e0>, weight=1.0),\n", + " Rule(name='weak', lhs='bool', rhs=None, func= at 0x1271a1ee0>, weight=1.0),\n", + " Rule(name='strong', lhs='bool', rhs=None, func= at 0x1271a1da0>, weight=1.0),\n", + " Rule(name='epistemic', lhs='bool', rhs=None, func= at 0x1271a37e0>, weight=1.0),\n", + " Rule(name='deontic', lhs='bool', rhs=None, func= at 0x1271a3880>, weight=1.0),\n", + " Rule(name='circumstantial', lhs='bool', rhs=None, func= at 0x1271a3920>, weight=1.0)]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load grammar\n", + "\n", + "from ultk.language.grammar import Grammar, GrammaticalExpression\n", + "from ultk.language.language import Expression, Meaning, Language, aggregate_expression_complexity\n", + "\n", + "grammar = Grammar.from_yaml(\"./data/grammar.yaml\")\n", + "grammar.get_all_rules()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Get unique expressions for each modal meaning\n", + "\n", + "expressions_by_meaning: dict[Meaning, Expression] = grammar.get_unique_expressions(\n", + " depth=5,\n", + " max_size=2 ** len(universe) + 1,\n", + " unique_key=lambda expr: expr.evaluate(universe),\n", + " compare_func=lambda e1, e2: len(e1) < len(e2),\n", + ")\n", + "expressions_by_meaning = {key: value for key, value in expressions_by_meaning.items() if not key.is_uniformly_false()} # exclude bottom" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Define language complexity as the sum of the complexity of each of its expressions\n", + "\n", + "def complexity(\n", + " language: Language, expressions_by_meaning: dict[Meaning, GrammaticalExpression]\n", + ") -> float:\n", + " \"\"\"Get complexity of a language via minimal expression length in LoT.\n", + "\n", + " Args:\n", + " language: the Language to measure\n", + " expressions_by_meaning: a dictionary with keys as `Meaning`s, that returns the shortest GrammaticalExpression which expresses that Meaning\n", + "\n", + " Returns:\n", + " sum of the length of the shortest LoT expression for each meaning in the language\n", + " \"\"\"\n", + " return aggregate_expression_complexity(\n", + " language, lambda expr: len(expressions_by_meaning[expr.meaning])\n", + " )\n", + "\n", + "boolean_complexity = lambda lang: complexity(lang, expressions_by_meaning)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load natural languages\n", + "\n", + "We download natural languages, one CSV at a time, from a public repo and convert each to a Language. See `util.py` for more details." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading modals data from https://api.github.com/repos/nathimel/modals-effcomm/contents/data/natural_languages?ref=main\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 76%|███████▌ | 22/29 [00:12<00:04, 1.72it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Data for Qiang is of type reference-grammar; skipping.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 29/29 [00:16<00:00, 1.76it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Adding Akan\n", + "Adding Basque\n", + "Adding Cantonese\n", + "Adding Dutch\n", + "Adding Farsi\n", + "Adding Gitksan\n", + "Adding Greek\n", + "Adding Hausa\n", + "Adding Hebrew\n", + "Adding Hindi\n", + "Adding Hungarian\n", + "Adding Igbo\n", + "Adding Japanese\n", + "Adding Javanese-Paciran\n", + "Adding Khmer\n", + "Adding Kiitharaka\n", + "Adding Korean\n", + "Adding Lillooet-Salish\n", + "Adding Logoori\n", + "Adding Mandarin\n", + "Adding Mapudungun\n", + "Adding Russian\n", + "Adding Tagalog\n", + "Adding Telugu\n", + "Adding Thai\n", + "Adding Tlingit\n", + "Adding Turkish\n", + "Adding Vietnamese\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from util import load_natural_languages\n", + "natural_languages = load_natural_languages()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Measure languages\n", + "\n", + "The properties of each language, including its boolean complexity, literal informativity, and adherence to a semantic universal (e.g., Independence of Force and Flavor, [3](#references)), are quantified." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Define a lexical semantic universal to measure" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def iff(e: Expression) -> bool:\n", + " \"\"\"Whether an expression satisfies the Independence of Force and Flavor Universal.\n", + "\n", + " The set of forces X that a modal lexical item m can express and the set of flavors be Y that m can express, then the full set of meaning points that m expresses is the Cartesian product of X and Y.\n", + " \"\"\"\n", + " points = {(ref.force, ref.flavor) for ref in e.meaning if e.meaning[ref]}\n", + " forces, flavors = zip(*points)\n", + " return all((force, flavor) in points for force in set(forces) for flavor in set(flavors))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "from tqdm import tqdm\n", + "\n", + "def langs_to_df(languages: list[Language], properties_to_add: dict) -> pd.DataFrame:\n", + " return pd.DataFrame.from_records(\n", + " [\n", + " {key: lang_dict[key] for key in properties_to_add} for lang_dict in \n", + " [\n", + " language.as_dict_with_properties(\n", + " **{key: properties_to_add[key](idx, language) for key in properties_to_add}\n", + " )\n", + " for idx, language in tqdm(enumerate(languages), total=len(languages))\n", + " ]\n", + " ]\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 28/28 [00:00<00:00, 2275.85it/s]\n" + ] + } + ], + "source": [ + "natural_df = langs_to_df(\n", + " natural_languages,\n", + " {\n", + " \"name\": lambda _, lang: lang.name,\n", + " \"type\": lambda _1, _2: \"natural\",\n", + " \"boolean_complexity\": lambda _, lang: boolean_complexity(lang),\n", + " \"literal_informativity\": lambda _, lang: modal_informativity(lang),\n", + " \"iff\": lambda _, lang: lang.degree_property(iff),\n", + " }\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Estimate pareto frontier\n", + "\n", + "Using an evolutionary optimization algorithm, we search for hypothetical languages that achieve optimal trade-offs between complexity and informativity. The resulting pareto frontier is a heuristic estimate of a bound on efficiency and helps contextualize the optimality of natural languages relative to logically possible languages." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "from ultk.effcomm.optimization import EvolutionaryOptimizer\n", + "from ultk.language.sampling import random_languages" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 50/50 [00:25<00:00, 2.00it/s]\n" + ] + } + ], + "source": [ + "expressions = list(expressions_by_meaning.values())\n", + "\n", + "seed_languages = random_languages(\n", + " expressions, sampling_strategy=\"stratified\", sample_size=1000, max_size=10\n", + ")\n", + "\n", + "# Evolutionary optimizer wants to minimize two objectives\n", + "objectives = [boolean_complexity, lambda lang: 1 - modal_informativity(lang)]\n", + "\n", + "optimizer = EvolutionaryOptimizer(\n", + " objectives,\n", + " expressions,\n", + " 1000,\n", + " 3,\n", + " 50,\n", + ")\n", + "result = optimizer.fit(seed_languages)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 10/10 [00:00<00:00, 2491.86it/s]\n", + "100%|██████████| 14878/14878 [00:08<00:00, 1766.78it/s]\n" + ] + } + ], + "source": [ + "dominating_df = langs_to_df(\n", + " result[\"dominating_languages\"], \n", + " {\n", + " \"name\": lambda idx, _: f\"dominating-{idx}\",\n", + " \"type\": lambda _1, _2: \"dominant\",\n", + " \"boolean_complexity\": lambda _, lang: boolean_complexity(lang),\n", + " \"literal_informativity\": lambda _, lang: modal_informativity(lang),\n", + " \"iff\": lambda _, lang: lang.degree_property(iff), \n", + " }, \n", + ")\n", + "\n", + "explored_df = langs_to_df(\n", + " result[\"explored_languages\"],\n", + " {\n", + " \"name\": lambda idx, _: f\"explored-{idx}\",\n", + " \"type\": lambda _1, _2: \"explored\",\n", + " \"boolean_complexity\": lambda _, lang: boolean_complexity(lang),\n", + " \"literal_informativity\": lambda _, lang: modal_informativity(lang),\n", + " \"iff\": lambda _, lang: lang.degree_property(iff),\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Information Bottleneck analysis\n", + "\n", + "Now we apply \\([4](#references)\\)'s framework for studying the efficiency of semantic systems via the Information Bottleneck (IB) principle, which specifies theoretical bounds on the limits of optimal lossy compression. \n", + "\n", + "The complexity of a language in the IB framework is measured as the mutual information between probabilistic meanings and words, $I(M;W)$. The accuracy of a language is measured as the information that words contain about referents, $I(W;U)$. This is a nontrivial tradeoff because meanings, $p(U|M)$, are probabilistic. \n", + "\n", + "We can parameterize these meaning distributions via a simple exponential function of the similarity between modal meanings, which in turn can be specified by our predefined utility function (and a free parameter, $\\gamma$). The IB tradeoff is also sensitive to the prior over meanings, $p(M)$, which we have already estimated.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the domain distribution $p(U|M)$ and $p(M)$" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "from ultk.effcomm.information_bottleneck.modeling import pU_M_from_similarity, construct_ib_naming_model" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "similarity_matrix = np.array([[half_credit_utility(m, m_) for m_ in universe] for m in universe])\n", + "pM = universe.prior_numpy\n", + "\n", + "# Here we use an arbitrary value of gamma for parameterizing a similarity-based distributions that will produce a nontrivial bound\n", + "pU_M = pU_M_from_similarity(1e-1, similarity_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we compute the IB bound, which requires $p(U|M)$, $p(M)$, and a list of values $\\beta$ at which to evaluate the trade-off. Other keyword arguments can be passed; see `ultk.effcomm.information_bottleneck.ib.IBOptimizer` for more details." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "beta=1.00000: 100%|██████████| 1000/1000 [01:29<00:00, 11.16it/s] \n" + ] + } + ], + "source": [ + "betas = np.logspace(0, 5, 1000,)\n", + "naming_model = construct_ib_naming_model(\n", + " pU_M, pM, betas=betas,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Define the mapping between a Language and an IB encoder\n", + "\n", + "We need to construct, for each Language, a stochastic encoder $p(w | m)$, which is a conditional distribution on words given meanings. \n", + "\n", + "Recall that a ULTK Language is a collection of `Expression`s, each of which contain a `Meaning`, which is a mapping from `Referent` to truth values. More generally, we can think of this mapping as inducing a probability distribution -- a mapping from referents to probabilistic truth values. This is implemented in `Meaning.dist`, and by default this is a distribution that is uniformly true on referents that are mapped to `True`.\n", + "\n", + "This allows us to infer a probabilistic mapping from words to meanings. Using Bayes' rule, and assuming a uniform $p(w)$, we can infer for each Language its associated encoder $p(w | m)$." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def lang_to_encoder(language: Language) -> np.ndarray:\n", + " \"\"\"Return p(w|m) Simplifying assumption here that p(w) is uniform.\"\"\"\n", + " pM_W = np.array([list(expr.meaning.dist.values()) for expr in language.expressions])\n", + " return pM_W.T / pM_W.T.sum(axis=1, keepdims=True)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now obtain encoders from any Language -- corresponding to natural systems or hypothetical ones discovered by our evolutionary algorithm." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 28/28 [00:00<00:00, 13559.69it/s]\n", + "100%|██████████| 10/10 [00:00<00:00, 20961.04it/s]\n", + "100%|██████████| 14878/14878 [00:00<00:00, 16821.20it/s]\n" + ] + } + ], + "source": [ + "natural_encoders = [lang_to_encoder(lang) for lang in tqdm(natural_languages)]\n", + "dominating_encoders = [lang_to_encoder(lang) for lang in tqdm(result[\"dominating_languages\"])]\n", + "explored_encoders = [lang_to_encoder(lang) for lang in tqdm(result[\"explored_languages\"])]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Measure languages with respect to IB quantities" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 28/28 [00:00<00:00, 3533.21it/s]\n", + "100%|██████████| 10/10 [00:00<00:00, 3782.40it/s]\n", + " 47%|████▋ | 7038/14878 [00:01<00:01, 4112.04it/s]/Users/nathanielimel/uw/projects/ultk/src/ultk/effcomm/information_bottleneck/modeling.py:154: UserWarning: Negative gNID: -0.03917487119683205.\n", + " warnings.warn(f\"Negative gNID: {score}.\")\n", + " 67%|██████▋ | 9934/14878 [00:02<00:01, 4109.96it/s]/Users/nathanielimel/uw/projects/ultk/src/ultk/effcomm/information_bottleneck/modeling.py:154: UserWarning: Negative gNID: -0.02997813280434336.\n", + " warnings.warn(f\"Negative gNID: {score}.\")\n", + " 95%|█████████▍| 14073/14878 [00:03<00:00, 4102.28it/s]/Users/nathanielimel/uw/projects/ultk/src/ultk/effcomm/information_bottleneck/modeling.py:154: UserWarning: Negative gNID: -0.06758893511865316.\n", + " warnings.warn(f\"Negative gNID: {score}.\")\n", + " 97%|█████████▋| 14488/14878 [00:03<00:00, 4115.83it/s]/Users/nathanielimel/uw/projects/ultk/src/ultk/effcomm/information_bottleneck/modeling.py:154: UserWarning: Negative gNID: -0.023615920126818457.\n", + " warnings.warn(f\"Negative gNID: {score}.\")\n", + "100%|██████████| 14878/14878 [00:03<00:00, 4085.06it/s]\n" + ] + } + ], + "source": [ + "def add_ib_plane_columns(df: pd.DataFrame, encoders: list[np.ndarray]) -> pd.DataFrame:\n", + " # df[\"ib_complexity\"], df[\"ib_accuracy\"] = np.array([(naming_model.complexity(enc), naming_model.accuracy(enc)) for enc in tqdm(encoders)]).T\n", + " measurements = []\n", + " for enc in tqdm(encoders):\n", + " comp = naming_model.complexity(enc)\n", + " acc = naming_model.accuracy(enc)\n", + " eps, gnid, bl, _ = naming_model.fit(enc)\n", + " measurements.append((comp, acc, eps, gnid, bl))\n", + " arr = np.array(measurements)\n", + "\n", + " df[\"ib_complexity\"] = arr[:, 0]\n", + " df[\"ib_accuracy\"] = arr[:, 1]\n", + " df[\"min_epsilon\"] = arr[:, 2]\n", + " df[\"fitted_beta\"] = arr[:, 3]\n", + " return df\n", + "\n", + "\n", + "natural_df = add_ib_plane_columns(natural_df, natural_encoders)\n", + "dominating_df = add_ib_plane_columns(dominating_df, dominating_encoders)\n", + "explored_df = add_ib_plane_columns(explored_df, explored_encoders)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Lastly, load a dataframe of the ib bound.\n", + "ib_bound_df = pd.DataFrame(naming_model.IB_curve.T, columns=[\"ib_complexity\",\"ib_accuracy\"])\n", + "\n", + "# sanity check: complexity bound is H(M), accuracy bound is I(M;U)\n", + "assert np.allclose(ib_bound_df.max().values, [naming_model.H_M, naming_model.I_MU])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compare with visualizations\n", + "\n", + "Now we can inspect efficiency tradeoffs for natural languages amongst unnatural ones. Specifically, we can visualize languages on two different planes, resulting from two different axes: (1) boolean complexity vs. literal informativity and (2) IB complexity vs. accuracy. These plots reveal how natural languages differ in their trade-offs and highlight the predictions made by each approach to analyzing efficient communication. \n", + "\n", + "Detailed qualitative and quantitative comparison between these two approaches is left to the user; the purpose of this demo is to briefly illustrate the utility of ULTK as a library." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "import plotnine as pn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### boolean complexity vs. literal informativity" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2kdbaJEdnJ/BButweC+omoYi01EFJwAhaFoTG5n7c3bTUhkVRQlSRTurtQlap6iYCoZxHm+7aIlN1dEkoq5r5rMEgeL8ZMJkUqCURmmFsw7nDImE62XFfJYckWjee05Ox2SZYj7LSaREaY2QoKxHS5hOCpqmRkoOSkAG+1wxjqqopqtJfYLqz59tDZ2zSKkYjeJE6eaxe/ToEW1rSLMReaFJlGa9bfbZkYmIv32dp1jrY9vzDXRdh+rzy9p2aANOEInAO0tjLF4ErA8oeWhFHciAojhnPkm5fzZCSXUQEO+94+JpQnGd07ZPWS6XfPzjH+//3TGbTVld14BHBtjWDblxWO8wxpBnKU1rGY9vt2cZG/BNizsH4zyJUigtsc7TWY91gs22YbEIRxOkNE1jVqgTNKZFNjIWWkjwnafput6CHfZ2w5vXnFKK+/emJNpzdjqnKJI98buYTbDGM9uWpNns6LettazXaxId0KmkGOVILforNuBtoDEd1jrKen00UW/blqra0tQV6/U1puswndu7x7Mio2s61utrFoszyrLcE6/7CbpIaLuWto0K08bFRTwpJE1t6TqDlPn+/hww2AKjslIyP1lEEgyBTlIW8wVN07HblqRperTtXddFG2ddcu/+PUzXUlcdMpW4NpJirzx8hcvLy71t8abaumkanHOMiuSI/AN6JVvCrir7goFn266UYjQaMx6PWcyjGqppG4KP0kmdaE5OTsjzrFfFHRJ4r7zyCv/sn/0zuqbj7S9+gddffz024fZttNVuxxfffjvek2nC66+/fvD52WzGbrehqXesVtfMZnOytCe5gme73bHdlWR9ucFNcmTIeRW8f+On934/xr95z8SogrpvXE/2dl7f2+sXiwWbzSZGXPSNwjffMcYYmqahqpp9DMfN72/bmJ8oRYzXeH7bhybTrm25f//+wTN8NBpR1zVPL57inN83nN78/DM12u2FDsa6vRrxtve/lJKzs7P9wsXN79Fav9AG+9UiTVPKsuTRe+9SljVJlpMmKUmeEZyPJP1mi728JHjPg+eKZwYM1upYohLf9SEExuOc6XT6JbORvxLsFZpK7lXM8TxGAlDrSJo65/bjofdb3Nda31rw8iK0bYsx9tY8ywFDyYm1cZHneXJ8UCCuVivquuojYuIzPJ/FJvkvRebF9vDyIPs4Pks+POtw18Xn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lCTNmzdPb731lowxkqT169frvvvuUyqV0plnntnu8yYAAOhaLJP+f3egHdavX6/p06ervr5eDodDlZWVamhoUDQalcPh0M0336xzzjkn32UCQFbGGF166aVKJBKqqqra7469F1xwgS688EJJ0p/+9CfNmTNHkuTz+VRcXKyamhoZY9SjRw/NmDEj6zUEAaArSc8AfOihh+wZgGlPPPGE/vKXv0hqvqap1+u1/+A7aNAgTZ8+nVUeAAAcplgCjAPSv39/Pfroo5o7d66WLVumuro6lZSUaPjw4ZowYUKrL5IA0JU0NjYqkUhIkr1pUVsaGhrs21dccYUGDhyol156SevWrVN9fb169eql008/Xf/5n//JL8UADnvf+973dOKJJ+r111/Xxo0bFQqF1LdvX40ZM0YXXnjhfv9oAgAAui5mAAIAAAAAAAAFjGsAAgAAAAAAAAWMABAAAAAAAAAoYASAAAAAAAAAQAEjAAQAAAAAAAAKGAEgAAAAAAAAUMAIAAEAAAAAAIACRgAIAAAAAAAAFDACQAAAAAAAAKCAEQACAAAAAAAABYwAEAAAAAAAAChgBIAAAAAAAABAASMABAAAAAAAAAoYASAAAAAAAABQwAgAAQAAAAAAgAJGAAgAAAAAAAAUMAJAAAAAAAAAoIARAAIA0IaFCxfKsixZlqXZs2fnu5wvJf08rrnmmnyXggJxzTXX2J+rrmbMmDF2bZFIJN/lAAAA5JUr3wUAAAAAnWnFihWaN2+eJOnCCy/UiBEj8lsQAADAIUYACAAAgCPKihUr9N///d+SpB49ehAAAgCAgkcACAAAgIKzcOHCfJcAAADQZXANQAAAAAAAAKCAEQACAAAAAAAABYwAEACAA2CM0Zw5c3T22WersrJSfr9fgwcP1g9+8ANt2rSpzWMjkYgef/xxjRkzRkcddZQ8Ho969eqliRMn6rnnnmvX43fEGG0JhUJ65JFHdMYZZ6iqqsp+ft/97nf197//vV1jvPrqq7riiivUp08fud1u+f1+9e/fX5MmTdK8efNkjMl63OzZs+1dWzdu3ChJmjt3rsaPH28/16985Su66qqr9NFHH33p59oeK1eu1I033qgBAwbI5/OptLRUw4YN049//GNt3bq1zWP37t2r++67T6eeeqqqqqrk9XrVp08fXXnllXr77bdzHrdx40b7dXjwwQcl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ayoqKuw+r7/+esbxS5cutV+nQCBgNm/enNG+YsUK43K57Pfpww8/zGgfPXq0PXZTU1NG26JFi+y2Xr16mQcffND87ne/y/oaLl++vNU54L/+67+y9gUAAOiqCAABAGhDywBw2rRpxul02j+XlJSYoqKijGAgW2BTU1NjTjrppIx+RUVFplu3bhn3OZ1OM3fu3Kx1dMQYuQJAY4zZsWOHGTp0aMZYgUDADsLS/x111FFm5cqVrY5fsmRJq9eirKzMWJZl/3zyySeb+fPn2z+73W4TCATsMbpKAGiMMS+++GLG87Esy5SXl9uBU/q/3/zmN62OXb9+fatwzev1mrKysoz7/H6/effdd9t8fp0RAP7Hf/yHOf744+1+Ho/HBAKBjFr79etntm/f3mr8tgJAY4y54447MsZxuVymoqLCDvbSr+2DDz6YcVw0Gs2oad/2tNtvv93uM3ToUDtgNKbtADAWi2WE9umQMpeBAwdm9F24cGHOvgAAAF0RS4ABAGin8ePHa968eTr66KMlNS8dTC+b7Natm371q1/p3nvvbXVcZWWlFi5cqJtuusm+bl48HtfevXvtPsOGDdOiRYt02WWXZX3sjhijLUcddZQWL16s7373u/b4oVDIXh7pcrl0ySWX6KOPPtLQoUNbHX/66adr3rx5qq6utu+rr6+XMUZlZWW6++679d5772ncuHH29e5isZi9a3JXc/HFF2v+/PkaPHiwJMkYo7q6OntJ77HHHqvXXnstY8lv2jHHHKOlS5fqiiuusJdGRyIR1dfX233OOussffDBB/b1F/OpW7dueuedd3TuuedKat7UpeX7ctFFF2nJkiXtXlLe0kMPPaQ//OEP9i7HiURCtbW1SqVSkpo3XXnppZd05513Zhx333332ZuHDBkyRD/84Q+zjn/vvfeqb9++kqR//OMfevDBB9tVV1FRkZ599lkNHz5cbrdbPp/Pfq+zabkZSN++fdt9LUQAAICuwjKmjW3fAABAK7FYTH/5y1/02WefSZIGDRqkc845x94Bti21tbV66623tGXLFqVSKVVXV+vUU09tM3w4FGO0paamRvPnz7fH79Onj84+++x2BUDhcFhvvvmmPv30U3m9Xg0YMEBjx47N2C01GAzqmWee0e7du3Xsscfq8ssv75C6DwVjjN577z2tWLFCe/fuVXl5uU4++WSdcsopOTc7aWn79u165513tHXrVjkcDvXs2VNnnnmm+vTp0wnVt61fv37atGmTRo8erYULF0pqvibf3/72N+3cuVPdu3fXmDFjNGjQoC/9WIlEQn/961/1ySefqLGxURUVFRoxYoS+9rWvfemxO8OiRYvsjU3uuecezZgxI78FAQAAHCACQAAAgCNQtgAQ2d1999267777ZFmW/vWvf9k7AwMAABwuXPkuAAAA4Mt64YUXdNddd32pMSZOnKgHHniggypCoUgmk5o1a5Ykady4cYR/AADgsEQACAAADnv19fVau3btlxpj+/btHVQNCsncuXO1bds2SdLNN9+c52oAAAAODkuAAQAAjkAsAc7tySef1O7duxUKhfTkk08qFArp2GOP1Zo1a+RwsIceAAA4/DADEAAAAGjhww8/1FNPPWX/bFmWHnnkEcI/AABw2OJbDAAAANDCUUcdJafTKZ/Pp1NOOUXPPfecLrroonyXBQAAcNBYAgwAAAAAAAAUMGYAAgAAAAAAAAWMABAAAAAAAAAoYASAAAAAAAAAQAEjAAQAAAAAAAAKGAEgAAAAAAAAUMAIAAEAAAAAAIACRgAIAAAAAAAAFDACQAAAAAAAAKCAEQACAAAAAAAABYwAEAAAAAAAAChgBIAAAAAAAABAASMABAAAAAAAAAoYASAAAAAAAABQwAgAAQAAAAAAgAJGAAgAAAAAAAAUMAJAAAAAAAAAoIARAAIAAAAAAAAFjAAQAAAAAAAAKGAEgAAAAAAAAEABIwAEAAAAAAAAChgBIAAAAAAAAFDACAABAAAAAACAAkYACAAAAAAAABQwAkAAAAAAAACggBEAAgAAAAAAAAXs/wM2Bf+BBhgcZwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 480, + "width": 640 + } + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(\n", + " pn.ggplot(\n", + " explored_df,\n", + " pn.aes(\n", + " x=\"boolean_complexity\",\n", + " y=\"literal_informativity\",\n", + " ),\n", + " )\n", + " + pn.geom_point(\n", + " # color=\"gray\",\n", + " pn.aes(\n", + " fill=\"iff\",\n", + " shape=\"type\",\n", + " ), \n", + " alpha=0.1,\n", + " )\n", + " + pn.geom_point(\n", + " natural_df,\n", + " pn.aes(\n", + " fill=\"iff\",\n", + " shape=\"type\",\n", + " ),\n", + " color=\"red\",\n", + " size=5,\n", + " )\n", + " + pn.geom_point(\n", + " dominating_df,\n", + " pn.aes(\n", + " fill=\"iff\",\n", + " shape=\"type\",\n", + " ), \n", + " color=\"black\",\n", + " size=5,\n", + " )\n", + " + pn.scale_fill_continuous(\"cividis\")\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### IB" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/nathanielimel/miniforge3/envs/ultk/lib/python3.11/site-packages/plotnine/layer.py:364: PlotnineWarning: geom_point : Removed 5011 rows containing missing values.\n", + "/Users/nathanielimel/miniforge3/envs/ultk/lib/python3.11/site-packages/plotnine/layer.py:364: PlotnineWarning: geom_point : Removed 4 rows containing missing values.\n", + "/Users/nathanielimel/miniforge3/envs/ultk/lib/python3.11/site-packages/plotnine/layer.py:364: PlotnineWarning: geom_point : Removed 4 rows containing missing values.\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQAAAAPACAYAAABq3NR5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAB7CAAAewgFu0HU+AAEAAElEQVR4nOz9d6BnV13v/z93L59+2pT0EEhAzQURoyJ8CRG8AiKK7apEwCCheREIJYLUgJAEkCJ4BUFAFIyEH0UBlSIEIsWAIYEE0qecOe3Tdy+/Pw5zyJBMCpkzk5y8Hv9ksvZnr70+exZDzmveay2jrusaERERERERERER2ZLMIz0AERERERERERER2TwKAEVERERERERERLYwBYAiIiIiIiIiIiJbmAJAERERERERERGRLUwBoIiIiIiIiIiIyBamAFBERERERERERGQLUwAoIiIiIiIiIiKyhSkAFBERERERERER2cIUAIqIiIiIiIiIiGxhCgBFRERERERERES2MAWAIiIiIiIiIiIiW5gCQBERERERERERkS1MAaCIiIiIiIiIiMgWpgBQRERERERERERkC1MAKCIiIiIiIiIisoUpABQREREREREREdnCFACKiIiIiIiIiIhsYQoARUREREREREREtjAFgCIiIiIiIiIiIluYAkAREREREREREZEtTAGgiIiIiIiIiIjIFqYAUEREREREREREZAtTACgiIiIiIiIiIrKFKQAUERERERERERHZwhQAioiIiIiIiIiIbGEKAEVERERERERERLYwBYAiIiIiIiIiIiJbmAJAERERERERERGRLUwBoIiIiIiIiIiIyBamAFBERERERERERGQLUwAoIiIiIiIiIiKyhSkAFBERERERERER2cIUAIqIiIiIiIiIiGxhCgBFRERERERERES2MAWAIiIiIiIiIiIiW5gCQBERERERERERkS1MAaCIiIiIiIiIiMgWZh/pAcg928rKypEewu3yfR/TNKmqiiRJjvRwtiTDMAiCgDiOqev6SA9nS9I83nyax5tP83jzaR5vPs3jzad5vPk0jzef5vFdNzc3d6SHILKlqAJQtrwgCAjDkCAIjvRQtizTNAnDENPUHymbRfN482kebz7N482nebz5NI83n+bx5tM83nyaxyJyd6M/jURERERERERERLYwBYAiIiIiIiIiIiJbmAJAERERERERERGRLUwBoIiIiIiIiIiIyBamAFBERERERERERGQLUwAoIiIiIiIiIiKyhSkAFBERERERERER2cIUAIqIiIiIiIiIiGxhCgBFRERERERERES2MAWAIiIiIiIiIiIiW5h9pAdwOPX7fT7ykY/wjW98g6WlJcIw5D73uQ+/8iu/ws/+7M/e6f4uvfRSPv7xj3PjjTeSJAnz8/OcdtppPOEJT6DT6dzqPdPplI9//ONccskl7Nu3D9d1OfbYY/mlX/olHvnIRx70Wddddx0XXXQRV111Ff1+n263y6mnnsrjH/94TjjhhFu9ZzKZcPHFF/Nf//VfLC4uArCwsMDP/MzP8MQnPvGgYxQRERERERERka3DqOu6PtKDOBz27NnDueeey9raGqZpMjMzQxzHTKdTAJ7whCfw1Kc+9Q739573vIeLL74YgCAIaDQarK2tUVUVs7OzvPrVr+boo48+4J7hcMi5557LTTfdBMDs7CxZljEejwF46EMfyjnnnINpHliYeemll/L617+esixxHIder8dgMCDLMhzH4XnPex4PfehDD7hnZWWFF7/4xSwtLQHQ7XYpy3LjWb1ej/POO+8WY7yzVlZW7tL9h0Ov18OyLMqypN/vH+nhbEmWZdHr9ej3+5RleaSHsyVpHm8+zePNp3m8+TSPN5/m8ebTPN58msebT/P4rpubmzvSQxDZUu4VFYBVVfG6172OtbU1TjrpJF74wheyfft2qqric5/7HG9729v46Ec/yn3ve18e9rCH3W5/X/rSl7j44osxTZOzzjqLX/mVX8GyLFZXVzn//PO58soref3rX8+b3/xmLMvauO/Nb34zN910E9u3b+fFL34xJ554IgBf+9rXuOCCC7jkkks46aSTeOITn7hxz/LyMueffz5lWXLGGWdw1lln0Wg0SJKE973vfXziE5/gL//yLznxxBPZsWPHxn1vectbWFpa4qSTTuKcc87ZuHbttddy4YUXctNNN3HhhRfypje96VC9ZhERERERERERuRu6V+wB+MUvfpEbbrgB13V5yUtewvbt2wEwTZMzzjiDX/7lXwbggx/84O32Vdf1xuf+9//+3zzucY/bCPlmZ2c555xzsG2bG264gS996Usb9333u9/lG9/4BgDnnHPORvgH8JCHPITf+Z3fAeCf//mfSdN049qHP/xh8jzn+OOP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/wVV5a+JRESDhn+y08D59a9/jccffxy6ruO8884rljLIsowjjjgCDz30EH7605/i2muvZQBIC2q+783uL5zPetazelo30bb6wQ9+gJtvvhmjo6P9LoVomvm8P/nnMS12//mf/4nx8XGUy2Wcd955cBynOLZixQp8+tOfxumnn47169fjN7/5DQ455JA+VktERL3AISA0cO666y4AwEEHHTTjPiaHH344AGDt2rV47LHHFrI02snN9725fv16AMDy5cvnr0iiedRsNpEkCWq1Gmq1GnRd73dJRIX5vD/55zEtdvfeey8A4GUve9mU8K/r2c9+dhFg33///QtaGxERLQx2ANJAybKs+B+cF73oRTOes2LFCmiahjiO8cADD2DPPfdcwAppZ9WLe7PbccJfOGmx+vCHP4wPf/jDxfdXXHEFbrvttj5WRPSM+bw/2QFIi934+DgAzLlnsCznvSFxHC9ITUREtLAYANJAaTQaaLfbAIDddtttxnMURcHSpUuxbt264m/siXqtF/dm9xzXdbFq1Srcf//9cF0XlUoFL3jBC3Dcccdh3333nb+LICKiGXUDwL/97W/43ve+h4ceeghBEGBoaAgHHHAA3vrWt+LZz352n6ukndk555yDNE1nHQz2xBNPYO3atQCA5zznOQtZGhERLRAGgDRQugELAFSr1VnPK5VKAPLghGgh9OLe7P7CeeWVVwIAhoeHYds2xsfH8etf/xp33XUX3vve9+Id73jH9pRORESb0f0LmS9+8YvFhHchBDZu3Ihf/OIXuPPOO/Hxj38cr3vd6/pcKe2s5lriPjo6issuuwxZlsFxHBx22GELWBkRES0UBoA0UCaHJnP9j053slmapj2viQjozb3Z/YXzla98JU455ZRiKfC6devwrW99C/fccw+uvvpqLF++nANviIh6pNFowPd9AMBRRx2Fd7/73RgaGgKQT1f953/+ZzzwwAP42te+hmc961nYb7/9+lkuUUEIgV/+8pf4zne+g3a7DVVVcdZZZ6FSqfS7NCIi6gEGgDRQuuEJAIRhOOt53b1NTNPseU1EwPzfm2ma4vTTT4emaTj44IMhSVJxbNddd8UFF1yA888/H/fddx++//3vMwAkIuoRTdPwqU99Co7j4MADD5xybMWKFbj44otxxhln4Omnn8b111+Pz372s32qlOgZDz30EL75zW/igQceAAAsXboUn/zkJ/HCF76wz5UREVGvMACkgVIul4uv51pC2el0AKD4G3qiXpvve1NRlDmX6MiyjDe84Q2477778OSTT8J13Rmn/hER0fbZ3JJJwzBw+OGH49prr+V0Veq7TqeDq666CrfeeiuEEFBVFW9+85vxzne+E7Zt97s8IiLqIQaANFCWLVsGVVWRJAnWrVuH/ffff9o5aZpidHQUALD77rsvdIm0k+rHvTl5r8EoihgAEhH1SXdJJaerUj+tW7cOK1euLLYQOeSQQ/D+97+/2EKEiIgGm9zvAojmk6IoxdTTe++9d8ZzHn74YcRxDFmWZwxhiHphvu/NW265BVdeeSVuv/32Wc958sknAQCWZc05eISIiLbd9ddfjyuvvBL33HPPrOc89dRTAIBddtllocoimiIIgiL8q1QquPDCC3HOOecw/CMi2okwAKSB012Gc/fdd6PVak07/pOf/AQAcOCBB3KTY1pQ83lvNhoN3HrrrbjuuuuQJMm043Ec46c//SkA4OUvfzlkmX/cExH1wvr163Hrrbfi//yf/zPj8VarVfxlzUEHHbSQpREVbrnlFqxfvx6maWLlypXT9qskIqLBx98IaeAcccQReNazngXf97Fq1SqMjY0ByJdAXnvttbjzzjuhqire//7397lS2tlsy7354IMP4rTTTsNpp52GBx98sPj56173OhiGgfXr1+PSSy/Fxo0bi2NjY2P40pe+hPXr10PXdbzrXe9auIskIhpQ//mf/1n8edz98xsA3vjGN0KWZdx77734xje+MeUveNauXYtVq1bBdV1Uq1Ucf/zx/SidCP/3//5fAMCb3/xmrFixos/VEBFRP3APQBo4uq7j3HPPxYUXXoj77rsPH/rQhzAyMoJWq4UwDCHLMk477TTsscce/S6VdjLbcm+GYYi1a9cWX3d1p/Vdfvnl+O1vf4v/+q//wsjICIA8AOxu7P3JT36Se10SEc0Dz/OKP48nd14/73nPw6mnnopvfetbuOWWW3DrrbdiyZIlSJIE4+PjAPJBIeeddx63Y6C+EELg//2//wcAuP3223H33XfPef4xxxyDY489diFKIyKiBcQAkAbSXnvthSuuuALXX3897rnnHtTrdZTLZRx44IF4y1veguc///n9LpF2UvN5b77qVa/CXnvthdWrV+P3v/89RkdHoaoqdtttN7z4xS/Gcccdh1133bWHV0NERABw7LHHYv/998ePfvQj/PnPf8bY2Bh0Xceee+6Jl7zkJTjuuOOKv6QhWmjtdrsIrbvDxuYy0zYlRES045OEEKLfRRAREREREREREVFvcA9AIiIiIiIiIiKiAcYAkIiIiIiIiIiIaIAxACQiIiIiIiIiIhpgDACJiIiIiIiIiIgGGANAIiIiIiIiIiKiAcYAkIiIiIiIiIiIaIAxACQiIiIiIiIiIhpgDACJiIiIiIiIiIgGGANAIiIiIiIiIiKiAcYAkIiIiIiIiIiIaIAxACQiIiIiIiIiIhpgDACJiIiIiIiIiIgGGANAIiIiIiIiIiKiAcYAkIiIiIiIiIiIaIAxACQiIiIiIiIiIhpgDACJiIiIiIiIiIgGGANAIiKinZwkSZAkCQcffPCUn1911VXFsTvuuKM/xdFWWcyf2cqVK4vabr755n6XQ0RERLRTUftdABERERHt3BqNBq644goAwAtf+EK8/e1v729BRERERAOGASARERER9VWj0cDnPvc5AMA73/lOBoBERERE84wBIBER0U5OCNHvEmgnsHLlSqxcubLfZRARERHtlLgHIBERERERERER0QBjAEhERERERERERDTAGAASERHt5GabArypJEnwjW98A6985StRq9VQKpXwohe9COeffz5GR0cXpNaNGzfiggsuwItf/GKUy2VYloUVK1bggx/8INasWTPnY9M0xXe+8x0cddRR2HXXXWEYBnbZZRccddRR+M53voM0TWd97J577glJknDUUUcBAB5//HF84hOfwD777APbtrH33nvjlFNOwSOPPFI85sEHH8Tf/d3f4bnPfS5M08Ty5ctx3HHH4Ve/+tWMr/GBD3wAkiRhyZIlAIBOp4PLL78cBx54IGq1Gmq1Gl796lfjn/7pn+asdUv85S9/wcc//nHsu+++cBwHIyMjOPjgg/GP//iPGB8fn3Z+vV7H8uXLi3tl1apVsz734YcfXpw3ecnvTFOA77jjDkiShOc+97nFef/+7/9enPfYY4/hne98Z/H9d7/73Tmv6/vf/35x7oc//OGtfFeIiIiIBpggIiKinRoAAUAcdNBBU37+ne98pzj2gx/8QLz0pS8tvt/0n6GhIXHnnXf2tM6f/exnYnh4eNYaZFkWK1eunPGxjz/+uDjggANmfSwA8cIXvlA8/PDDMz5+jz32EADEG9/4RnHzzTeLcrk843NUKhXxxz/+Udx4443Ctu0Zz1EURVx33XXTXuPkk08WAMTIyIj461//KlasWDFrrQcddJDYuHHjtOeY/JndfvvtM17L5z73OaGq6qzPvWxgZPkRAAAQ6UlEQVTZMvHjH/942uOuv/764hzLssQjjzwy7ZyrrrpqyvsZhmFx7MILLyyO/exnPxNCCHH77bfP+Zk8+uij4oYbbii+P+GEE2a8pq53vetdxbm33nrrnOcSERER7Uw4BISIiIg268Mf/jCazSbK5TLe/e53Y7/99sP4+DhuuOEG3H///ajX6zj66KOxZs0aPP/5z5/317/jjjtw/PHHI4oiAMCRRx6Jww8/HJZl4Z577sH111+POI6xcuVK7LPPPnjPe95TPHbjxo049NBD8cQTTwAAnv/85+OEE07AsmXL8PTTT+NHP/oR/vrXv+Ivf/kLXvWqV2HNmjXYfffdZ6zjr3/9K9761rciDEO87W1vw6tf/Wq0Wi1897vfxaOPPopWq4V3vOMdePLJJxEEAV75ylfizW9+M2RZxs0334w77rgDaZritNNOw7HHHotSqTTtNYIgwNFHH41HH320qHVkZAQPPfQQrr32WrRaLfz2t7/F0Ucfjbvvvhuapm3x+3jBBRfgC1/4AgBgaGgI7373u/G85z0P7XYbd955J37xi19gw4YNOOGEE/Af//EfeMMb3lA89u1vfzve8pa3YPXq1fB9H6effjp+8pOfFMfHxsbwqU99CgCgKAq+/e1vQ9f1Oet53vOeh//9v/83xsbGcMEFFwAAXvayl+FDH/oQAGBkZARvetObUCqV0Ol0cMsttyAIApimOe254jjGz372MwDA0qVLcfjhh2/x+0JEREQ08PqdQBIREVF/YQs6AAGIV7ziFWLdunVTzomiSLz3ve8tznnta1877/V1Op2iA0+SJPGv//qv08659dZbhSRJAoDYZ599phw78cQTi/pOO+00kSTJlONZlolzzz23OOd1r3vdtOfvvj4AUSqVxB133DHl+OjoqBgaGpryfl166aXTnucjH/lIcfyGG26YcqzbAdj95+/+7u9EmqZTzlm/fr3Yf//9Z32NuToAf/WrXxXv0SGHHCJGR0en1XfTTTcJTdMEALH77rtP6eATQoi1a9eKarVavMaNN95YHPvgBz9Y/Pzss8+e9twzdQB2Pfroo8Wxd77zndMeO7mz7yc/+cm040IIccstt0x574iIiIjoGdwDkIiIiDZreHgYN910E571rGdN+bmmafjWt76F3XbbDUDeqXfvvffO62tfffXVePzxxwEAJ510Ek455ZRp5xx55JE46aSTAAAPPfRQUcNf//pX/OAHPwAAHHDAAbjyyiuhKMqUx0qShC9+8YtFx9htt92G3/72t7PW84UvfAGvec1rpvxsZGQERx55ZPH9a17zGpxzzjnTHtutEQD+9Kc/zfoa++67L77xjW9Alqf+r9ouu+yCa6+9FpIkAQCuvPJKZFk26/NM9tnPfhZCCAwPD2P16tUYGRmZds6xxx5b1P3UU0/hhhtumHJ81113xZe+9KXi+zPPPBOu6+LXv/41vvOd7wAAVqxYgYsuumiLatpS73znO4uvf/SjH814zuSfn3jiifP6+kREREQ7OgaAREREtFmnnHIKli1bNuMx0zSnDFz45S9/Oa+vfc011xRfn3HGGbOed+KJJ8IwDBiGgb/85S8A8vCw6+yzz54W/k02+RpuuummGc+RZRknn3zyjMeWL19efP22t71txnO6Az6AfGnybE4//fRZaz3ggAPw2te+FkAe0m1J4Proo4/ijjvuAACcfPLJM4Z/XZPfh1tvvXXa8VNPPbV4/SeffBLnn38+PvrRj0IIAUmS8C//8i+wLGuzNW2No446CuVyGUD+2QghphwXQuDHP/4xgDwk3TSgJSIiItrZMQAkIiKizdrcfmqTu9/++Mc/ztvrxnFcTPddtmwZDjzwwFnPPfbYYxEEAYIgKDrG7rrrrinH5/L617+++Pq//uu/Zjxnr732QrVanfGYbdvF13vvvfeM53Q79wDA9/1Za9nc+33EEUcUX//hD3+Y81wAUyYP/4//8T/mPHePPfYogsr//u//nnZ805Dva1/7Gu677z4AwEc+8pEiHJxPpmniuOOOAwCsX79+2uezZs0aPPXUUwCAE044Yc6gl4iIiGhnxACQiIiINuu5z33unMdXrFhRfD02NjZvr/vYY48hCAIA+fCOyQHalnjwwQcBAM9+9rMxNDQ057kjIyPFQI0NGzbMeM7kDr65TA4Dt5YkSZsdpLLHHnsUX4+Ojm72OR944IHi65NPPhmSJM35T/c5Z+tSXLFiBT73uc9N+dnuu++Oyy67bLO1bKvJy3o3XQa8evXq4ut3vOMdPauBiIiIaEfFAJCIiIg2y3GcOY9Pnmbred68vW6j0Si+3tLwbbJ6vQ4gnwq7OZIkFdfhuu6M5xiGsdU1bK1KpTJt779N1Wq14utuQDqX8fHxbaplrs/y+OOPn/L9EUccgUqlsk2vsyXe+MY3Ft2XmwaA3e+XL1/O5b9EREREM1D7XQAREREtfu12e87jk5ezdvdqmw9xHBdfb8u+ct294jbdM24mURQVgWMvg6zN0XV9s+dMfr8nh4Gzmdw5eeaZZ262w7BrrsDzYx/72JTvr776anzkIx/Bq171qi167q1lGAaOP/54fO9738N9992Hhx9+GCtWrMAjjzxS7Pn4tre9bbPhKREREdHOiAEgERERbdZcAyuAfBhE16677jpvrzs53NqWpcVDQ0NYv349/va3v2323HXr1hVB4Xxew9aq1+vFQI3ZrF27tvh6eHh4s885+ZzXvOY1eOtb37pdNX77298uhr0sW7YMGzZsQJZlOPXUU/GHP/yhZ52SJ554Ir73ve8ByLv+zj777CnLfydPCyYiIiKiZ/CvSImIiGizfvOb38x5/J577im+fulLXzpvr7v33nsXHXEzDaSY7Oc//zn23HNP7LnnnsVE2P322w9AHu6tW7duzsffdtttxddzDRvptSRJcP/99895zu9+97vi6wMOOGCzz/mCF7yg+Lo7sGM2Qghcd911uOaaa6YMD+l6+umn8alPfQoAoGkabrvtNhx88MEAgPvvvx8XX3zxZuvZVq9//euLULj7GXeX/+6222445JBDevbaRERERDsyBoBERES0WT/84Q/nPP7v//7vAABZlvHGN75x3l7XMAy88pWvBJCHeHMFkddddx0ef/xxPP7443je854HADjssMOK49dee+2cr/X973+/+HpzE4N7bXJX26YajQZuuukmAPneht2Qcy6HHXZY0VG46f55m/rlL3+J97znPXjf+943JRTt+sQnPlEslf6f//N/4gUveAH++Z//GaqaLyy59NJL8ec//3mzNW0LXdeL7sW77roLf/3rX4tJzyeeeOJWD4khIiIi2lkwACQiIqLN+t3vfjdrgHbzzTcXy0GPOeYY7LbbbvP62qeeemrx9QUXXDDjfn6///3vcc011wAA9t9//2KPu1NOOQWKogDIg6nJS2cnu/vuu4treOlLX4qXvexl83oNW+vLX/7yrLV+8pOfLPZk/OAHP7hFz7f77rvjmGOOAZB/ltdff/2M57VaLZxxxhkA8u6+TZ//xhtvxI033gggn6z8mc98BgDw4he/GJ/85CcB5Ps2fuhDH0KapltUGzB138PN7TfZnQacpilOO+204nXe/e53b/HrEREREe1sGAASERHRFvnABz6ASy+9tJisG4YhrrrqqmLfNU3TcOmll87767773e8uArlf/vKXeNe73oVHH30UAJBlGW655RYcf/zxSJIEAHDeeecVj91jjz2KQGt0dBSHHXYYfvzjHxfDRXzfx/e+9z0ce+yxyLIMkiThK1/5yrxfw9aq1+s49NBDcdNNNxXX9cQTT+B973sfrrrqKgD5/ohnn332Fj/nZZddBtu2AQAnn3wyvvrVr6LZbALIw7Rbb70VhxxySLH8+Oyzz8ZznvOc4vGNRgOf+MQniu+vuOKKKdOhV65ciT322ANAHjJ+9atf3eLadtlll6KD8NZbb8X555+Pr33ta2i1WtPOPfLII4s9De+44w4AwIoVK/Dyl798i1+PiIiIaGfDAJCIiIg26zOf+QziOManP/1pDA8Po1arwXEcnHLKKUVI881vfnOLlqNuLUVR8P3vf78YzPGDH/wAe+21V1HDUUcdhaeeegoA8L73vQ/vfe97pzx+1apVeP3rXw8AeOSRR3D88cfDsiwMDw/DcRycfPLJRah5+eWXT1k23C/vec978Oijj+K4446DaZoYGhrCHnvsUXQ5GoaB1atXY+nSpVv8nPvttx+uueYaGIYB3/dx1llnYWhoCMPDw7BtG294wxuKpbvHHXccLrrooimP/9SnPoWnn34aAHDUUUfhhBNOmHLctm184xvfKL7/zGc+UwS1m6MoCo4//ngAeQfhJZdcgjPPPBPj4+PTzlVVddoQk5NOOmmLXoeIiIhoZ8UAkIiIiDbrIx/5CL71rW8VnVfNZrNYernrrrti9erV+MAHPtCz1997771x11134aijjip+1mw2EQQBgHzK7Ze+9CVcddVV0/aBM00TN910E/7hH/4BlmUByDveutN2gbyD7Ec/+hHOOuusnl3D1rjqqqtwxhlnQNM0pGla7LkHAC960Ytw++234zWvec1WP+9b3/pW/OpXvyo6KoUQqNfriKIIQD7R94tf/CJWr15ddOQB+YCUb3/72wDy8PHKK6+c8fmPOeYYvO1tbwMAeJ6HD3/4w1tc21e/+lUcc8wxcBwHmqZhr732Kj6vTU2e9itJEt73vvdt8esQERER7YwkMdNGOkREREQz6HQ6+PnPf45HHnkEuq5j//33x+GHH17ss7cQHnroIfzqV7/C3/72N9i2jf322w+HHXbYrGHRZJ1OB7/85S/xyCOPIAxDLF26FC996Uvxkpe8ZAEqn9sHPvABfPe73wWAIphct24dbrvtNjz11FOwbRsvf/nLcfDBB8/LsIs//elP+M1vfoPR0VE4jlN8lpqmbfdz91ocxyiVSoiiCIceeuiM04qJiIiI6BkMAImIiIgWgZkCQJrZL37xi2JZ91VXXYWTTz65zxURERERLW7q5k8hIiIi2jpr167FEUccsV3PsdtuuxWTeYkm+9a3vgUAqFareMc73tHnaoiIiIgWPwaARERENO/iOMYDDzywXc/R3d+PaLLHH38cP/zhDwEAp5xySjHZmIiIiIhmxwCQiIiI5t2ee+7JZaw0b2677TbccsstcBwH3/3udxFFEVRVxZlnntnv0oiIiIh2CAwAiYiIiGhRe+KJJ3DZZZdN+dmZZ56JPffcsz8FEREREe1gGAASERER0aI2NDQEy7KQJAn23HNPnHLKKTjnnHP6XRYRERHRDoNTgImIiIiIiIiIiAaY3O8CiIiIiIiIiIiIqHcYABIREREREREREQ0wBoBEREREREREREQDjAEgERERERERERHRAGMASERERERERERENMAYABIREREREREREQ0wBoBEREREREREREQDjAEgERERERERERHRAGMASERERERERERENMAYABIREREREREREQ0wBoBEREREREREREQDjAEgERERERERERHRAGMASERERERERERENMAYABIREREREREREQ0wBoBEREREREREREQDjAEgERERERERERHRAGMASERERERERERENMAYABIREREREREREQ0wBoBEREREREREREQDjAEgERERERERERHRAGMASERERERERERENMAYABIREREREREREQ0wBoBEREREREREREQDjAEgERERERERERHRAGMASERERERERERENMD+P9A2zGGUxGYPAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 480, + "width": 640 + } + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(\n", + " pn.ggplot(\n", + " explored_df,\n", + " pn.aes(\n", + " x=\"ib_complexity\",\n", + " y=\"ib_accuracy\",\n", + " ),\n", + " )\n", + " + pn.geom_point(\n", + " # color=\"gray\",\n", + " pn.aes(\n", + " fill=\"iff\",\n", + " shape=\"type\",\n", + " ), \n", + " alpha=0.1,\n", + " )\n", + " + pn.geom_point(\n", + " natural_df,\n", + " pn.aes(\n", + " fill=\"iff\",\n", + " shape=\"type\",\n", + " ),\n", + " color=\"red\",\n", + " size=5,\n", + " )\n", + " + pn.geom_point(\n", + " dominating_df,\n", + " pn.aes(\n", + " fill=\"iff\",\n", + " shape=\"type\",\n", + " ), \n", + " color=\"black\",\n", + " size=5,\n", + " )\n", + " + pn.geom_line(\n", + " ib_bound_df,\n", + " color=\"black\",\n", + " )\n", + " + pn.scale_fill_continuous(\"cividis\")\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Closing thoughts\n", + "\n", + "- We showed how to directly compare two approaches to efficient communication analyses of language, using modal typological data as a test case\n", + "- Interestingly, while natural languages appear to optimize both (1) a trade-off between boolean complexity and literal informativity and (2) a trade-off between information theoretic complexity and accuracy as defined by the Information Bottleneck framework, there are significant qualitative and quantitative predictions between each analysis. In particular, neither measures of complexity or informativeness are perfectly correlated; some languages that are dominating in the evolutionary algorithm are significantly more sub-optimal than natural languages in the IB analysis here.\n", + "- There are multiple choice points involved in both approaches. \n", + " - For boolean/grammatical complexity, one must hand-specify a grammar corresponding to an internal representation language (i.e. an LoT) for the domain. \n", + " - We could have chosen various pragmatic measures of informativity.\n", + " - In IB, it is crucial to define the domain in terms of meaning distributions that are not deterministic -- and here $\\gamma$ is a free parameter. \n", + " - More generally, ULTK's EvolutionaryOptimizer can be used to search for heuristic solutions to multi-objective, non-convex optimization problems as defined by any pair of language measures\n", + " - In IB, there are information-theoretically optimal solutions for efficient compression in a particular domain. In this example, we have directly computed this bound numerically via the Blahut-Arimoto algorithm. However, for universes of large cardinality, this algorithm becomes slow or infeasible.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### References\n", + "1. Imel, N. & Guo, Q. & Steinert-Threlkeld, S. (2023). An Efficient Communication Analysis of Modal Typology. https://lingbuzz.net/lingbuzz/007392\n", + "2. Pyatkin, V. et al. (2021). The Possible, the Plausible, and the Desirable: Event-Based Modality Detection for Language Processing. ACL-IJCNLP. https://aclanthology.org/2021.acl-long.77\n", + "3. Steinert-Threlkeld, S. & Imel, N. & Guo, Q. (2023). A Semantic Universal for Modality. Semantics and Pragmatics. https://doi.org/10.3765/sp.16.1\n", + "4. Zaslavsky, N. & Kemp, C. & Regier, T. & Tishby, N. (2018). Efficient compression in color naming and its evolution. PNAS. https://doi.org/10.1073/pnas.1800521115" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ultk", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/examples/modals/util.py b/src/examples/modals/util.py new file mode 100644 index 0000000..871c5e0 --- /dev/null +++ b/src/examples/modals/util.py @@ -0,0 +1,177 @@ +import requests +import yaml +import pandas as pd +from tqdm import tqdm +from typing import Any + +from ultk.language.semantics import FrozenDict, Universe +from ultk.language.language import Expression, Meaning, Language + + +ALLOWED_REFERENCE_TYPES = ["paper-journal", "elicitation"] +REFERENCE_GRAMMAR = "reference-grammar" +REFERENCE_TYPES = [REFERENCE_GRAMMAR] + ALLOWED_REFERENCE_TYPES +REFERENCE_TYPE_KEY = "Reference-type" +LANGUAGE_IS_COMPLETE_KEY = "Complete-language" +FAMILY_KEY = "Family" + +METADATA_FN = "metadata.yml" +MODALS_FN = "modals.csv" + +API_URL = "https://api.github.com/repos/nathimel/modals-effcomm/contents/data/natural_languages?ref=main" + +UNIVERSE = Universe.from_csv("./data/universe.csv") + + +def load_natural_languages(universe: Universe = UNIVERSE) -> list[Language]: + return dataframes_to_languages(get_modals_data(), universe) + + +def get_modals_data() -> dict[pd.DataFrame]: + # Make the request + response = requests.get(API_URL) + if response.status_code != 200: + raise Exception( + f"Failed to fetch folder contents: {response.status_code}\n{response.text}" + ) + + # Parse the response JSON + contents = response.json() + + # Filter for subfolders (type == 'dir') + subfolders = [item["name"] for item in contents if item["type"] == "dir"] + base_raw_link = f"https://raw.githubusercontent.com/nathimel/modals-effcomm/refs/heads/main/data/natural_languages" + + path_map = { + subfolder: { + "modals": f"{base_raw_link}/{subfolder}/modals.csv", + "metadata": f"{base_raw_link}/{subfolder}/metadata.yml", + } + for subfolder in subfolders + } + + dataframes = load_csvs(path_map) + return dataframes + + +def load_csvs(language_dirs: dict[str, dict[str, str]]) -> dict[str, pd.DataFrame]: + dataframes = dict() + print(f"Loading modals data from {API_URL}") + for lang in tqdm(language_dirs): + # Ensure that is one of allowed reference types + metadata_path = language_dirs[lang]["metadata"] + response = requests.get(metadata_path) + + # Parse the YAML content as dict + try: + metadata = yaml.safe_load(response.text) + except yaml.YAMLError as e: + raise Exception(f"Error parsing YAML: {e}") + + reference_type = metadata[REFERENCE_TYPE_KEY] + # must be paper-journal or elicitation + if reference_type in ALLOWED_REFERENCE_TYPES: + modals_fn = language_dirs[lang]["modals"] + if FAMILY_KEY not in metadata: + pass + dataframes[lang] = pd.read_csv(modals_fn) + else: + # Skip reference-grammar obtained data if incomplete. + print(f"Data for {lang} is of type {reference_type}; skipping.") + + return dataframes + + +def process_can_express(val: Any, can_express: dict = {True: [1], False: ["?", 0]}): + """For an observation of whether a modal can_express a force-flavor pair, interpret ? as 1. + + Note that the existence of ? in the csv confuses pandas, and causes the type of can_express to be str. + + Args: + val: the value of the can_express column, possibly an int or str + + Returns: + boolean representing 'yes' if the value should be interpreted as True, False otherwise + """ + if isinstance(val, int): + return val + if val.isnumeric(): + return bool(int(val)) + + # different results depending on interpretation of '?' + if val in can_express[True]: + return True + return False + + +def dataframes_to_languages( + dataframes: dict[str, pd.DataFrame], universe: Universe +) -> list[Language]: + """Convert a list of dataframes to a list of ultk Languages.""" + languages: list[Language] = [] + for language_name, df in dataframes.items(): + print(f"Adding {language_name}") + lang = dataframe_to_language(df, language_name, universe) + if lang is not None: + languages.append(lang) + return languages + + +def dataframe_to_language( + df: pd.DataFrame, + language_name: str, + universe: Universe, +) -> Language: + """Construct a ultk Language from a dataframe of (expression, meaning) observations by iterating over each row and indicating whether the expression can express the meaning.""" + forces = set(ref.force for ref in universe) + flavors = set(ref.flavor for ref in universe) + + vocabulary = {} + + # only look at positive polarity modals + if "polarity" in df: + df_positive = df[df["polarity"] == "positive"] + else: + df_positive = df + + # add each observation + for _, row in df_positive.iterrows(): + modal = row["expression"] + # initialize an expression's set of meanings + if modal not in vocabulary: + vocabulary[modal] = set() + + # Add only the flavors specified as possible for the experiment + if row["flavor"] in flavors and row["force"] in forces: + if process_can_express(row["can_express"]): + observation = f"{row['force']}+{row['flavor']}" + vocabulary[modal].add(observation) + + # Convert vocabulary into list of Expressions + experiment_vocabulary = [] + for modal in vocabulary: + form = modal + meaning = Meaning( + mapping=FrozenDict( + {referent: referent.name in vocabulary[modal] for referent in universe} + ), + universe=universe, + ) + + if ( + meaning.is_uniformly_false() + ): # often there will be no usable referents due to can_express being False, above + continue + # search for a matching recorded meaning + experiment_vocabulary.append( + Expression( + form, + meaning, + ) + ) + + if experiment_vocabulary: + return Language( + expressions=experiment_vocabulary, name=language_name, natural=True + ) + return diff --git a/src/examples/signaling_game/README.md b/src/examples/signaling_game/README.md deleted file mode 100644 index 55d2689..0000000 --- a/src/examples/signaling_game/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Signaling game - -## Introduction - -A signaling game is a an evolutionary game theoretic model, wherein a Sender and Receiver aim to maximize a joint payoff by coordinating on signals. When strategies evolve towards such coordination over repeated plays of the game, this can model the emergence of communication. - -This example repo exists to demo simulations of the evolution of meaning using very simple reinforcement learning and ULTK tools. We use various ultk modules for the game objects and for analysis (esp. [ultk.effcomm.agent](../../ultk/effcomm/agent.py)). - -See a more scaled-up [example](https://github.com/nathimel/rdsg) of signaling game simulations using altk. - -## Running a simulation - -To run a basic signaling game simulation, use the following command: - -`python3 main.py` - -or - -`./run_example.sh` - -This will produce results in the folders `outputs/default` or `outputs/example`, respectively. They include plots, weights and the resulting 'languages'. - -## Experimenting - -
- Adjusting parameters and using ULTK more generally to do signaling games. - - -### Existing game parameters - -Run different games by supplying command line arguments, described in `python3 main.py -h`. One can vary, for example: - -- the number of states -- the number of signals -- the number of rounds in a game -- the learning rate - -### Using ULTK for signaling games - -The most general aspects of the communicative agents, measures of communicative success and the language primitives are implemented in ULTK. Some signaling-specific concepts and wrappers implemented in the `.py` files. - -This example is limited for simplicity, but is also intended to be an recylable outline for additional analyses, such as: - -- extending to more than two agents -- defining more powerful learning agents -- defining different or multiple objectives besides perfect recovery of atomic states -- exploring different evolutionary trajectories of languages in the 2D trade-off space. - -
- -## Links - -Here are a few links to more information about signaling games. -
- -Links - -
- -- The idea of a signaling game was introduced by David Lewis in his book, [Convention](https://www.wiley.com/en-us/Convention:+A+Philosophical+Study-p-9780631232568). -- A gentle but profound introduction to signaling games research is Brian Skyrms' book, [Signals](https://oxford.universitypressscholarship.com/view/10.1093/acprof:oso/9780199580828.001.0001/acprof-9780199580828). -- [EGG](https://github.com/facebookresearch/EGG) is a software library for emergent communication and includes a neural agent signaling game [example](https://github.com/facebookresearch/EGG/tree/main/egg/zoo/signal_game). - -References - -> Kharitonov, Eugene, Roberto Dessì, Rahma Chaabouni, Diane Bouchacourt, and Marco Baroni. 2021. “EGG: A Toolkit for Research on Emergence of LanGuage in Games.” . - -> Lazaridou, Angeliki, Alexander Peysakhovich, and Marco Baroni. 2017. “Multi-Agent Cooperation and the Emergence of (Natural) Language,” April. . - -> Lewis, David K. (David Kellogg). 1969. “Convention: A Philosophical Study.” Cambridge: Harvard University Press. - -> Skyrms, Brian. 2010. Signals: Evolution, Learning, and Information. Oxford: Oxford University Press. . - -
diff --git a/src/examples/signaling_game/__init__.py b/src/examples/signaling_game/__init__.py deleted file mode 100644 index 87b6181..0000000 --- a/src/examples/signaling_game/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -"""Example demonstrating how to extend the objects and tools in the `ultk.language` and `ultk.effcomm` modules to a specific use case. - -This example implements a dynamic Lewis-Skyrms 'atomic' signaling game. Two players, Sender and Receiver learn to coordinate on a shared language via rudimentary reinforcement learning. The evolution of meaning conventions is interesting from the efficient communication perspective because we can track the trajectory of the informativity and the cognitive cost of the players' languages. - -The `languages` file implements an extension of the fundamental ULTK language, expression, and meaning abstractions into the signaling game use case. - -The `agents` file shows how to extend the basic `ultk.effcomm.agent` objects to a dynamic learning agents. - -The driver script `main` invokes these implementations and runs the simulation of the learning dynamics on the signaling game. These details are implemented in the `learning` and `game` files, respectively. - -See the [README](https://github.com/CLMBRs/altk/tree/main/src/examples/signaling_game#readme) for more information. -""" diff --git a/src/examples/signaling_game/agents.py b/src/examples/signaling_game/agents.py deleted file mode 100644 index 9aa8efc..0000000 --- a/src/examples/signaling_game/agents.py +++ /dev/null @@ -1,46 +0,0 @@ -from ultk.effcomm.agent import CommunicativeAgent, Speaker, Listener -from ultk.language.semantics import Meaning -from languages import Signal, SignalMeaning, SignalingLanguage -from typing import Any - - -class Sender(Speaker): - """A Sender agent in a signaling game chooses a signal given an observed state of nature, according to P(signal | state).""" - - def __init__(self, language: SignalingLanguage, weights=None, name: str = None): - super().__init__(language, name=name) - self.shape = (len(self.language.universe), len(self.language)) - self.initialize_weights(weights) - - def encode(self, state: Meaning) -> Signal: - """Choose a signal given the state of nature observed, e.g. encode a discrete input as a discrete symbol.""" - index = self.sample_strategy(index=self.referent_to_index(state)) - return self.index_to_expression(index) - - def strategy_to_indices(self, strategy: dict[str, Any]) -> tuple[int]: - """Map a state -> signal strategy to `(referent, expression)` indices.""" - return ( - self.referent_to_index(strategy["referent"]), - self.expression_to_index(strategy["expression"]), - ) - - -class Receiver(Listener): - """A Receiver agent in a signaling game chooses an action=state given a signal they received, according to P(state | signal).""" - - def __init__(self, language: SignalingLanguage, weights=None, name: str = None): - super().__init__(language, name=name) - self.shape = (len(self.language), len(self.language.universe)) - self.initialize_weights(weights=weights) - - def decode(self, signal: Signal) -> SignalMeaning: - """Choose an action given the signal received, e.g. decode a target state given its discrete encoding.""" - index = self.sample_strategy(index=self.expression_to_index(signal)) - return self.index_to_referent(index) - - def strategy_to_indices(self, strategy: dict[str, Any]) -> tuple[int]: - """Map a signal -> state strategy to `(expression, referent)` indices.""" - return ( - self.expression_to_index(strategy["expression"]), - self.referent_to_index(strategy["referent"]), - ) diff --git a/src/examples/signaling_game/bounds.py b/src/examples/signaling_game/bounds.py deleted file mode 100644 index c271492..0000000 --- a/src/examples/signaling_game/bounds.py +++ /dev/null @@ -1,18 +0,0 @@ -import numpy as np - -from game import SignalingGame -from rdot.distortions import hamming -from rdot.ba import RateDistortionOptimizer - -# Generate a hamming bound -def generate_hamming_bound(sg: SignalingGame) -> list[tuple[float]]: - """Given an atomic signaling game, return a list of (rate, distortion) pairs corresponding to the rate distortion bound on the game.""" - state_arr = np.arange(len(sg.states)) - dist_mat = hamming(x=state_arr, y=state_arr) - - optimizer = RateDistortionOptimizer( - px=sg.prior, - dist_mat=dist_mat, - betas=np.logspace(-2, 10, 100) - ) - return [(result.rate, result.distortion) for result in optimizer.get_results() if result is not None] \ No newline at end of file diff --git a/src/examples/signaling_game/game.py b/src/examples/signaling_game/game.py deleted file mode 100644 index 06c13d8..0000000 --- a/src/examples/signaling_game/game.py +++ /dev/null @@ -1,87 +0,0 @@ -import numpy as np -from languages import State, Signal -from agents import Sender, Receiver -from typing import Callable - - -class SignalingGame: - """A signaling game is a tuple $(S, M, A, \sigma, \rho, u, P)$ of states, messages, acts, a sender, a receiver, a utility function, and a distribution over states. The sender and receiver have a common payoff, given by a communicative success function. - - In this signaling game, we identify the acts with the states. For more detail on the communicative success function, see ultk.effcomm.informativity.communicative_success. - """ - - def __init__( - self, - states: list[State], - signals: list[Signal], - sender: Sender, - receiver: Receiver, - utility: Callable[[State, State], int], - prior: np.ndarray, - ) -> None: - """Initialize a signaling game. - - Args: - states: the list of states of 'nature' that function as both input to the sender, and output of the receiver - - signals: the objects (which inherit from Expression) produced by the sender, and are input to receiver - - sender: a distribution over signals, given states - - receiver: a distribution over states, given signals - - utility: a measure of the pairwise utility of sender inputs and receiver outputs, typically the indicator function. - - prior: an array specifying the probability distribution over states, which can represent the objective frequency of certain states in nature, or the prior belief about them. - """ - # Main game parameters - self.states = states - self.signals = signals - self.sender = sender - self.receiver = receiver - self.utility = utility - self.prior = prior - - # measurements to track throughout game - self.data = {"accuracy": [], "complexity": []} - - -########################################################################## -# Helper functions -########################################################################## - - -def indicator(input: State, output: State) -> int: - return input == output - - -def distribution_over_states( - num_states: int, type: str = "deterministic", alpha: np.ndarray = None -): - """Generate a prior probability distribution over states. - - Varying the entropy of the prior over states models the relative communicative 'need' of states. A natural interpretation is also that these needs reflect objective environmental or cultural pressures that cause certain objects to become more frequent-- and so more useful-- for communication. - - Args: - num_states: the size of the distribution - - type: {'deterministic', 'random'} a str representing whether to generate a uniform prior or randomly sample one from a Dirichlet distribution. - - alpha: parameter of the Dirichlet distribution to sample from, of shape `(num_states)`. Each element must be greater than or equal to 0. By default set to all ones. Varying this parameter varies the entropy of the prior over states. - - Returns: - sample: np.ndarray of shape `(num_states)` - """ - if type == "deterministic": - sample = ( - np.ones(num_states) / num_states - ) # TODO: find how to generate uniform with alpha param in dirichlet - elif type == "random": - if alpha is None: - alpha = np.ones(num_states) - sample = np.random.default_rng().dirichlet(alpha=alpha) - else: - raise ValueError( - f"The argument `prior_type` can take values {{'uniform', 'random'}}, but received {type}." - ) - return sample diff --git a/src/examples/signaling_game/languages.py b/src/examples/signaling_game/languages.py deleted file mode 100644 index 4ef3e0b..0000000 --- a/src/examples/signaling_game/languages.py +++ /dev/null @@ -1,114 +0,0 @@ -from typing import Iterable -from ultk.language.language import Language, Expression -from ultk.language.semantics import Universe, Meaning, Referent - - -class State(Referent): - """In a simple Lewis-Skyrms signaling game, a state represents the observed input to a Sender and the chosen action of a Receiver; in both cases the state can be naturally interpreted as a meaning. Then the signaling game is about Receiver guessing Sender's intended meanings.""" - - def __init__(self, name: str) -> None: - """ - Args: - name: a str representing a single state in the universe. - """ - super().__init__(name) - - def __str__(self) -> str: - return self.name - - def __hash__(self) -> int: - return hash(self.name) - - def __eq__(self, __o: object) -> bool: - return self.name == __o.name - - -class StateSpace(Universe): - """The StateSpace represents the agents' environment.""" - - def __init__(self, states: Iterable[State]): - """Construct a universe shared by all agents in a signaling game. - - Args: - states: the list of _all_ states that can be referred to. - """ - super().__init__(states) - - def __hash__(self) -> int: - return hash(tuple(sorted(state.name for state in self.referents))) - - -class SignalMeaning(Meaning): - def __init__(self, states: list[State], universe: StateSpace) -> None: - """Construct the meaning of a signal as the set of states it can refer to. - - In ultk, Meanings can be generalized from a set of referents to distributions over those referents. by default, we let be a peaked distribution over a single point, where one state has probability 1.0, and all others 0.0. - - Args: - - states: the list of atomic states that a signal can be used to communicate. - - universe: the semantic space that the signal meaning is a subset of. - """ - super().__init__(states, universe) - - def yaml_rep(self) -> dict: - """Convert to a dictionary representation of the meaning for compact saving to .yml files.""" - return [str(state) for state in self.referents] - - -class Signal(Expression): - """In the simple atomic signaling game, a signal is a single discrete symbol encoding one or more states. - - One of the senses in which the signaling game is 'atomic' is that the signals are atomic -- they do not encode any special structure (e.g. features such as size, color, etc.). The only information they can encode about the states of nature are their identity. - """ - - def __init__(self, form: str, meaning: SignalMeaning = None): - """A signal is characterized by its form and meaning. - - We treat signals as equal up to form, even they might communicate different meanings. Note the `__eq__` and `__hash__` implementations encode this choice. - - Args: - - form: a str representing the identity of the signal, e.g. the sound a Sender produces and a Receiver hears. - - meaning: a SignalMeaning representing the set of states the signal can be used to refer to. Default is None to reflect the idea that in signaling games, signals do not have a standing meaning until convention is achieved. - """ - super().__init__(form, meaning) - - def yaml_rep(self): - """Convert to a dictionary representation of the expression for compact saving to .yml files.""" - return {"form": self.form, "meaning": self.meaning.yaml_rep()} - - def __str__(self) -> str: - return self.form - - def __eq__(self, __o: object) -> bool: - return self.form == __o.form - - def __hash__(self) -> int: - return hash(self.form) - - -class SignalingLanguage(Language): - """In the simple atomic signaling game, a language is a list of signals and their associated states.""" - - def __init__( - self, - signals: list[Signal], - data: dict = {"complexity": None, "accuracy": None, "name": None}, - ): - super().__init__(signals, data=data) - - def yaml_rep(self) -> dict[str, dict]: - """Get a data structure for safe compact saving in a .yml file. - - A dict of the language name and its data. This data is itself a dict of a list of the expressions, and other data. - """ - data = { - self.data["name"]: { - "expressions": [e.yaml_rep() for e in self.expressions], - "data": self.data, # e.g., complexity and informativity - } - } - return data diff --git a/src/examples/signaling_game/learning.py b/src/examples/signaling_game/learning.py deleted file mode 100644 index ddc0ebd..0000000 --- a/src/examples/signaling_game/learning.py +++ /dev/null @@ -1,71 +0,0 @@ -"""Simple Roth-Erev reinforcement learning dynamic for agents of a signaling game.""" - -import numpy as np -from ultk.effcomm.agent import CommunicativeAgent -from ultk.effcomm.informativity import communicative_success -from ultk.effcomm.rate_distortion import information_cond -from game import SignalingGame -from tqdm import tqdm -from typing import Any - - -def simulate_learning(g: SignalingGame, num_rounds: int, learning_rate=1.0) -> None: - """Simulate Roth-Erev reinforcement learning in the signaling game. - - Args: - num_rounds: the number of rounds to pay the signaling game. - - reward_amount: the amount to scale the utility function by, before rewarding agents with the result. - """ - - for _ in tqdm(range(num_rounds)): - # get input to sender - target = np.random.choice(a=g.states, p=g.prior) - - # record interaction - signal = g.sender.encode(target) - output = g.receiver.decode(signal) - amount = g.utility(target, output) * learning_rate - - # update agents - reward( - agent=g.sender, - strategy={"referent": target, "expression": signal}, - amount=amount, - ) - reward( - agent=g.receiver, - strategy={"referent": output, "expression": signal}, - amount=amount, - ) - - # track accuracy and complexity - g.data["accuracy"].append( - communicative_success( - speaker=g.sender, listener=g.receiver, utility=g.utility, prior=g.prior - ) - ) - g.data["complexity"].append( - information_cond(g.prior, g.sender.normalized_weights()) - ) - - return g - - -def reward(agent: CommunicativeAgent, strategy: dict[str, Any], amount: float) -> None: - """Reward an agent for a particular referent-expression behavior. - - In a signaling game, the communicative success of Sender and Receiver language protocols evolve under simple reinforcement learning dynamics. The reward function increments an agent's weight matrix at the specified location by the specified amount. - - Args: - strategy: a dict of the form {"referent": referent, "expression": Expression} - - amount: a positive number reprsenting how much to reward the behavior - """ - if set(strategy.keys()) != {"referent", "expression"}: - raise ValueError( - f"The argument `strategy` must take a dict with keys 'referent' and 'expression'. Received: {strategy.keys()}'" - ) - if amount < 0: - raise ValueError(f"Amount to reinforce weight must be a positive number.") - agent.weights[agent.strategy_to_indices(strategy)] += amount diff --git a/src/examples/signaling_game/main.py b/src/examples/signaling_game/main.py deleted file mode 100644 index de22f20..0000000 --- a/src/examples/signaling_game/main.py +++ /dev/null @@ -1,87 +0,0 @@ -import util -import vis -from agents import Receiver, Sender -from game import distribution_over_states, SignalingGame, indicator -from languages import State, StateSpace, Signal, SignalMeaning, SignalingLanguage -from learning import simulate_learning -from bounds import generate_hamming_bound - - -def main(args): - # load game settings - num_signals = args.num_signals - num_states = args.num_states - num_rounds = int(float(args.num_rounds)) - learning_rate = args.learning_rate - prior_type = args.distribution_over_states - seed = args.seed - - util.set_seed(seed) - - ########################################################################## - # Define game parameters - ########################################################################## - - # dummy names for signals, states - state_names = [f"state_{i+1}" for i in range(num_states)] - signal_names = [f"signal_{i+1}" for i in range(num_signals)] - - # Construct the universe of states, and language defined over it - universe = StateSpace(tuple([State(name=name) for name in state_names])) - - # All meanings are dummy placeholders at this stage, but they can be substantive once agents are given a weight matrix. - dummy_meaning = SignalMeaning(states=universe.referents, universe=universe) - signals = [Signal(form=name, meaning=dummy_meaning) for name in signal_names] - - # Create a seed language to initialize agents. - seed_language = SignalingLanguage(signals=signals) - sender = Sender(seed_language, name="sender") - receiver = Receiver(seed_language, name="receiver") - - # Construct a prior probability distribution over states - prior_over_states = distribution_over_states(num_states, type=prior_type) - - ########################################################################## - # Main simulation - ########################################################################## - - signaling_game = SignalingGame( - states=universe.referents, - signals=signals, - sender=sender, - receiver=receiver, - utility=lambda x, y: indicator(x, y), - prior=prior_over_states, - ) - signaling_game = simulate_learning(signaling_game, num_rounds, learning_rate) - - ########################################################################## - # Analysis - ########################################################################## - - accuracies = signaling_game.data["accuracy"] - complexities = signaling_game.data["complexity"] - languages = [ - agent.to_language( - # optionally add analysis data - data={"accuracy": accuracies[-1]}, - threshold=0.2, - ) - for agent in [sender, receiver] - ] - - util.save_weights(args.save_weights, sender, receiver) - util.save_languages(args.save_languages, languages) - - vis.plot_distribution(args.save_distribution, prior_over_states) - vis.plot_accuracy(args.save_accuracy_plot, accuracies) - vis.plot_complexity(args.save_complexity_plot, complexities) - vis.plot_tradeoff(args.save_tradeoff_plot, complexities, accuracies, generate_hamming_bound(signaling_game)) - - print("Done.") - - -if __name__ == "__main__": - args = util.get_args() - - main(args) diff --git a/src/examples/signaling_game/outputs/default/accuracy.png b/src/examples/signaling_game/outputs/default/accuracy.png deleted file mode 100644 index 2df5c86..0000000 Binary files a/src/examples/signaling_game/outputs/default/accuracy.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/default/complexity.png b/src/examples/signaling_game/outputs/default/complexity.png deleted file mode 100644 index 7f5cded..0000000 Binary files a/src/examples/signaling_game/outputs/default/complexity.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/default/distribution_over_states.png b/src/examples/signaling_game/outputs/default/distribution_over_states.png deleted file mode 100644 index ed670e1..0000000 Binary files a/src/examples/signaling_game/outputs/default/distribution_over_states.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/default/languages.yml b/src/examples/signaling_game/outputs/default/languages.yml deleted file mode 100644 index 472f028..0000000 --- a/src/examples/signaling_game/outputs/default/languages.yml +++ /dev/null @@ -1,59 +0,0 @@ -languages: -- sender: - data: - accuracy: 0.8711169970616199 - name: sender - expressions: - - form: signal_1 - meaning: - - state_1 - - form: signal_2 - meaning: [] - - form: signal_3 - meaning: - - state_6 - - form: signal_4 - meaning: - - state_3 - - form: signal_5 - meaning: - - state_4 - - form: signal_6 - meaning: - - state_2 - - form: signal_7 - meaning: - - state_7 - - form: signal_8 - meaning: - - state_5 - - state_8 -- receiver: - data: - accuracy: 0.8711169970616199 - name: receiver - expressions: - - form: signal_1 - meaning: - - state_1 - - form: signal_2 - meaning: - - state_6 - - form: signal_3 - meaning: - - state_6 - - form: signal_4 - meaning: - - state_3 - - form: signal_5 - meaning: - - state_4 - - form: signal_6 - meaning: - - state_2 - - form: signal_7 - meaning: - - state_7 - - form: signal_8 - meaning: - - state_8 diff --git a/src/examples/signaling_game/outputs/default/tradeoff.png b/src/examples/signaling_game/outputs/default/tradeoff.png deleted file mode 100644 index 49afc52..0000000 Binary files a/src/examples/signaling_game/outputs/default/tradeoff.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/default/weights.txt b/src/examples/signaling_game/outputs/default/weights.txt deleted file mode 100644 index ad7ffda..0000000 --- a/src/examples/signaling_game/outputs/default/weights.txt +++ /dev/null @@ -1,55 +0,0 @@ -Sender - ------------------- - -weights: - -[[1.20e+04 1.00e+00 1.00e+00 4.00e+00 9.00e+00 1.00e+00 3.00e+00 1.00e+00] - [1.00e+00 5.50e+01 1.10e+01 5.00e+00 1.00e+00 1.17e+04 1.00e+00 1.00e+00] - [4.00e+00 1.00e+00 2.00e+00 1.21e+04 2.00e+00 9.00e+00 2.00e+00 1.00e+00] - [3.00e+00 1.00e+00 1.00e+00 3.00e+00 1.22e+04 1.00e+00 3.00e+00 1.00e+00] - [2.00e+00 2.00e+00 1.00e+00 1.00e+00 1.00e+00 4.00e+00 1.00e+00 2.13e+03] - [1.00e+00 2.14e+03 9.96e+03 1.00e+00 1.00e+00 1.00e+00 1.00e+00 1.00e+00] - [1.50e+01 1.00e+00 1.00e+00 1.00e+00 3.00e+00 1.00e+00 1.23e+04 7.00e+00] - [4.00e+00 2.00e+00 1.00e+00 1.00e+00 1.00e+00 2.00e+00 2.00e+00 9.90e+03]] - -distribution: - -[[9.98e-01 8.31e-05 8.31e-05 3.32e-04 7.48e-04 8.31e-05 2.49e-04 8.31e-05] - [8.46e-05 4.65e-03 9.30e-04 4.23e-04 8.46e-05 9.94e-01 8.46e-05 8.46e-05] - [3.30e-04 8.26e-05 1.65e-04 9.98e-01 1.65e-04 7.43e-04 1.65e-04 8.26e-05] - [2.45e-04 8.16e-05 8.16e-05 2.45e-04 9.99e-01 8.16e-05 2.45e-04 8.16e-05] - [9.35e-04 9.35e-04 4.67e-04 4.67e-04 4.67e-04 1.87e-03 4.67e-04 9.94e-01] - [8.26e-05 1.77e-01 8.22e-01 8.26e-05 8.26e-05 8.26e-05 8.26e-05 8.26e-05] - [1.22e-03 8.13e-05 8.13e-05 8.13e-05 2.44e-04 8.13e-05 9.98e-01 5.69e-04] - [4.03e-04 2.02e-04 1.01e-04 1.01e-04 1.01e-04 2.02e-04 2.02e-04 9.99e-01]] - - - - -Receiver - ------------------- - -weights: - -[[1.20e+04 1.00e+00 4.00e+00 3.00e+00 2.00e+00 1.00e+00 1.50e+01 4.00e+00] - [1.00e+00 5.50e+01 1.00e+00 1.00e+00 2.00e+00 2.14e+03 1.00e+00 2.00e+00] - [1.00e+00 1.10e+01 2.00e+00 1.00e+00 1.00e+00 9.96e+03 1.00e+00 1.00e+00] - [4.00e+00 5.00e+00 1.21e+04 3.00e+00 1.00e+00 1.00e+00 1.00e+00 1.00e+00] - [9.00e+00 1.00e+00 2.00e+00 1.22e+04 1.00e+00 1.00e+00 3.00e+00 1.00e+00] - [1.00e+00 1.17e+04 9.00e+00 1.00e+00 4.00e+00 1.00e+00 1.00e+00 2.00e+00] - [3.00e+00 1.00e+00 2.00e+00 3.00e+00 1.00e+00 1.00e+00 1.23e+04 2.00e+00] - [1.00e+00 1.00e+00 1.00e+00 1.00e+00 2.13e+03 1.00e+00 7.00e+00 9.90e+03]] - -distribution: - -[[9.98e-01 8.46e-05 3.30e-04 2.45e-04 9.35e-04 8.26e-05 1.22e-03 4.03e-04] - [8.31e-05 4.65e-03 8.26e-05 8.16e-05 9.35e-04 1.77e-01 8.13e-05 2.02e-04] - [8.31e-05 9.30e-04 1.65e-04 8.16e-05 4.67e-04 8.22e-01 8.13e-05 1.01e-04] - [3.32e-04 4.23e-04 9.98e-01 2.45e-04 4.67e-04 8.26e-05 8.13e-05 1.01e-04] - [7.48e-04 8.46e-05 1.65e-04 9.99e-01 4.67e-04 8.26e-05 2.44e-04 1.01e-04] - [8.31e-05 9.94e-01 7.43e-04 8.16e-05 1.87e-03 8.26e-05 8.13e-05 2.02e-04] - [2.49e-04 8.46e-05 1.65e-04 2.45e-04 4.67e-04 8.26e-05 9.98e-01 2.02e-04] - [8.31e-05 8.46e-05 8.26e-05 8.16e-05 9.94e-01 8.26e-05 5.69e-04 9.99e-01]] - \ No newline at end of file diff --git a/src/examples/signaling_game/outputs/example/accuracy.png b/src/examples/signaling_game/outputs/example/accuracy.png deleted file mode 100644 index 9ceb3b4..0000000 Binary files a/src/examples/signaling_game/outputs/example/accuracy.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/example/complexity.png b/src/examples/signaling_game/outputs/example/complexity.png deleted file mode 100644 index b2cbfc7..0000000 Binary files a/src/examples/signaling_game/outputs/example/complexity.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/example/dist.png b/src/examples/signaling_game/outputs/example/dist.png deleted file mode 100644 index b34e610..0000000 Binary files a/src/examples/signaling_game/outputs/example/dist.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/example/languages.yml b/src/examples/signaling_game/outputs/example/languages.yml deleted file mode 100644 index ead3792..0000000 --- a/src/examples/signaling_game/outputs/example/languages.yml +++ /dev/null @@ -1,37 +0,0 @@ -languages: -- sender: - data: - accuracy: 0.8806295779018745 - name: sender - expressions: - - form: signal_1 - meaning: - - state_2 - - state_4 - - form: signal_2 - meaning: - - state_2 - - state_3 - - form: signal_3 - meaning: - - state_1 - - form: signal_4 - meaning: - - state_4 -- receiver: - data: - accuracy: 0.8806295779018745 - name: receiver - expressions: - - form: signal_1 - meaning: - - state_4 - - form: signal_2 - meaning: - - state_3 - - form: signal_3 - meaning: - - state_1 - - form: signal_4 - meaning: - - state_4 diff --git a/src/examples/signaling_game/outputs/example/tradeoff.png b/src/examples/signaling_game/outputs/example/tradeoff.png deleted file mode 100644 index 431cf59..0000000 Binary files a/src/examples/signaling_game/outputs/example/tradeoff.png and /dev/null differ diff --git a/src/examples/signaling_game/outputs/example/weights.txt b/src/examples/signaling_game/outputs/example/weights.txt deleted file mode 100644 index cea4b2d..0000000 --- a/src/examples/signaling_game/outputs/example/weights.txt +++ /dev/null @@ -1,39 +0,0 @@ -Sender - ------------------- - -weights: - -[[ 1.9 1.9 64. 1. ] - [ 1.9 3.7 1. 1. ] - [ 2.8 16.3 1.9 2.8] - [457.3 2.8 1.9 147.7]] - -distribution: - -[[0.03 0.03 0.93 0.01] - [0.25 0.49 0.13 0.13] - [0.12 0.68 0.08 0.12] - [0.75 0. 0. 0.24]] - - - - -Receiver - ------------------- - -weights: - -[[ 1.9 1.9 2.8 457.3] - [ 1.9 3.7 16.3 2.8] - [ 64. 1. 1.9 1.9] - [ 1. 1. 2.8 147.7]] - -distribution: - -[[0.03 0.25 0.12 0.75] - [0.03 0.49 0.68 0. ] - [0.93 0.13 0.08 0. ] - [0.01 0.13 0.12 0.24]] - \ No newline at end of file diff --git a/src/examples/signaling_game/run_example.sh b/src/examples/signaling_game/run_example.sh deleted file mode 100755 index 976e056..0000000 --- a/src/examples/signaling_game/run_example.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -python3 main.py \ ---num_states 4 \ ---num_signals 4 \ ---num_rounds 1000 \ ---distribution_over_states random \ ---learning_rate 0.9 \ ---save_languages outputs/example/languages.yml \ ---save_weights outputs/example/weights.txt \ ---save_distribution outputs/example/dist.png \ ---save_accuracy_plot outputs/example/accuracy.png \ ---save_complexity_plot outputs/example/complexity.png \ ---save_tradeoff_plot outputs/example/tradeoff.png \ diff --git a/src/examples/signaling_game/util.py b/src/examples/signaling_game/util.py deleted file mode 100644 index e494af4..0000000 --- a/src/examples/signaling_game/util.py +++ /dev/null @@ -1,122 +0,0 @@ -import argparse -import yaml -import numpy as np -import random -import plotnine as pn -from languages import SignalingLanguage - - -def set_seed(seed: int) -> None: - """Sets various random seeds.""" - random.seed(seed) - np.random.seed(seed) - - -def save_weights(fn, sender, receiver) -> None: - """Save weights to a txt file.""" - sender_n = sender.weights / sender.weights.sum(axis=1, keepdims=True) - receiver_n = receiver.weights / receiver.weights.sum(axis=0, keepdims=True) - np.set_printoptions(precision=2) - weights_string = f"""Sender - \n------------------ - \nweights: - \n{sender.weights} - \ndistribution: - \n{sender_n} - \n - - \nReceiver - \n------------------ - \nweights: - \n{receiver.weights} - \ndistribution: - \n{receiver_n} - """ - with open(fn, "w") as f: - f.write(weights_string) - - -def save_languages(fn: str, languages: list[SignalingLanguage]) -> None: - """Save a list of languages to a YAML file.""" - data = {"languages": list(lang.yaml_rep() for lang in languages)} - with open(fn, "w") as outfile: - yaml.safe_dump(data, outfile) - - -def save_plot(fn: str, plot: pn.ggplot, width=10, height=10, dpi=300) -> None: - """Save a plot with some default settings.""" - plot.save(fn, width=10, height=10, dpi=300) - - -def get_args() -> argparse.Namespace: - parser = argparse.ArgumentParser() - parser.add_argument("--seed", type=int, default=42, help="Specify the random seed.") - parser.add_argument( - "--num_states", - type=int, - default=2, - help="Number of states for sender and receiver.", - ) - parser.add_argument( - "--num_signals", - type=int, - default=2, - help="Number of signals for sender and receiver.", - ) - parser.add_argument( - "--num_rounds", - type=float, - default=100, - help="How many rounds of the signaling game to run.", - ) - parser.add_argument( - "--distribution_over_states", - type=str, - choices=["deterministic", "random"], - default="deterministic", - help="How to generate distribution over states, either deterministically uniform or randomly sampled.", - ) - parser.add_argument( - "--learning_rate", - type=float, - default=1.0, - help="Learning rate for Bush-Mosteller reinforcement.", - ) - parser.add_argument( - "--save_languages", - type=str, - default="outputs/default/languages.yml", - help="Languages of agents will be saved to this file as YAML.", - ) - parser.add_argument( - "--save_weights", - type=str, - default="outputs/default/weights.txt", - help="Weights of agents will be saved to this file as plain text.", - ) - parser.add_argument( - "--save_accuracy_plot", - type=str, - default="outputs/default/accuracy.png", - help="Plot of signaling accuracy will be saved to this file as png.", - ) - parser.add_argument( - "--save_complexity_plot", - type=str, - default="outputs/default/complexity.png", - help="Plot of complexity accuracy will be saved to this file as png.", - ) - parser.add_argument( - "--save_tradeoff_plot", - type=str, - default="outputs/default/tradeoff.png", - help="Plot of accuracy / complexity tradeoff will be saved to this file as png.", - ) - parser.add_argument( - "--save_distribution", - type=str, - default="outputs/default/distribution_over_states.png", - help="Plot of distribution over states tradeoff will be saved to this file as png.", - ) - args = parser.parse_args() - return args diff --git a/src/examples/signaling_game/vis.py b/src/examples/signaling_game/vis.py deleted file mode 100644 index 0dd7729..0000000 --- a/src/examples/signaling_game/vis.py +++ /dev/null @@ -1,83 +0,0 @@ -import plotnine as pn -import pandas as pd -import numpy as np -from util import save_plot - - -def plot_accuracy(fn: str, accuracies: list[float]) -> None: - """Construct and save a basic plotnine line plot of accuracy vs rounds.""" - data = pd.DataFrame(data={"accuracy": accuracies, "round": range(len(accuracies))}) - # Set data and the axes - plot = ( - pn.ggplot(data=data, mapping=pn.aes(x="round", y="accuracy")) - + pn.geom_line(size=1, data=data) - + pn.ylim(0, 1) - + pn.xlab("Round") - + pn.ylab("Accuracy") - + pn.scale_color_cmap("cividis") - ) - save_plot(fn, plot) - - -def plot_complexity(fn: str, complexities: list[float]) -> pn.ggplot: - """Get a basic plotnine line plot of complexities vs rounds.""" - data = pd.DataFrame( - data={"complexity": complexities, "round": range(len(complexities))} - ) - # Set data and the axes - plot = ( - pn.ggplot(data=data, mapping=pn.aes(x="round", y="complexity")) - + pn.geom_line(size=1, data=data) - + pn.ylim(0, 1) - + pn.xlab("Round") - + pn.ylab("Complexity") - + pn.scale_color_cmap("cividis") - ) - save_plot(fn, plot) - - -def plot_tradeoff(fn: str, complexities: list, accuracies: list, hamming_rd_bound: list[tuple[float]]) -> pn.ggplot: - """Get a basic plotnine point plot of languages in a complexity vs comm_cost 2D plot against the hamming rate distortion bound.""" - rounds = range(len(complexities)) - data = pd.DataFrame( - data={ - "complexity": complexities, - "comm_cost": [1 - acc for acc in accuracies], - "round": rounds, - } - ) - - bound_data = pd.DataFrame( - hamming_rd_bound, - columns=["complexity", "comm_cost"], - ) - plot = ( - # Set data and the axes - pn.ggplot(data=data, mapping=pn.aes(x="complexity", y="comm_cost")) - + pn.scale_y_continuous(limits=[0, 1]) - + pn.geom_point( # langs - stroke=0, alpha=1, mapping=pn.aes(color="round") # might be too faint - ) - + pn.geom_line( # bound - data=bound_data, - ) - + pn.xlab("Cognitive cost") - + pn.ylab("Communicative cost") - + pn.scale_color_cmap("cividis") - ) - save_plot(fn, plot) - - -def plot_distribution(fn: str, dist: np.ndarray) -> pn.ggplot: - """Create a bar plot of a distribution over states, e.g. the communicative need distribution or the ground truth distribution.""" - states = list(range(1, len(dist) + 1)) - data = pd.DataFrame(data={"state": states, "prob": dist.tolist()}) - plot = ( - pn.ggplot(data=data, mapping=pn.aes(x="state", y="prob")) - + pn.scale_x_discrete(limits=states) - + pn.ylim(0, 1) - + pn.geom_bar(stat="identity") - + pn.xlab("State") - + pn.ylab("Probability") - ) - save_plot(fn, plot) diff --git a/src/tests/test_grammar.py b/src/tests/test_grammar.py index 6f0735a..e9be3b2 100644 --- a/src/tests/test_grammar.py +++ b/src/tests/test_grammar.py @@ -33,7 +33,7 @@ def test_meaning(self): def test_length(self): parsed_expression = TestGrammar.grammar.parse(TestGrammar.geq2_expr_str) assert len(parsed_expression) == 5 - + def test_atom_count(self): parsed_expression = TestGrammar.grammar.parse(TestGrammar.geq2_expr_str) assert parsed_expression.count_atoms() == 3 diff --git a/src/tests/test_language.py b/src/tests/test_language.py index 65e1460..c401087 100644 --- a/src/tests/test_language.py +++ b/src/tests/test_language.py @@ -27,31 +27,36 @@ class TestLanguage: dog = Expression( form="dog", meaning=Meaning( - mapping=FrozenDict({ref: ref.name == "dog" for ref in uni_refs}), universe=uni + mapping=FrozenDict({ref: ref.name == "dog" for ref in uni_refs}), + universe=uni, ), ) cat = Expression( form="cat", meaning=Meaning( - mapping=FrozenDict({ref: ref.name == "cat" for ref in uni_refs}), universe=uni + mapping=FrozenDict({ref: ref.name == "cat" for ref in uni_refs}), + universe=uni, ), ) tree = Expression( form="tree", meaning=Meaning( - mapping=FrozenDict({ref: ref.name == "tree" for ref in uni_refs}), universe=uni + mapping=FrozenDict({ref: ref.name == "tree" for ref in uni_refs}), + universe=uni, ), ) shroom = Expression( form="shroom", meaning=Meaning( - mapping=FrozenDict({ref: ref.name == "shroom" for ref in uni_refs}), universe=uni + mapping=FrozenDict({ref: ref.name == "shroom" for ref in uni_refs}), + universe=uni, ), ) bird = Expression( form="bird", meaning=Meaning( - mapping=FrozenDict({ref: ref.name == "bird" for ref in uni_refs}), universe=uni + mapping=FrozenDict({ref: ref.name == "bird" for ref in uni_refs}), + universe=uni, ), ) @@ -78,7 +83,12 @@ def test_language_universe_check(self): Expression( form="dog", meaning=Meaning( - mapping=FrozenDict({ref: ref.name == "dog" for ref in TestLanguage.uni.referents}), + mapping=FrozenDict( + { + ref: ref.name == "dog" + for ref in TestLanguage.uni.referents + } + ), universe=TestLanguage.uni2, ), ), diff --git a/src/ultk/effcomm/__init__.py b/src/ultk/effcomm/__init__.py index 111edf3..d2d8f2f 100644 --- a/src/ultk/effcomm/__init__.py +++ b/src/ultk/effcomm/__init__.py @@ -2,17 +2,17 @@ Submodules divide the labor of a computational experiment performing an efficiency analysis of a language into several parts: generating and sampling the space of possible languages, measuring their properties, and determining which languages optimize efficient trade-offs w.r.t these properties. -The `altk.effcomm.sampling` submodule implements several methods for generating hypothetically possible languages of a given type, by sampling from a set of possible expressions, or permuting the expression-meaning mapping of an existing language. +The `ultk.effcomm.sampling` submodule implements several methods for generating hypothetically possible languages of a given type, by sampling from a set of possible expressions, or permuting the expression-meaning mapping of an existing language. -The `altk.effcomm.optimization` submodule contains a general implementation of an evolutionary algorithm, which can be used to estimate a Pareto frontier of optimal solutions to an efficiency trade-off. It can also be used as a technique for randomly exploring the space of possible languages. +The `ultk.effcomm.optimization` submodule contains a general implementation of an evolutionary algorithm, which can be used to estimate a Pareto frontier of optimal solutions to an efficiency trade-off. It can also be used as a technique for randomly exploring the space of possible languages. -The `altk.effcomm.tradeoff` submodule contains tools for measuring a pool of languages for various properties, finding which languages are Pareto dominant with respect to two properties, and setting attributes of the language objects for further analysis. +The `ultk.effcomm.tradeoff` submodule contains tools for measuring a pool of languages for various properties, finding which languages are Pareto dominant with respect to two properties, and setting attributes of the language objects for further analysis. -The `altk.effcomm.analysis` submodule contains tools for performing numerical analyses and producing paradigmatic plots of languages in 2D trade-off space. +The `ultk.effcomm.analysis` submodule contains tools for performing numerical analyses and producing paradigmatic plots of languages in 2D trade-off space. -The `altk.effcomm.rate_distortion` submodule contains tools for information theory based analyses of the communicative efficiency of languages. Specificially, it includes methods for Rate-Distortion style (including the Information Bottleneck) analyses. +The `ultk.effcomm.information_bottleneck` submodule contains tools for Information Bottleneck based analyses of the communicative efficiency of languages. Specificially, it includes an implementation of the IB-BA algorithm and code for evaluating the efficiency of semantic category systems. -The `altk.effcomm.agent` submodule implements classes for constructing various speakers and listeners of a language. These are typically used in static analyses of informativity of a language, and are unified abstractions from the Rational Speech Act framework. They can also be used for dynamic analyses, however (see the [signaling game example](https://clmbr.shane.st/altk/src/examples/signaling_game)). +The `ultk.effcomm.agent` submodule implements classes for constructing various speakers and listeners of a language. These are unified abstractions from the Rational Speech Act framework. -The `altk.effcomm.informativity` submodule implements tools for computing the literal or pragmatic informativity of a language, based on speaker/listener abstractions described above. +The `ultk.effcomm.informativity` submodule implements tools for computing the literal or pragmatic informativity of a language, based on speaker/listener abstractions described above. """ diff --git a/src/ultk/effcomm/information_bottleneck/__init__.py b/src/ultk/effcomm/information_bottleneck/__init__.py new file mode 100644 index 0000000..0125694 --- /dev/null +++ b/src/ultk/effcomm/information_bottleneck/__init__.py @@ -0,0 +1,10 @@ +"""Submodule for Information Bottleneck based analyses of the efficiency of semantic category systems. + +The `ultk.effcomm.information_bottleneck.modeling` includes a friendly API for obtaining IB theoretical bounds and naming models given a specification of the statistics of the semantic domain. This is likely the only submodule you need to import. + +The `ultk.effcomm.information_bottlneck.ib` implements the IB update equations, and includes an optimizer object that inherits from the base object in `ba`. + +The `ultk.effcomm.information_bottleneck.ba` submodule implements the Blahut-Arimoto algorithm for computing the theoretical bounds of efficient compression. It includes code for simulated annealing (reverse or not) of $\\beta$. + +The `ultk.effcomm.information_bottleneck.tools` submodule includes helper methods for computing informational quantities and dealing with numerical instability. +""" diff --git a/src/ultk/effcomm/information_bottleneck/ba.py b/src/ultk/effcomm/information_bottleneck/ba.py new file mode 100644 index 0000000..3dfc9f1 --- /dev/null +++ b/src/ultk/effcomm/information_bottleneck/ba.py @@ -0,0 +1,261 @@ +import numpy as np +from collections import namedtuple +from typing import Any +from tqdm import tqdm +from ultk.effcomm.probability import ( + information_cond, + random_stochastic_matrix, + add_noise_to_stochastic_matrix, +) + +############################################################################## +# Base Rate Distortion class +############################################################################## + + +class BaseRDOptimizer: + def __init__( + self, + betas: np.ndarray, + *args, + max_it: int = 1000, + eps: float = 1e-15, + ignore_converge: bool = False, + xhat_size=None, + **kwargs, + ) -> None: + """Base initializer for a Blahut-Arimoto-based optimizer of the Rate Distortion function. + + Args: + betas: 1D array, values of beta to search + + max_it: max number of iterations + + args: propagated to `self.beta_iterate` as *kwargs + + eps: accuracy required by the algorithm: the algorithm stops if there is no change in distortion value of more than `eps` between consecutive iterations + + ignore_converge: whether to run the optimization until `max_it`, ignoring the stopping criterion specified by `eps`. + + xhat_size: the size of the output alphabet. The resulting encoders will be of shape (x, xhat) + + kwargs: propagated to `self.beta_iterate` as **kwargs + """ + self.betas = betas + self.max_it = max_it + self.eps = eps + self.ln_eps = np.log1p(eps) + self.ignore_converge = ignore_converge + + self.init_args = args + self.init_kwargs = kwargs + + self.ln_px = None # shape `(x)` + self.ln_qxhat_x = None # shape `(x, xhat)` + self.dist_mat = None # shape `(x, xhat)` + + self.xhat_size = xhat_size + # if xhat_size is None: + # self.xhat_size = len(self.ln_px) + + self.result: namedtuple = None + self.results: list[namedtuple] = [] + + def get_results(self) -> list[namedtuple]: + # Re-initialize results + self.result = None + self.results = [] + + self.beta_iterate(*self.init_args, **self.init_kwargs) + return self.results + + def update_eqs( + self, + *args, + **kwargs, + ) -> None: + """Main Blahut-Arimoto update steps.""" + raise NotImplementedError + + def next_result(self, beta, *args, **kwargs) -> None: + """Get the result of the converged BA iteration.""" + raise NotImplementedError + + def beta_iterate( + self, + *args, + num_restarts: int = 0, + ensure_monotonicity: bool = True, + disable_tqdm: bool = False, + reverse_annealing: bool = True, + **kwargs, + ) -> None: + """Iterate the BA algorithm for an array of values of beta, using reverse deterministic annealing. + + Args: + num_restarts: number of times to restart each beta-optimization + + ensure_monotonicity: whether to remove points that would make a rate distortion curve non-monotonic + + reverse_annealing: whether to use reverse annealing or regular annealing. If self.output_size < len(self.ln_px), then this is set to false. + """ + if ( + self.xhat_size is not None and self.xhat_size < len(self.ln_px) + ) or not reverse_annealing: + reverse = False + else: + reverse = True + + results = self.anneal( + *args, + reverse=reverse, + num_restarts=num_restarts, + ensure_monotonicity=ensure_monotonicity, + disable_tqdm=disable_tqdm, + **kwargs, + ) + + # Postprocessing + if ensure_monotonicity: + indices = compute_lower_bound( + [(item.rate, item.distortion) for item in results] + ) + results = [x if i in indices else None for i, x in enumerate(results)] + self.results = results + + def anneal( + self, + *args, + reverse: bool = True, + num_restarts: int = 0, + disable_tqdm: bool = False, + **kwargs, + ) -> list: + results = [] + betas = np.sort(self.betas) + + if reverse: + # sort betas in decreasing order + betas = betas[::-1] + # start with bijective mapping + init_q = np.eye(len(self.ln_px)) + else: + # Random degenerate initialization + xhat = random_stochastic_matrix(shape=(1, self.xhat_size), gamma=1e-2) + init_q = np.stack([xhat.squeeze()] * len(self.ln_px)) + + pbar = tqdm( + betas, + disable=disable_tqdm, + desc=f"{'reverse ' if reverse else ''}annealing beta", + ) + for beta in pbar: + pbar.set_description(f"beta={beta:.5f}") + candidates = [] + for _ in range(num_restarts + 1): + self.blahut_arimoto(beta, *args, init_q=init_q, **kwargs) + cand = self.results[-1] + init_q = cand.qxhat_x + candidates.append(cand) + best = min(candidates, key=lambda x: x.rate + beta * x.distortion) + results.append(best) + + if reverse: + results = results[::-1] + + return results + + ############################################################################ + # Blahut Arimoto iteration + ############################################################################ + + def blahut_arimoto( + self, + beta, + *args, + **kwargs, + ) -> None: + """Update the self-consistent equations for a Rate Distortion objective. + + Args: + beta: (scalar) the slope of the rate-distoriton function at the point where evaluation is required + """ + len_x = len(self.ln_px) + if "init_q" in kwargs: + init_q: np.ndarray = kwargs["init_q"] + # Add small value for working in logspace + # init_q_precision = init_q + PRECISION + init_q_precision = add_noise_to_stochastic_matrix(init_q, weight=1e-2) + init_q_precision /= init_q_precision.sum(axis=1, keepdims=True) + self.ln_qxhat_x = np.log(init_q_precision) + else: + self.ln_qxhat_x = np.log(random_stochastic_matrix((len_x, len_x))) + + it = 0 + converged = False + while not converged: + it += 1 + prev_q = np.copy(self.ln_qxhat_x) + + # Main BA update + self.update_eqs(beta, *args, **kwargs) + + # convergence check + # TODO: consider updating the Result tuple to include convergence field. if converged, record the iteration. If not, record False/None + if self.ignore_converge: + converged = it >= self.max_it + else: + converged = ( + it == self.max_it + or np.sum(np.abs(self.ln_qxhat_x - prev_q)) < self.ln_eps + ) + + self.results.append(self.next_result(beta, *args, **kwargs)) + + def compute_distortion(self, *args, **kwargs) -> float: + """Compute the expected distortion for the current p(x), q(xhat|x) and dist_mat.""" + raise NotImplementedError + + def compute_rate( + self, + *args, + **kwargs, + ) -> float: + """Compute the information rate for the current p(x), q(xhat|x).""" + return information_cond(np.exp(self.ln_px), np.exp(self.ln_qxhat_x)) + + +############################################################################## +# Postprocessing helper +############################################################################## + + +def compute_lower_bound(rd_points): + """ + Remove all points in a rate-distortion curve that would make it nonmonotonic and + return only the resulting monotonic indices. + + This is required to remove the random fluctuations in the result induced by the BA algorithm getting stuck in local minima. + + Acknowledgement: https://github.com/epiasini/embo-github-mirror/blob/master/embo/utils.py#L77. + + Args: + rd_points: list of pairs of floats, where each pair represents an estimated (rate, distortion) pair, + and *ordered by increasing rate*. + + Returns: + selected_indices: 1D numpy array containing the indices of the points selected to ensure monotonically decreasing values. + """ + pts = np.array(rd_points, dtype=np.float32) + selected_indices = [0] + + for idx in range(1, len(pts)): + # Check that each point increases in rate and does not increase in distortion + if ( + pts[idx, 0] >= pts[selected_indices[-1], 0] # Monotonically increasing rate + and pts[idx, 1] + <= pts[selected_indices[-1], 1] # Monotonically decreasing distortion + ): + selected_indices.append(idx) + + return np.array(selected_indices, dtype=np.int32) diff --git a/src/ultk/effcomm/information_bottleneck/ib.py b/src/ultk/effcomm/information_bottleneck/ib.py new file mode 100644 index 0000000..f7beb8b --- /dev/null +++ b/src/ultk/effcomm/information_bottleneck/ib.py @@ -0,0 +1,186 @@ +"""Information Bottleneck optimizer.""" + +import numpy as np + +from collections import namedtuple +from scipy.special import logsumexp, log_softmax + +from .ba import BaseRDOptimizer +from ultk.effcomm.probability import ( + PRECISION, + information_cond, + mutual_info, + kl_divergence, +) + + +def ib_kl(py_x: np.ndarray, qy_xhat: np.ndarray) -> np.ndarray: + """Compute the IB distortion matrix, the KL divergence between p(y|x) and q(y|xhat), in nats.""" + # D[p(y|x) || q(y|xhat)], + # input shape `(x, xhat, y)`, output shape `(x, xhat)` + return kl_divergence(py_x[:, None, :], qy_xhat[None, :, :], axis=2) + + +############################################################################## +# Return type of each item in `get_results()` +############################################################################## + +IBResult = namedtuple( + "IBResult", + [ + "qxhat_x", + "rate", + "distortion", + "accuracy", + "beta", + ], +) + +############################################################################## +# Update equations +############################################################################## + + +def next_ln_qxhat(ln_px: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray: + # q(xhat) = sum_x p(x) q(xhat | x), + # shape `(xhat)` + return logsumexp(ln_px[:, None] + ln_qxhat_x, axis=0) + + +def next_ln_qxhat_x(ln_qxhat: np.ndarray, beta: float, dist_mat: np.ndarray): + # q(x_hat | x) = q(x_hat) exp(- beta * d(x, x_hat)) / Z(x) + return log_softmax(ln_qxhat[None, :] - beta * dist_mat, axis=1) + + +def next_ln_qy_xhat(ln_pxy: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray: + # p(x), + # shape `(x)` + ln_px = logsumexp(ln_pxy, axis=1) + + # p(y|x), + # shape `(x,y)` + ln_py_x = ln_pxy - ln_px[:, None] + + ln_qx_xhat = next_ln_qx_xhat(ln_px, ln_qxhat_x) # `(xhat, x)` + + # p(y|xhat) = sum_x p(y|x) p(x|xhat), + # shape `(xhat, y)` + ln_qy_xhat = logsumexp( + ln_py_x[None, :, :] + ln_qx_xhat[:, :, None], # `(xhat, x, y)` + axis=1, + ) + + return ln_qy_xhat + + +def next_ln_qx_xhat(ln_px: np.ndarray, ln_qxhat_x: np.ndarray) -> np.ndarray: + # q(xhat), + # shape `(xhat)` + ln_qxhat = next_ln_qxhat(ln_px, ln_qxhat_x) + + # q(x,xhat) = p(x) q(xhat|x), + # shape `(x, xhat)` + ln_qxxhat = ln_px[:, None] + ln_qxhat_x + + # p(x|xhat) = q(x, xhat) / q(xhat), + # shape `(xhat, x)` + ln_qx_xhat = ln_qxxhat.T - ln_qxhat[:, None] + + return ln_qx_xhat + + +############################################################################## +# IB Optimizer +############################################################################## + + +class IBOptimizer(BaseRDOptimizer): + def __init__( + self, + pxy: np.ndarray, + betas: np.ndarray, + *args, + **kwargs, + ) -> None: + """Estimate the optimal encoder for a given value of `beta` for the Information Bottleneck objective [Tishby et al., 1999]: + + $\min_{q} I[X:\hat{X}] + \\beta \mathbb{E}[D_{KL}[p(y|x) || p(y|\hat{x})]].$ + + Args: + pxy: 2D array of shape `(|X|, |Y|)` representing the joint probability mass function of the source and relevance variables. + + betas: 1D array of values of beta, where each beta is a float corresponding to the slope of the rate-distoriton function at the point where evaluation is required + """ + super().__init__(betas, *args, **kwargs) + + # Add small value for working in logspace + pxy_precision = pxy + PRECISION + pxy_precision /= pxy_precision.sum() + self.ln_pxy = np.log(pxy_precision) + + self.ln_px = logsumexp(self.ln_pxy, axis=1) # `(x)` + self.px = np.exp(self.ln_px) + self.ln_py_x = self.ln_pxy - logsumexp( + self.ln_pxy, axis=1, keepdims=True + ) # `(x, y)` + self.results: list[IBResult] = None + + def get_results(self) -> list[IBResult]: + return super().get_results() + + def next_dist_mat( + self, + *args, + **kwargs, + ) -> None: + """IB distortion matrix.""" + self.dist_mat = ib_kl(np.exp(self.ln_py_x), np.exp(self.ln_qy_xhat)) + + def update_eqs( + self, + beta, + *args, + **kwargs, + ) -> None: + """Iterate the IB update equations.""" + self.ln_qxhat = next_ln_qxhat(self.ln_px, self.ln_qxhat_x) + self.ln_qy_xhat = next_ln_qy_xhat(self.ln_pxy, self.ln_qxhat_x) + self.next_dist_mat(*args, **kwargs) + self.ln_qxhat_x = next_ln_qxhat_x(self.ln_qxhat, beta, self.dist_mat) + + def compute_distortion(self, *args, **kwargs) -> float: + # NOTE: we may still need to debug this; watch out for negative values + # return np.exp(logsumexp(self.ln_px + self.ln_qxhat_x + np.log(self.dist_mat))) + I_xy = mutual_info(np.exp(self.ln_pxy)) + edkl = I_xy - self.compute_accuracy() + return edkl + + def compute_accuracy(self, *args, **kwargs) -> float: + return information_cond( + np.exp(self.ln_qxhat), + np.exp(self.ln_qy_xhat), + ) + + def next_result(self, beta, *args, **kwargs) -> IBResult: + """Get the result of the converged BA iteration for the IB objective. + + Returns: + an IBResult namedtuple of `(qxhat_x, rate, distortion, accuracy, beta)` values. This is: + + `qxhat_x`, the optimal encoder, such that the + + `rate` (in bits) of compressing X into X_hat, is minimized for the level of + + `distortion` between X, X_hat with respect to Y, i.e. the + + `accuracy` I[X_hat:Y] is maximized, for the specified + + `beta` trade-off parameter + """ + return IBResult( + np.exp(self.ln_qxhat_x), + self.compute_rate(), + self.compute_distortion(), + self.compute_accuracy(), + beta, + ) diff --git a/src/ultk/effcomm/information_bottleneck/modeling.py b/src/ultk/effcomm/information_bottleneck/modeling.py new file mode 100644 index 0000000..23c6613 --- /dev/null +++ b/src/ultk/effcomm/information_bottleneck/modeling.py @@ -0,0 +1,348 @@ +"""Re-implementation of the IBNamingModel at https://github.com/nogazs/ib-color-naming/blob/master/src/ib_naming_model.py.""" + +import numpy as np +import warnings +from ultk.util.io import read_pickle, write_pickle +from ultk.language.language import Language, Expression, Meaning, FrozenDict, Universe +from .ib import IBOptimizer, IBResult +from ultk.effcomm.probability import joint, mutual_info, information_cond, entropy_bits + +############################################################################## +# Base IBNamingModel class +############################################################################## + + +class IBNamingModel: + """A model for simulating Information Bottleneck (IB) naming systems.""" + + def __init__( + self, + pM: np.ndarray, + pU_M: np.ndarray, + betas: np.ndarray, + IB_curve: tuple[np.ndarray, np.ndarray], + qW_M: np.ndarray, + ): + """ + Initializes the IBNamingModel with given parameters. + + Args: + pM (np.ndarray): Prior distribution over meanings. Expected shape is (n, 1). + pU_M (np.ndarray): Conditional distribution of observations given meanings. + betas (np.ndarray): Array of beta values used for the IB curve. + IB_curve (tuple[np.ndarray, np.ndarray]): tuple containing complexity and accuracy values along the IB curve. + qW_M (np.ndarray): Initial encoder (naming system) matrix. + """ + self.pM = pM if len(pM.shape) == 2 else pM[:, None] + self.pU_M = pU_M + self.I_MU = mutual_info(pU_M * self.pM) + self.H_M = entropy_bits(pM.squeeze()) + self.betas = np.array(betas) + self.IB_curve = np.array(IB_curve) + self.qW_M = qW_M + self.qW_M_orig = None + self.F = IB_curve[0] - betas * IB_curve[1] + + def m_hat(self, qW_M: np.ndarray) -> np.ndarray: + """ + Computes the optimal Bayesian listener corresponding to the encoder. + + Args: + qW_M (np.ndarray): Encoder (naming system) matrix. + + Returns: + np.ndarray: Optimal decoder that corresponds to the given encoder. + """ + pMW = qW_M * self.pM + pM_W = pMW.T / pMW.sum(axis=0)[:, None] + return pM_W.dot(self.pU_M) + + def complexity(self, pW_M: np.ndarray) -> float: + """ + Calculates the mutual information I(M;W) for a given encoder. + + Args: + pW_M (np.ndarray): Encoder (naming system) matrix. + + Returns: + float: Mutual information I(M;W). + """ + return mutual_info(pW_M * self.pM) + + def accuracy(self, pW_M: np.ndarray) -> float: + """ + Calculates the mutual information I(W;U) for a given encoder. + + Args: + pW_M (np.ndarray): Encoder (naming system) matrix. + + Returns: + float: Mutual information I(W;U). + """ + pMW = pW_M * self.pM + pWU = pMW.T @ self.pU_M + return mutual_info(pWU) + + def d_IB(self, pW_M: np.ndarray) -> float: + """ + Calculates the IB distortion for a given encoder, i.e. the KL divergence between speaker and listener meanings, $ + \mathbb{E}\left[D[m||\hat{m}]\right] = I(M;U) - I(W;U)$. + + Args: + pW_M (np.ndarray): Encoder (naming system) matrix. + + Returns: + float: Distortion value. + """ + return self.I_MU - self.accuracy(pW_M) + + def fit(self, pW_M: np.ndarray) -> tuple[float, float, float, np.ndarray]: + """ + Fits the naming system to the IB curve. + + Args: + pW_M (np.ndarray): Encoder (naming system) matrix. + + Returns: + tuple containing: + - epsilon (float): Deviation from optimality of pW_M. + - gnid (float): Generalized normalized information distance (gNID) between qW_M and qW_M_fit. + - bl (float): Fitted value of beta. + - qW_M_fit (np.ndarray): Optimal IB system at bl. + """ + Fl = self.complexity(pW_M) - self.betas * self.accuracy(pW_M) + dFl = Fl - self.F + bl_ind = dFl.argmin() + bl = self.betas[bl_ind] + epsilon = dFl.min() / bl + qW_M_fit = self.qW_M[bl_ind] + gnid = gNID(pW_M, qW_M_fit, self.pM) + return epsilon, gnid, bl, qW_M_fit + + def save(self, fn: str = "ib_naming_model.pkl") -> None: + """Save as pickle binary.""" + write_pickle(fn, self) + + @classmethod + def from_pickle(cls, fn: str): + breakpoint() + return read_pickle(fn) + + +# Helper +def gNID(pW_X: np.ndarray, pV_X: np.ndarray, pX: np.ndarray): + """Compute Generalized Normalized Informational Distance (gNID, in Zaslavsky et al. 2018, SI, Section 3.2) between two encoders. Code credit: https://github.com/nogazs/ib-color-naming/blob/master/src/tools.py#L94 + + Args: + pW_X: first encoder of shape `(|meanings|, |words|)` + + pV_X: second encoder of shape `(|meanings|, |words|)` + + pX: prior over source variables of shape `(|meanings|,)` + """ + if len(pX.shape) == 1: + pX = pX[:, None] + elif pX.shape[0] == 1 and pX.shape[1] > 1: + pX = pX.T + pXW = pW_X * pX + pWV = pXW.T @ (pV_X) + pWW = pXW.T @ (pW_X) + pVV = (pV_X * pX).T @ (pV_X) + score = 1 - mutual_info(pWV) / (np.max([mutual_info(pWW), mutual_info(pVV)])) + if score < 0: + # N.B.: gNID is not necessarily non-negative (See SI, Section 3.2, paragraph 2.) + warnings.warn(f"Negative gNID: {score}.") + return score + + +############################################################################## +# IB Bound computation +############################################################################## + + +def compute_bound( + pU_M: np.ndarray, + pM: np.ndarray, + betas: np.ndarray = np.logspace(0, 10, 100), + **kwargs, +) -> list[IBResult]: + """ + Computes the IB bound based on input distributions. + + Args: + pU_M (np.ndarray): Conditional distribution of observations given meanings. + pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None. + betas (np.ndarray, optional): Range of beta values for the IB curve. Defaults to logspace(0, 10, 100). + **kwargs: Additional parameters for the IB optimizer. + + Returns: + list[IBResult]: List of results from the IB optimizer. + """ + pxy = joint(pU_M, pM) + optim = IBOptimizer( + pxy, + betas, + **kwargs, + ) + results = optim.get_results() + return results + + +def construct_ib_naming_model( + pU_M: np.ndarray, + pM: np.ndarray = None, + **bound_kwargs, +) -> IBNamingModel: + """ + Constructs an IBNamingModel by computing the IB bound for the domain distribution P(M,U). + + Args: + pU_M (np.ndarray): Conditional distribution of observations given meanings. + pM (np.ndarray, optional): Prior distribution over meanings. Defaults to None. + gammas (np.ndarray, optional): Range of gamma values for similarity selection. Defaults to logspace(-2, 2, 1000). + **bound_kwargs: Additional parameters for IB bound computation. See `compute_bound` kwargs. + + Returns: + IBNamingModel: An IBNamingModel instance configured with the computed IB bound. + + """ + results = compute_bound(pU_M, pM, **bound_kwargs) + + qW_M, complexity, accuracy, beta = zip( + *[ + (res.qxhat_x, res.rate, res.accuracy, res.beta) + for res in results + if res is not None + ] + ) + + IB_curve = (np.array(complexity), np.array(accuracy)) + + naming_model = IBNamingModel( + pM[:, None], + pU_M, + beta, + IB_curve, + qW_M, + ) + + return naming_model + + +############################################################################## +# Integration with ULTK Language +############################################################################## + + +def encoder_to_language( + qW_M: np.ndarray, + naming_model: IBNamingModel, + universe: Universe, + words: list[str] = None, + name: str = None, + natural: bool = False, +) -> Language: + """Convert a stochastic encoder to a ULTK Language using an IBNamingModel bayesian decoder. + + Args: + qW_M (np.ndarray): A stochastic matrix where rows correspond to meanings + and columns correspond to words, defining the encoder. + naming_model (IBNamingModel): An instance of the IBNamingModel used to + decode the encoder into a language. + universe (Universe): The universe containing referents and the structure + in which the meanings are defined. + words (list[str], optional): A list of word forms to use. If None, default + numeric indices are used. Defaults to None. + name (str, optional): The name of the resulting Language. Defaults to None. + natural (bool, optional): Whether the resulting Language is a natural + language. Defaults to False. + + Returns: + Language: The constructed Language object, where each expression maps a + word form to its corresponding meaning. + """ + + if words is None: + words = range(qW_M.shape[1]) + + return Language( + expressions=tuple( + Expression( + form=str(words[i]), + meaning=Meaning[float]( + FrozenDict( + { + # define each mapping from referent -> probability + universe.referents[chip_num]: qm[chip_num] + for chip_num in range(qW_M.shape[0]) + } + ), + universe, + ), + ) + for i, qm in enumerate(naming_model.m_hat(qW_M)) + ), + name=name, + natural=natural, + ) + + +def pU_M_from_similarity(gamma: float, sim_mat: np.ndarray) -> np.ndarray: + """ + Computes the conditional distribution p(U|M) based on similarity. + + Args: + gamma (float): Scaling factor for the similarity matrix. + sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U). + + Returns: + np.ndarray: Conditional distribution p(U|M). + """ + pU_M = np.exp(gamma * sim_mat) + pU_M /= pU_M.sum(axis=1, keepdims=True) + return pU_M + + +def get_imu(gamma: float, sim_mat: np.ndarray, pM: np.ndarray = None) -> np.ndarray: + """ + Calculates the mutual information I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)). + + Args: + gamma (float): Scaling factor for the similarity matrix. + sim_mat (np.ndarray): Similarity matrix representing similarity between meanings (M) and referents (U). + pM (np.ndarray, optional): Prior distribution over meanings (M). Defaults to a uniform distribution. + + Returns: + np.ndarray: Mutual information I(M;U). + """ + return information_cond( + pB_A=pU_M_from_similarity(gamma, sim_mat), + pA=pM if pM is not None else np.full(sim_mat.shape[0], 1 / sim_mat.shape[0]), + ) + + +def select_gamma( + similarity_matrix: np.ndarray, + pM: np.ndarray = None, + gammas: np.ndarray = np.logspace(-2, 2, 1000), +) -> tuple[float, float, int, np.ndarray, np.ndarray]: + """ + Selects the gamma value that corresponds to the midpoint of I(M;U) for a distribution p(U|M) ∝ exp(gamma * sim(u, m)). + + Args: + similarity_matrix (np.ndarray): Matrix encoding pairwise similarities between meanings (M) and referents (U). + pM (np.ndarray, optional): Communicative need distribution over meanings (M). Defaults to None. + gammas (np.ndarray, optional): Range of gamma values to sample. Defaults to logspace(-2, 2, 1000). + + Returns: + tuple: A tuple containing: + - float: Gamma value corresponding to the midpoint of I(M;U). + - float: Midpoint of I(M;U). + - int: Index of the midpoint in the gamma array. + - np.ndarray: Array of gamma values used. + - np.ndarray: Array of computed I(M;U) values. + """ + imus = np.array([get_imu(g, similarity_matrix, pM) for g in gammas]) + mid = (np.max(imus) - np.min(imus)) / 2 + mid_ind = np.argmin((imus - mid) ** 2) + return gammas[mid_ind], mid, mid_ind, gammas, imus diff --git a/src/ultk/effcomm/probability.py b/src/ultk/effcomm/probability.py new file mode 100644 index 0000000..bced883 --- /dev/null +++ b/src/ultk/effcomm/probability.py @@ -0,0 +1,163 @@ +import numpy as np +from scipy.special import softmax +from scipy.stats import entropy + +# see the utilities in https://github.com/nogazs/ib-color-naming/blob/master/src/tools.py +PRECISION = 1e-15 + + +def marginal(pXY: np.ndarray, axis: int = 1) -> np.ndarray: + """Computer marginals of a joint distribution. + + Args: + pXY: a joint distribution of shape (|X|, |Y|), corresponding to p(x, y) + axis: the axis along which to compute the marginal + + Returns: + either pY (axis = 0) or pX (default, axis = 1) + """ + return pXY.sum(axis) + + +def joint(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray: + """Compute a joint distribution from a conditional and a prior. + + Args: + pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x) + pX: a prior distribution of shape (|X|,), corresponding to p(x) + + Returns: + a joint distribution of shape (|X|, |Y|), corresponding to p(x, y) + """ + return pY_X * pX[:, None] + + +def marginalize(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray: + """Marginalize a conditional distribution (without a detour through the joint). + + Args: + pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x) + pX: a prior distribution of shape (|X|,), corresponding to p(x) + + Returns: + a marginal distribution of shape (|Y|,), corresponding to p(y) + """ + return pY_X.T @ pX + + +def bayes(pY_X: np.ndarray, pX: np.ndarray) -> np.ndarray: + """Perform Bayesian inference, computing p(x|y) from p(y|x) and p(x). + + Args: + pY_X: a conditional distribution of shape (|X|, |Y|), corresponding to p(y|x) + pX: a prior distribution of shape (|X|,), corresponding to p(x) + + Returns: + a posterior distribution of shape (|Y|, |X|), corresponding to p(x|y) + """ + # (|X|, |Y|) + pXY = joint(pY_X, pX) + print(pXY.shape) + # (|Y|,) + pY = marginalize(pY_X, pX) + print(pY.shape) + # (|Y|, |X|) + return np.where(pY > PRECISION, pXY / pY, 1 / pXY.shape[0]).T + + +############################################################################## +# Numerical precision helpers +############################################################################## + + +def get_gaussian_noise( + shape, + loc=0.0, + scale=1e-15, +): + """Small Gaussian noise.""" + return np.random.normal(loc, scale, size=shape) + + +def add_noise_to_stochastic_matrix(q, weight=1e-2): + """ + Given an input stochastic matrix `q`, sample a stochastic matrix `p` and + mix it with the input with a small weight `weight`, i.e., return q + weight * p. + """ + # Generate a stochastic matrix `p` using a Dirichlet distribution + p = np.random.dirichlet(np.ones(q.shape[1]), size=q.shape[0]) + # Mix `q` with `p` using the specified weight + noisy_matrix = q + weight * p + # Normalize to ensure the rows sum to 1 + noisy_matrix /= noisy_matrix.sum(axis=1, keepdims=True) + return noisy_matrix + + +def random_stochastic_matrix(shape, gamma=1e-10): + """ + Initialize a stochastic matrix (2D array) that sums to 1 along the rows. + + Args: + shape: tuple, the desired shape of the stochastic matrix (e.g., `(rows, cols)`). + gamma: float, scaling factor for the random normal initialization. + + Returns: + A stochastic matrix with rows summing to 1. + """ + energies = gamma * np.random.randn(*shape) + return softmax(energies, axis=1) + + +############################################################################## +# Information +############################################################################## + + +def entropy_bits(p: np.ndarray, axis=None) -> float: + """Compute entropy of p, $H(X) = - \sum_x p(x) \log p(x)$, in bits.""" + return entropy(p, base=2, axis=axis) + + +def mutual_info(pxy: np.ndarray) -> float: + """Compute mutual information, $I(X;Y)$ in bits. + + Args: + pxy: 2D numpy array of shape `(x, y)` + """ + return ( + entropy_bits(pxy.sum(axis=0)) + + entropy_bits(pxy.sum(axis=1)) + - entropy_bits(pxy) + ) + + +def kl_divergence(p: np.ndarray, q: np.ndarray, axis=None, base=np.e) -> float: + """Compute KL divergence (in nats by defaut) between p and q, $D_{KL}[p \| q]$. + + Args: + p: np.ndarray, lhs of KL divergence + + q: np.ndarray, rhs of KL divergence + """ + return entropy( + p, + q, + axis=axis, + base=base, + ) + + +# Common pattern for rate-distortion optimizations +def information_cond(pA: np.ndarray, pB_A: np.ndarray) -> float: + """Compute the mutual information $I(A;B)$ from a joint distribution defind by $P(A)$ and $P(B|A)$ + + Args: + pA: array of shape `|A|` the prior probability of an input symbol (i.e., the source) + + pB_A: array of shape `(|A|, |B|)` the probability of an output symbol given the input + """ + pab = pB_A * pA[:, None] + mi = mutual_info(pxy=pab) + if mi < 0.0 and not np.isclose(mi, 0.0, atol=1e-5): + raise Exception + return mi diff --git a/src/ultk/effcomm/rate_distortion.py b/src/ultk/effcomm/rate_distortion.py deleted file mode 100644 index e1d36ef..0000000 --- a/src/ultk/effcomm/rate_distortion.py +++ /dev/null @@ -1,236 +0,0 @@ -"""Helper functions for Rate-Distortion based (including Information Bottleneck) efficient communication analyses.""" - -import numpy as np -from ultk.language.language import Language -from ultk.effcomm.agent import LiteralSpeaker, Listener -from rdot.optimizers import IBOptimizer, IBResult -from rdot.probability import joint, bayes -from rdot.information import information_cond, mutual_info -from rdot.distortions import ib_kl - -############################################################################## -# Measuring Languages -############################################################################## - - -def language_to_ib_point( - language: Language, - prior: np.ndarray, - meaning_dists: np.ndarray, -) -> tuple[float]: - """Compute the complexity, informativity, and communicative cost under the IB framework (Zaslavsky et al., 2018, i.a.). - - Args: - language: the Language to measure. This function will infer an IB encoder, which will be represented as a 2D array of shape `(|words|, |meanings|)` - - meaning_dists: array of shape `(|meanings|, |meanings|)` representing the distribution over world states given meanings. - - prior: array of shape `|meanings|` representing the communicative need distribution - - Returns: - a tuple of floats `(complexity, accuracy, distortion)`, s.t. - - `complexity`: the complexity of the lexicon I[M:W], in bits - - `accuracy`: the accuracy of the lexicon I[W:U], in bits - - `distortion`: the distortion E[DKL[ M || M_hat ]] = I[M:U] - I[W:U], in bits - """ - result = language_to_ib_encoder_decoder( - language=language, - prior=prior, - meaning_dists=meaning_dists, - ) - return ib_encoder_to_point( - prior=prior, - meaning_dists=meaning_dists, - encoder=result["encoder"].normalized_weights(), - decoder=result["decoder"].normalized_weights(), - ) - - -def language_to_ib_encoder_decoder( - language: Language, - prior: np.ndarray, - meaning_dists: np.ndarray, -) -> dict[str, np.ndarray]: - """Convert a Language, a mapping of words to meanings, to IB encoder, q(w|m) and IB decoder q(m|w). - - A Bayesian decoder chooses an interpretation according to p(meaning | word), where - - $P(m | w) = \\frac{P(M | W) \cdot P(M)} { P(W) }$ - - Furthermore, we will require that each word w is deterministically interpreted as meaning $\hat{m}$ as follows: - - $\hat{m}_{w}(u) = \sum_m p(m|w) \cdot m(u)$ - - See https://github.com/nogazs/ib-color-naming/blob/master/src/ib_naming_model.py#L40. - - Args: - language: the lexicon from which to infer a speaker (encoder). - - prior: array of shape `|meanings|` representing the communicative need distribution - - meaning_dists: array of shape `(|meanings|, |meanings|)` representing the distribution over world states given meanings. - - Returns: - a dict of the form - { - "encoder": np.ndarray of shape `(|meanings|, |words|)`, - "decoder": np.ndarray of shape `(|words|, |meanings|)`, - } - """ - # In the IB framework, the encoder _can_ be a literal speaker and the decoder is a bayes optimal listener. - speaker = LiteralSpeaker(language) - speaker.weights = rows_zero_to_uniform(speaker.normalized_weights()) - listener = Listener(language) - listener.weights = ib_optimal_decoder(speaker.weights, prior, meaning_dists) - return { - "encoder": speaker, - "decoder": listener, - } - - -def ib_encoder_to_point( - prior: np.ndarray, - meaning_dists: np.ndarray, - encoder: np.ndarray, - decoder: np.ndarray = None, -) -> tuple[float]: - """Get (complexity, accuracy, comm_cost) IB coordinates. - - Args: - prior: array of shape `|meanings|` representing the communicative need distribution - - meaning_dists: array of shape `(|meanings|, |meanings|)` representing the distribution over world states given meanings. - - encoder: array of shape `(|meanings|, |words|)` representing P(W | M) - - decoder: array of shape `(|words|, |meanings|)` representing P(M | W). By default is None, and the Bayesian optimal decoder will be inferred. - - Returns: - a tuple of floats corresponding to `(complexity, accuracy, comm_cost)`. - """ - - if decoder is None: - decoder = ib_optimal_decoder(encoder, prior, meaning_dists) - - # Unclear that the below is correct - # encoder = rows_zero_to_uniform(encoder) - # decoder = rows_zero_to_uniform(decoder) - - # IB complexity = info rate of encoder = I(meanings; words) - complexity = information_cond(prior, encoder) - - # IB accuracy/informativity = I(words; world states) - pMW = encoder * prior - pWU = pMW.T @ meaning_dists - accuracy = mutual_info(pWU) - - # expected distortion - I_mu = information_cond(prior, meaning_dists) - distortion = I_mu - accuracy - - # TODO: the above is only IB optimal; should we look at the emergent listener accuracy? To do that we'll need to compute kl divergence - # and then do I(M;U) - distortion to get the accuracy. - - # pu_w = decoder @ meaning_dists - # dist_mat = ib_kl(meaning_dists, pu_w,) # getting infs; I confirmed that this because there exists an x s.t. p(x) > 0 but q(x) = 0. Ask Noga what to do here. Add a little epsilon? - # distortion = np.sum( prior * ( encoder @ decoder ) * dist_mat ) - - decoder_smoothed = decoder + 1e-20 - decoder_smoothed /= decoder_smoothed.sum(axis=1, keepdims=True) - pu_w = decoder_smoothed @ meaning_dists - dist_mat = ib_kl(meaning_dists, pu_w,) - distortion = np.sum( prior * ( encoder @ decoder ) * dist_mat ) - # but this measure of distortion is almost an order magnitude higher than bayesian decoder - # breakpoint() - - return (complexity, accuracy, distortion) - - -def ib_optimal_decoder( - encoder: np.ndarray, - prior: np.ndarray, - meaning_dists: np.ndarray, -) -> np.ndarray: - """Compute the bayesian optimal decoder. See https://github.com/nogazs/ib-color-naming/blob/master/src/ib_naming_model.py#L40 - - Args: - encoder: array of shape `(|words|, |meanings|)` - - prior: array of shape `(|meanings|,)` - - meaning_dists: array of shape `(|meanings|, |meanings|)` - - Returns: - array of shape `(|words|, |meanings|)` representing the 'optimal' deterministic decoder - """ - return bayes(encoder, prior) @ meaning_dists - - -############################################################################## -# Estimating bounds for a domain -############################################################################## - - -def get_ib_bound( - prior: np.ndarray, - meaning_dists: np.ndarray, - *args, - betas: np.ndarray = np.logspace(-2, 5, 30), - **kwargs, -) -> list[IBResult]: - """Estimate the IB theoretical bound for a domain, specified by a prior over meanings and (perceptually uncertain) meaning distributions. - - Args: - meaning_dists: array of shape `(|meanings|, |meanings|)` representing the distribution over world states given meanings. - - prior: array of shape `|meanings|` representing the communicative need distribution - - args: propagated to `IBOptimizer` - - kwargs: propagated to `IBOptimizer` - - Returns: - a list of `rdot.ba.IBResult` namedtuples. - """ - return IBOptimizer( - joint(meaning_dists, prior), - betas, - *args, - **kwargs, - ).get_results() - - -############################################################################## -# Helper functions for working with stochastic matrices -############################################################################## - - -def rows_zero_to_uniform(mat: np.ndarray) -> np.ndarray: - """Ensure that `mat` encodes a probability distribution, i.e. each row (indexed by a meaning) is a distribution over expressions: sums to exactly 1.0. - - This is necessary when exploring mathematically possible languages (including natural languages, like Hausa in the case of modals) which sometimes have that a row of the matrix p(word|meaning) is a vector of 0s. - - Args: - mat: a 2D numpy array that should be normalized so that each row is a probability distribution. - """ - mat = np.array(mat) - - threshold = 1e-5 - - # Ensure if p(.|meaning) sums to > 0 at all, it must sum to 1. - for row in mat: - # less than 1.0 - if row.sum() and 1.0 - row.sum() > threshold: - print("row is nonzero and sums to less than 1.0!") - print(row, row.sum()) - raise Exception - # greater than 1.0 - if row.sum() and row.sum() - 1.0 > threshold: - print("row sums to greater than 1.0!") - print(row, row.sum()) - raise Exception - - return np.array([row if row.sum() else np.ones(len(row)) / len(row) for row in mat]) diff --git a/src/ultk/effcomm/sampling.py b/src/ultk/effcomm/sampling.py index c6e19f5..f246660 100644 --- a/src/ultk/effcomm/sampling.py +++ b/src/ultk/effcomm/sampling.py @@ -25,7 +25,7 @@ def get_hypothetical_variants( speakers: a list of speakers of a language, whose weights can be directly permuted. Should be used instead of `languages` if possible, because it can be more finegrained (every language can be associated with multiple speakers). - total: the total number of hypothetical variants to obtain + total: the total number of hypothetical variants to obtain. Should be greater than the number of languages. Returns: hypothetical_variants: a list of type either Language or np.ndarray depending on whether `languages` or `speakers` was passed, representing hypothetical variants of the systems passed. If `speakers` was passed, a list of speakers is returned. @@ -45,6 +45,11 @@ def get_hypothetical_variants( variants_per_system = int(total / num_systems) + if variants_per_system == 0: + raise Exception( + "Number of languages exceeds the number of languages to be generated. " + ) + hypothetical_variants = [] for i in range(num_systems): if languages is not None: diff --git a/src/ultk/language/grammar.py b/src/ultk/language/grammar.py index e175d78..9911fb3 100644 --- a/src/ultk/language/grammar.py +++ b/src/ultk/language/grammar.py @@ -171,7 +171,7 @@ def to_dict(self) -> dict: if self.children: the_dict["children"] = tuple(child.to_dict() for child in self.children) return the_dict - + # Following function counts the total number of atoms / leaf nodes, as opposed to __len__, which counts all nodes def count_atoms(self): if self.children is None: diff --git a/src/ultk/language/semantics.py b/src/ultk/language/semantics.py index fea16dc..fa22384 100644 --- a/src/ultk/language/semantics.py +++ b/src/ultk/language/semantics.py @@ -62,7 +62,7 @@ def __eq__(self, other) -> bool: def __hash__(self) -> int: return hash((self.name, frozenset(self.__dict__.items()))) - + def __repr__(self) -> str: return f"Referent({self.name}, {self.__dict__})" @@ -74,14 +74,12 @@ class Universe: referents: tuple[Referent, ...] prior: tuple[float, ...] - def __init__(self, referents, prior = None): + def __init__(self, referents, prior=None): # use of __setattr__ is to work around the issues with @dataclass(frozen=True) object.__setattr__(self, "referents", referents) # When only referents are passed in, make the priors a unifrom distribution object.__setattr__( - self, - "prior", - prior or tuple(1/len(referents) for _ in referents) + self, "prior", prior or tuple(1 / len(referents) for _ in referents) ) @cached_property @@ -124,7 +122,9 @@ def from_dataframe(cls, df: pd.DataFrame): referents = tuple(Referent(record["name"], record) for record in records) default_prob = 1 / len(referents) # prior = FrozenDict({ referent: getattr(referent, "probability", default_prob) for referent in referents }) - prior = tuple(getattr(referent, "probability", default_prob) for referent in referents) + prior = tuple( + getattr(referent, "probability", default_prob) for referent in referents + ) return cls(referents, prior) @classmethod @@ -145,30 +145,42 @@ class Meaning(Generic[T]): But, in general, meanings can have a different output type for, e.g. sub-sentential meanings.. Properties: - mapping: a `FrozenDict` with `Referent` keys, but arbitrary type `T` as values. + mapping: a `FrozenDict` with `Referent` keys, but arbitrary type `T` as values. universe: a Universe object. The `Referent`s in the keys of `mapping` are expected to be exactly those in `universe`. _dist: a mapping representing a probability distribution over referents to associate with the meaning. By default, will be assumed to be uniform over the "true-like" `Referent`s in `mapping` (see `.dist`). """ + mapping: FrozenDict[Referent, T] # With the mapping, `universe` is not conceptually needed, but it is very useful to have it lying around. - # `universe` should be the keys to `mapping`. + # `universe` should be the keys to `mapping`. universe: Universe - _dist: FrozenDict[Referent, float] = FrozenDict({}) + # _dist: FrozenDict[Referent, float] = FrozenDict({}) + _dist = False # TODO: clean up @property def dist(self) -> FrozenDict[Referent, float]: if self._dist: # normalize weights to distribution total_weight = sum(self._dist.values()) - return FrozenDict({referent: weight / total_weight for referent, weight in self._dist.items()}) + return FrozenDict( + { + referent: weight / total_weight + for referent, weight in self._dist.items() + } + ) else: num_true_like = sum(1 for value in self.mapping.values() if value) if num_true_like == 0: raise ValueError("Meaning must have at least one true-like referent.") - return FrozenDict({referent: (1 / num_true_like if self.mapping[referent] else 0) for referent in self.mapping}) - + return FrozenDict( + { + referent: (1 / num_true_like if self.mapping[referent] else 0) + for referent in self.mapping + } + ) + def is_uniformly_false(self) -> bool: """Return True if all referents in the meaning are mapped to False (or coercible to False).In the case where the meaning type is boolean, this corresponds to the characteristic function of the empty set.""" return all(not value for value in self.mapping.values()) @@ -176,8 +188,14 @@ def is_uniformly_false(self) -> bool: def __getitem__(self, key: Referent) -> T: return self.mapping[key] + def __iter__(self): + """Iterate over the referents in the meaning.""" + return iter(self.mapping) + def __bool__(self): return bool(self.mapping) # and bool(self.universe) def __str__(self): - return "Mapping:\n\t{0}".format('\n'.join(f"{ref}: {self.mapping[ref]}" for ref in self.mapping)) # \ \nDistribution:\n\t{self.dist}\n" + return "Mapping:\n\t{0}".format( + "\n".join(f"{ref}: {self.mapping[ref]}" for ref in self.mapping) + ) # \ \nDistribution:\n\t{self.dist}\n" diff --git a/src/ultk/util/__init__.py b/src/ultk/util/__init__.py index 5cf34ea..406b3dc 100644 --- a/src/ultk/util/__init__.py +++ b/src/ultk/util/__init__.py @@ -4,4 +4,4 @@ * `frozendict`: An immutable dictionary, so that various mappings (e.g. `Meaning`s) can be hashed, serialized, etc. * `io`: some basic input/output functions. -""" \ No newline at end of file +""" diff --git a/src/ultk/util/frozendict.py b/src/ultk/util/frozendict.py index 424792d..54eb549 100644 --- a/src/ultk/util/frozendict.py +++ b/src/ultk/util/frozendict.py @@ -6,7 +6,6 @@ class FrozenDict(dict[K, V], Generic[K, V], YAMLObject): - yaml_tag = "!frozendict" def __hash__(self): diff --git a/src/ultk/util/io.py b/src/ultk/util/io.py index 8d0ae7c..eb9da21 100644 --- a/src/ultk/util/io.py +++ b/src/ultk/util/io.py @@ -1,3 +1,4 @@ +import pickle from ultk.language.language import Expression from ultk.language.semantics import Meaning, Universe from ultk.language.grammar import Grammar, GrammaticalExpression @@ -65,3 +66,15 @@ def read_grammatical_expressions( if return_by_meaning: by_meaning = {expr.meaning: expr for expr in final_exprs} return final_exprs, by_meaning + + +def write_pickle(fn: str, data): + with open(fn, "wb") as f: + pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL) + print(f"Wrote a pickle binary to {fn}.") + + +def read_pickle(fn: str): + with open(fn, "rb") as f: + data = pickle.load(f) + return data